From c743369c899792f072e01e8236ddca8819c310ac Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Thu, 4 Dec 2003 05:46:16 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/ia64/hpux.h | 4 ++++ gcc/config/ia64/ia64.c | 5 ----- gcc/config/ia64/ia64.h | 9 +++++++++ 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 + + * 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 * 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)