diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 660d037422..c9ccfafd15 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2012-10-18 Kai Tietz + + * objcopy.c (is_strip_section_1): Don't strip + .reloc section by default. + 2012-10-11 Doug Evans * dwarf.c (display_gdb_index): Include static/global information diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 40250adc4b..f44ebcd942 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -102,7 +102,7 @@ enum strip_action }; /* Which symbols to remove. */ -static enum strip_action strip_symbols; +static enum strip_action strip_symbols = STRIP_UNDEF; enum locals_action { @@ -977,7 +977,13 @@ is_strip_section_1 (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) || strip_symbols == STRIP_ALL || discard_locals == LOCALS_ALL || convert_debugging) - return TRUE; + { + /* 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_get_section_name (abfd, sec), ".reloc") != 0) + return TRUE; + } if (strip_symbols == STRIP_DWO) return is_dwo_section (abfd, sec);