diff options
author | Nick Clifton <nickc@redhat.com> | 2022-04-12 13:34:06 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2022-04-12 13:34:06 +0100 |
commit | 278c98c830befc706286b56da9e922e5342d62a9 (patch) | |
tree | 8848b6209e5478cfaf1c81c1d1afc95ca9e5ecce /binutils | |
parent | 66b39b8b9c886e6adc17ba6b81ebf5b1febabb53 (diff) | |
download | binutils-278c98c830befc706286b56da9e922e5342d62a9.zip binutils-278c98c830befc706286b56da9e922e5342d62a9.tar.gz binutils-278c98c830befc706286b56da9e922e5342d62a9.tar.bz2 |
Stop strip from removing debuglink sections.
PR 28992
* objcopy.c (is_strip_section_1): Do not delete debuglink sections
when stripping debug information.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 6 | ||||
-rw-r--r-- | binutils/objcopy.c | 16 |
2 files changed, 20 insertions, 2 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9079593..26103a0 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +2022-04-12 Nick Clifton <nickc@redhat.com> + + PR 28992 + * objcopy.c (is_strip_section_1): Do not delete debuglink sections + when stripping debug information. + 2022-04-06 Nick Clifton <nickc@redhat.com> PR 28981 diff --git a/binutils/objcopy.c b/binutils/objcopy.c index aaa5aa9..6fb31c8 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -1358,8 +1358,20 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) { /* By default we don't want to strip .reloc section. This section has for pe-coff special meaning. See - pe-dll.c file in ld, and peXXigen.c in bfd for details. */ - if (strcmp (bfd_section_name (sec), ".reloc") != 0) + pe-dll.c file in ld, and peXXigen.c in bfd for details. + Similarly we do not want to strip debuglink sections. */ + const char * kept_sections[] = + { + ".reloc", + ".gnu_debuglink", + ".gnu_debugaltlink" + }; + int i; + + for (i = ARRAY_SIZE (kept_sections);i--;) + if (strcmp (bfd_section_name (sec), kept_sections[i]) == 0) + break; + if (i == -1) return true; } |