From 4fc8b8950a1aed53bc553c9003808f04919cc7ca Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Thu, 18 Oct 2012 17:29:54 +0000 Subject: [PATCH] * objcopy.c (is_strip_section_1): Don't strip .reloc section by default. --- binutils/ChangeLog | 5 +++++ binutils/objcopy.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) 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);