summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-04 05:46:16 +0000
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-04 05:46:16 +0000
commitd790b6bec463cd9c911a5992394bda09f126d01b (patch)
tree4e09f9f4326815404007405bab52484bd1066f44
parent51c350ff72671d2ba8d8ff839ac1d799bfa3454a (diff)
downloadppe42-gcc-d790b6bec463cd9c911a5992394bda09f126d01b.tar.gz
ppe42-gcc-d790b6bec463cd9c911a5992394bda09f126d01b.zip
* config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false.
* config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if HAVE_AS_TLS is true. * config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74272 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/ia64/hpux.h4
-rw-r--r--gcc/config/ia64/ia64.c5
-rw-r--r--gcc/config/ia64/ia64.h9
4 files changed, 20 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0c1f4638aef..98e7534aeb7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-12-03 Mark Mitchell <mark@codesourcery.com>
+
+ * config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false.
+ * config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if
+ HAVE_AS_TLS is true.
+ * config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it.
+
2003-12-03 James E Wilson <wilson@specifixinc.com>
* gcc-page.c (extra_order_size_tab): Correct comment.
diff --git a/gcc/config/ia64/hpux.h b/gcc/config/ia64/hpux.h
index 382751a7c37..7ed5f605590 100644
--- a/gcc/config/ia64/hpux.h
+++ b/gcc/config/ia64/hpux.h
@@ -188,6 +188,10 @@ do { \
#undef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS ia64_rwreloc_section_type_flags
+/* HP-UX does not support thread-local storage. */
+#undef TARGET_HAVE_TLS
+#define TARGET_HAVE_TLS false
+
/* ia64 HPUX has the float and long double forms of math functions. */
#undef TARGET_C99_FUNCTIONS
#define TARGET_C99_FUNCTIONS 1
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 8023bbff945..42c20a03280 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -344,11 +344,6 @@ static const struct attribute_spec ia64_attribute_table[] =
#undef TARGET_SCHED_DFA_NEW_CYCLE
#define TARGET_SCHED_DFA_NEW_CYCLE ia64_dfa_new_cycle
-#ifdef HAVE_AS_TLS
-#undef TARGET_HAVE_TLS
-#define TARGET_HAVE_TLS true
-#endif
-
#undef TARGET_FUNCTION_OK_FOR_SIBCALL
#define TARGET_FUNCTION_OK_FOR_SIBCALL ia64_function_ok_for_sibcall
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index a1d0544b7f5..7a4353bcb4e 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -140,6 +140,15 @@ extern int target_flags;
#define TARGET_DWARF2_ASM (target_flags & MASK_DWARF2_ASM)
+/* If the assembler supports thread-local storage, assume that the
+ system does as well. If a particular target system has an
+ assembler that supports TLS -- but the rest of the system does not
+ support TLS -- that system should explicit define TARGET_HAVE_TLS
+ to false in its own configuration file. */
+#if !defined(TARGET_HAVE_TLS) && defined(HAVE_AS_TLS)
+#define TARGET_HAVE_TLS true
+#endif
+
extern int ia64_tls_size;
#define TARGET_TLS14 (ia64_tls_size == 14)
#define TARGET_TLS22 (ia64_tls_size == 22)
OpenPOWER on IntegriCloud