aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2010-01-21 20:58:34 +0000
committerRainer Orth <ro@TechFak.Uni-Bielefeld.DE>2010-01-21 20:58:34 +0000
commit53e5c8fee65d80d63b464ec455cce4f24f27dbd4 (patch)
tree6bddf6c6e52c63c026ede781162b93b7dd5647e0 /gas
parent18f5de3bf843256607810db3753335f995bbcc97 (diff)
downloadgdb-53e5c8fee65d80d63b464ec455cce4f24f27dbd4.zip
gdb-53e5c8fee65d80d63b464ec455cce4f24f27dbd4.tar.gz
gdb-53e5c8fee65d80d63b464ec455cce4f24f27dbd4.tar.bz2
* config/te-solaris.h (DWARF2_EH_FRAME_READ_ONLY): Make read-only
on 64-bit Solaris/x86. Include obj-format.h earlier.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/te-solaris.h22
2 files changed, 22 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ea20cf6..78640a5 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/te-solaris.h (DWARF2_EH_FRAME_READ_ONLY): Make read-only
+ on 64-bit Solaris/x86.
+ Include obj-format.h earlier.
+
2010-01-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/tc-s390.c (s390_elf_final_processing): New function.
diff --git a/gas/config/te-solaris.h b/gas/config/te-solaris.h
index a3c2cea..9c628c2 100644
--- a/gas/config/te-solaris.h
+++ b/gas/config/te-solaris.h
@@ -1,4 +1,4 @@
-/* Copyright 2008 Free Software Foundation, Inc.
+/* Copyright 2008, 2010 Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -22,9 +22,19 @@
#define LOCAL_LABELS_DOLLAR 1
#define LOCAL_LABELS_FB 1
-/* The Sun linker doesn't merge read-only and read-write sections into
- a single read-write section so we must force all EH frame sections
- to be read-write. */
-#define DWARF2_EH_FRAME_READ_ONLY 0
-
#include "obj-format.h"
+
+/* The Sun linker doesn't merge read-only and read-write sections into
+ a single section so we must force all EH frame sections to use the
+ same flags. For SPARC and 32-bit i386 this is read-write, whilst
+ for x86_64 this is read-only, matching GCC behavior.
+
+ See the definition of EH_TABLES_CAN_BE_READ_ONLY in
+ gcc/config/i386/sol2.h in the GCC sources and the thread starting at
+ http://sourceware.org/ml/binutils/2010-01/msg00401.html. */
+#ifdef TC_SPARC
+#define DWARF2_EH_FRAME_READ_ONLY SEC_NO_FLAGS
+#else
+#define DWARF2_EH_FRAME_READ_ONLY \
+ (bfd_get_arch_size (stdoutput) == 64 ? SEC_READONLY : SEC_NO_FLAGS)
+#endif