aboutsummaryrefslogtreecommitdiff
path: root/bfd/coffcode.h
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2009-06-25 13:39:27 +0000
committerKai Tietz <kai.tietz@onevision.com>2009-06-25 13:39:27 +0000
commitbdeb4032eaf0e30991521429c3acc85987eda965 (patch)
tree4328230517a500030368503d6ace8f1e6a88ca5e /bfd/coffcode.h
parentd64703c6e89b6a4ad72cc40e7f9918f3e4e54e5b (diff)
downloadfsf-binutils-gdb-bdeb4032eaf0e30991521429c3acc85987eda965.zip
fsf-binutils-gdb-bdeb4032eaf0e30991521429c3acc85987eda965.tar.gz
fsf-binutils-gdb-bdeb4032eaf0e30991521429c3acc85987eda965.tar.bz2
2009-06-25 Kai Tietz <kai.tietz@onevision.com>
* 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.
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r--bfd/coffcode.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 6a8a8cb..d66d98a 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;