diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 5a27b6406db..3ae57bc3fed 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2009-06-25 Kai Tietz + + * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and + give .debug and .reloc data characteristics. + (DOT_RELOC): New define for .reloc section string. + (coff_write_object_contents): Use DOT_RELOC instead of string. + 2009-06-25 Tristan Gingold * mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound) diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 6a8a8cbcbcb..d66d98aa893 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -371,6 +371,7 @@ CODE_FRAGMENT #define DOT_DEBUG ".debug" #define GNU_LINKONCE_WI ".gnu.linkonce.wi." +#define DOT_RELOC ".reloc" #if defined (COFF_LONG_SECTION_NAMES) /* Needed to expand the inputs to BLANKOR1TOODD. */ @@ -645,7 +646,12 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags) /* FIXME: There is no gas syntax to specify the debug section flag. */ if (CONST_STRNEQ (sec_name, DOT_DEBUG) || CONST_STRNEQ (sec_name, GNU_LINKONCE_WI)) - sec_flags = SEC_DEBUGGING | SEC_READONLY; + sec_flags = SEC_DATA | SEC_LOAD | SEC_ALLOC | SEC_DEBUGGING | SEC_READONLY; + else if (CONST_STRNEQ (sec_name, DOT_RELOC)) + { + sec_flags = SEC_DATA | SEC_LOAD | SEC_ALLOC | SEC_READONLY; + styp_flags |= IMAGE_SCN_MEM_DISCARDABLE; + } /* skip LOAD */ /* READONLY later */ @@ -3625,7 +3631,7 @@ coff_write_object_contents (bfd * abfd) bfd_boolean is_reloc_section = FALSE; #ifdef COFF_IMAGE_WITH_PE - if (strcmp (current->name, ".reloc") == 0) + if (strcmp (current->name, DOT_RELOC) == 0) { is_reloc_section = TRUE; hasrelocs = TRUE;