aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2003-12-04 05:46:16 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2003-12-04 05:46:16 +0000
commitc743369c899792f072e01e8236ddca8819c310ac (patch)
tree4e09f9f4326815404007405bab52484bd1066f44
parent60c1d0d8ba15e24a586b8a3c2f6997cdd21a3e4d (diff)
downloadgcc-c743369c899792f072e01e8236ddca8819c310ac.zip
gcc-c743369c899792f072e01e8236ddca8819c310ac.tar.gz
gcc-c743369c899792f072e01e8236ddca8819c310ac.tar.bz2
hpux.h (TARGET_HAVE_TLS): Define it to false.
* 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. From-SVN: r74272
-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 0c1f463..98e7534 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 382751a..7ed5f60 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 8023bbf..42c20a0 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 a1d0544..7a4353b 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)