aboutsummaryrefslogtreecommitdiff
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
parentd64703c6e89b6a4ad72cc40e7f9918f3e4e54e5b (diff)
downloadgdb-bdeb4032eaf0e30991521429c3acc85987eda965.zip
gdb-bdeb4032eaf0e30991521429c3acc85987eda965.tar.gz
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.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/coffcode.h10
2 files changed, 15 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 5a27b64..3ae57bc 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+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.
+
2009-06-25 Tristan Gingold <gingold@adacore.com>
* mach-o-target.c (bfd_mach_o_get_dynamic_symtab_upper_bound)
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;