From 91bb255c67ce378e25576a12e6b24929c45c92fc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Sep 2006 08:22:27 +0000 Subject: [PATCH] PR binutils/3166 * objcopy.c (is_strip_section): Do not treat group sections as debugging sections. * doc/binutils.texi (--only-keep-debug): Document that this switch is only intended for use on fully linked files. --- binutils/ChangeLog | 8 ++++++++ binutils/doc/binutils.texi | 14 ++++++++++++++ binutils/objcopy.c | 7 +++++++ 3 files changed, 29 insertions(+) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 184f0b18d3a..b36b87530da 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,11 @@ +2006-09-05 Nick Clifton + + PR binutils/3166 + * objcopy.c (is_strip_section): Do not treat group sections as + debugging sections. + * doc/binutils.texi (--only-keep-debug): Document that this switch + is only intended for use on fully linked files. + 2006-09-01 Nick Clifton PR binutils/3146 diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index d74be80a9ed..e6d9ecdce25 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -1482,6 +1482,13 @@ i.e., the file pointed to by the @option{--add-gnu-debuglink} can be the full executable. It does not have to be a file created by the @option{--only-keep-debug} switch. +Note - this switch is only intended for use on fully linked files. It +does not make sense to use it on object files where the debugging +information may be incomplete. Besides the gnu_debuglink feature +currently only supports the presence of one filename containing +debugging information, not multiple filenames on a one-per-object-file +basis. + @item -V @itemx --version Show the version number of @command{objcopy}. @@ -2391,6 +2398,13 @@ ie the file pointed to by the @option{--add-gnu-debuglink} can be the full executable. It does not have to be a file created by the @option{--only-keep-debug} switch. +Note - this switch is only intended for use on fully linked files. It +does not make sense to use it on object files where the debugging +information may be incomplete. Besides the gnu_debuglink feature +currently only supports the presence of one filename containing +debugging information, not multiple filenames on a one-per-object-file +basis. + @item -V @itemx --version Show the version number for @command{strip}. diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 0d5684503ca..8db5ef02002 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -815,6 +815,13 @@ is_strip_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) return FALSE; } + /* PR binutils/3166 + Group sections look like debugging sections but they are not. + (They have a non-zero size but they are not ALLOCated). */ + if ((bfd_get_section_flags (abfd, sec) & SEC_GROUP) != 0 + && strip_symbols == STRIP_NONDEBUG) + return TRUE; + return FALSE; } -- 2.30.2