summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjules <jules@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-29 14:22:10 +0000
committerjules <jules@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-29 14:22:10 +0000
commit41b9306ebdeacd1904e7e6048154ca3735ea6e43 (patch)
treef42ebe0890b56f17574eed62d7ddb4e56d6a8274
parentd4ddb84e43de42ec0304dbec1f3b3d6664447cda (diff)
downloadppe42-gcc-41b9306ebdeacd1904e7e6048154ca3735ea6e43.tar.gz
ppe42-gcc-41b9306ebdeacd1904e7e6048154ca3735ea6e43.zip
* config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
definition has already been provided. (ARM_EABI_DTORS_SECTION_OP): Likewise. * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define. (ARM_EABI_DTORS_SECTION_OP): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98988 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/arm/arm.h4
-rw-r--r--gcc/config/arm/symbian.h8
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 65dcd3f2b23..78eafd329ee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2005-04-29 Mark Mitchell <mark@codesourcery.com>
+
+ * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
+ definition has already been provided.
+ (ARM_EABI_DTORS_SECTION_OP): Likewise.
+ * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
+ (ARM_EABI_DTORS_SECTION_OP): Likewise.
+
2005-04-29 Jim Tison <jtison@us.ibm.com>
* config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 4f0eeec6138..6310a627e60 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -2124,10 +2124,14 @@ typedef struct
/* The EABI specifies that constructors should go in .init_array.
Other targets use .ctors for compatibility. */
+#ifndef ARM_EABI_CTORS_SECTION_OP
#define ARM_EABI_CTORS_SECTION_OP \
"\t.section\t.init_array,\"aw\",%init_array"
+#endif
+#ifndef ARM_EABI_DTORS_SECTION_OP
#define ARM_EABI_DTORS_SECTION_OP \
"\t.section\t.fini_array,\"aw\",%fini_array"
+#endif
#define ARM_CTORS_SECTION_OP \
"\t.section\t.ctors,\"aw\",%progbits"
#define ARM_DTORS_SECTION_OP \
diff --git a/gcc/config/arm/symbian.h b/gcc/config/arm/symbian.h
index 08ea763fbcd..4f5ac375500 100644
--- a/gcc/config/arm/symbian.h
+++ b/gcc/config/arm/symbian.h
@@ -88,6 +88,14 @@
} \
while (false)
+/* On SymbianOS, these sections are not writable, so we use "a",
+ rather than "aw", for the section attributes. */
+#undef ARM_EABI_CTORS_SECTION_OP
+#define ARM_EABI_CTORS_SECTION_OP \
+ "\t.section\t.init_array,\"a\",%init_array"
+#undef ARM_EABI_DTORS_SECTION_OP
+#define ARM_EABI_DTORS_SECTION_OP \
+ "\t.section\t.fini_array,\"a\",%fini_array"
/* SymbianOS cannot merge entities with vague linkage at runtime. */
#define TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P false
OpenPOWER on IntegriCloud