aboutsummaryrefslogtreecommitdiff
path: root/gas/config/te-solaris.h
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/config/te-solaris.h
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/config/te-solaris.h')
-rw-r--r--gas/config/te-solaris.h22
1 files changed, 16 insertions, 6 deletions
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