[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 --- Comment #6 from cvs-commit at gcc dot gnu.org cvs-commit at gcc dot gnu.org 2012-08-14 08:32:00 UTC --- CVSROOT:/cvs/src Module name:src Changes by:ni...@sourceware.org2012-08-14 08:31:57 Modified files: ld/testsuite : ChangeLog ld/testsuite/ld-gc: gc.exp gold : ChangeLog layout.cc layout.h object.cc script-sections.cc script-sections.h gold/testsuite : Makefile.am Makefile.in Added files: ld/testsuite/ld-gc: pr14265.c pr14265.d pr14265.t gold/testsuite : pr14265.c pr14265.sh pr14265.t Log message: PR ld/14265 * script-sections.cc (Sections_element::output_section_name): Add keep return parameter. (Output_section_element::match_name): Add keep return parameter. Return the value of the keep_ member. * script-sections.h (class Output_section): Update output_section_name prototype. * layout.cc (Layout::keep_input_section): New public member function. (Layout::choose_output_section): Pass keep parameter to output_section_name. * layout.h (class Layout): Add keep_input_section. * object.cc (Sized_relobj_file::do_layout): Check for kept input sections. * testsuite/Makefile.am: Add a test. * testsuite/Makefile.in: Regenerate. * testsuite/pr14265.c: Source file for the test. * testsuite/pr14265.t: Linker script for the test. * testsuite/pr14265.sh: Shell script for the test. * ld-gc/gc.exp: Add a new test. * ld-gc/pr14265.c: Source file for the new test. * ld-gc/pr14265.t: Linker script for the new test. * ld-gc/pr14265.d: Expected symbol dump. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ChangeLog.diff?cvsroot=srcr1=1.1593r2=1.1594 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-gc/pr14265.c.diff?cvsroot=srcr1=NONEr2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-gc/pr14265.d.diff?cvsroot=srcr1=NONEr2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-gc/pr14265.t.diff?cvsroot=srcr1=NONEr2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-gc/gc.exp.diff?cvsroot=srcr1=1.17r2=1.18 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/ChangeLog.diff?cvsroot=srcr1=1.936r2=1.937 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/layout.cc.diff?cvsroot=srcr1=1.233r2=1.234 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/layout.h.diff?cvsroot=srcr1=1.103r2=1.104 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/object.cc.diff?cvsroot=srcr1=1.156r2=1.157 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/script-sections.cc.diff?cvsroot=srcr1=1.55r2=1.56 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/script-sections.h.diff?cvsroot=srcr1=1.15r2=1.16 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/pr14265.c.diff?cvsroot=srcr1=NONEr2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/pr14265.sh.diff?cvsroot=srcr1=NONEr2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/pr14265.t.diff?cvsroot=srcr1=NONEr2=1.1 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/Makefile.am.diff?cvsroot=srcr1=1.194r2=1.195 http://sourceware.org/cgi-bin/cvsweb.cgi/src/gold/testsuite/Makefile.in.diff?cvsroot=srcr1=1.204r2=1.205 -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 Nick Clifton nickc at redhat dot com changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #7 from Nick Clifton nickc at redhat dot com 2012-08-14 08:33:09 UTC --- Patch and testsuite addition checked in. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 --- Comment #3 from Nick Clifton nickc at redhat dot com 2012-08-10 14:57:53 UTC --- Created attachment 6571 -- http://sourceware.org/bugzilla/attachment.cgi?id=6571 Proposed fix -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 Nick Clifton nickc at redhat dot com changed: What|Removed |Added Status|NEW |WAITING --- Comment #4 from Nick Clifton nickc at redhat dot com 2012-08-10 15:01:07 UTC --- Hi Ian, Please could you look at the proposed patch I have just uploaded and let me know if you are happy with it, or if it needs more work. (I admit that I have not tested the patch extensively yet, just with the test case attached to the PR). I am going to create a linker test case as well, once the patch is OK. Cheers Nick -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 Ian Lance Taylor ian at airs dot com changed: What|Removed |Added Status|WAITING |ASSIGNED AssignedTo|ian at airs dot com |nickc at redhat dot com --- Comment #5 from Ian Lance Taylor ian at airs dot com 2012-08-11 03:51:52 UTC --- Patch looks good, thanks. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 Nick Clifton nickc at redhat dot com changed: What|Removed |Added CC||nickc at redhat dot com --- Comment #1 from Nick Clifton nickc at redhat dot com 2012-08-09 07:39:49 UTC --- Hi Ian, I have been looking at this PR, trying to find a way to solve it, but I am hopelessly lost. So I am asking for some guidance... It seems to me that gold parses the KEEP directives and stores them in Output_section_element_input class, but then it just ignores them. Then when Sized_relobj_file runs garbage collection there appears to be no way to connect the Output_section pointer to the input sections that contributed to it. So I guess my question is - when garbage collection occurs, how do I find out if a particular input section should be KEPT ? Cheers Nick -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 --- Comment #2 from Ian Lance Taylor ian at airs dot com 2012-08-09 15:00:36 UTC --- The key point connecting the Output_section_element_input and the Layout code is the call to Output_section_element_input::match_name. From the Layout side, it's the call to ss-output_section_name in Layout::chose_output_section. So I would suggest having Output_section_element_input::match_name return whether the section is kept (e.g., in a new bool* parameter). Then the Layout code can pass that information back from Layout::layout, and Sized_relobj_file::do_layout can add the input section to the worklist. Thanks for looking at this. -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils
[Bug gold/14265] -gc-sections ignores KEEP annotations
http://sourceware.org/bugzilla/show_bug.cgi?id=14265 Ian Lance Taylor ian at airs dot com changed: What|Removed |Added CC||ian at airs dot com, ||tmsriram at google dot com -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email --- You are receiving this mail because: --- You are on the CC list for the bug. ___ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils