+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.
-/* 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