* config/te-solaris.h (DWARF2_EH_FRAME_READ_ONLY): Make read-only
authorRainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Thu, 21 Jan 2010 20:58:34 +0000 (20:58 +0000)
committerRainer Orth <ro@TechFak.Uni-Bielefeld.DE>
Thu, 21 Jan 2010 20:58:34 +0000 (20:58 +0000)
on 64-bit Solaris/x86.
Include obj-format.h earlier.

gas/ChangeLog
gas/config/te-solaris.h

index ea20cf61163f31c17f03a71054a4034658dce983..78640a5457688160190f7a1f2c7a2f89563fac63 100644 (file)
@@ -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.
index a3c2ceaf9e864783e3376aaf7d026fb80737d02f..9c628c2f5777a02ba5cde50e9f0e9db1afdead09 100644 (file)
@@ -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.
 
 #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