[Bug gold/14265] -gc-sections ignores KEEP annotations

2012-08-14 Thread cvs-commit at gcc dot gnu.org
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

2012-08-14 Thread cvs-commit at gcc dot gnu.org
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

2012-08-10 Thread nickc at redhat dot com
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

2012-08-10 Thread nickc at redhat dot com
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

2012-08-10 Thread ian at airs dot com
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

2012-08-09 Thread nickc at redhat dot com
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

2012-08-09 Thread ian at airs dot com
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

2012-06-19 Thread ian at airs dot com
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