summaryrefslogtreecommitdiff
path: root/gcc/configure
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-03-24 18:49:49 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-03-24 18:49:49 +0000
commit7d07052011f59f1abbfdbc8cfeb0866d56150856 (patch)
treeef6a9e9fc1a86c9ee173f222db3bc79d9f53eddf /gcc/configure
parentcf4f27b5da0da3f24fd7d288f9668a0720a1e7b7 (diff)
downloadgcc-7d07052011f59f1abbfdbc8cfeb0866d56150856.tar.gz
* configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
and Sun as TLS syntax. (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define. * configure: Regenerate. * config.in: Regenerate. * varasm.c (TLS_SECTION_ASM_FLAG): Define default. (default_elf_asm_named_section): Use it. * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF. (i386_output_dwarf_dtprel): Likewise. (output_addr_const_extra): Likewise. (output_pic_addr_const): Lowercase @GOTTPOFF. (output_addr_const_extra): Likewise. (output_pic_addr_const): Lowercase @GOTNTPOFF. (output_addr_const_extra): Likewise. (output_pic_addr_const): Lowercase @INDNTPOFF. (output_addr_const_extra): Likewise. (output_pic_addr_const): Lowercase @NTPOFF. (output_addr_const_extra): Likewise. (output_pic_addr_const): Lowercase @TPOFF. (output_addr_const_extra): Likewise. * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD. (*tls_global_dynamic_64): Likewise. (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM. (*tls_local_dynamic_base_64): Lowercase @TLSLD. * defaults.h (TLS_COMMON_ASM_OP): Provide default. (ASM_OUTPUT_TLS_COMMON): Use it. * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef. PR target/38118 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file. * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ... * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here. * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine. * config/i386/sol2.h (TARGET_SUN_TLS): Redefine. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157705 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure')
-rwxr-xr-xgcc/configure60
1 files changed, 44 insertions, 16 deletions
diff --git a/gcc/configure b/gcc/configure
index 6934b1cae16..f5cb4fec813 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -21946,25 +21946,53 @@ foo: .long 25
tls_first_minor=17
;;
i[34567]86-*-*)
- conftest_s='
- .section ".tdata","awT",@progbits
+ case "$target" in
+ i[34567]86-*-solaris2.[56789]*)
+ # TLS was introduced in the Solaris 9 4/04 release but
+ # we do not enable it by default on Solaris 9 either.
+ if test "x$enable_tls" = xyes ; then
+ on_solaris=yes
+ else
+ enable_tls=no;
+ fi
+ ;;
+ i[34567]86-*-solaris2.*)
+ on_solaris=yes
+ ;;
+ *)
+ on_solaris=no
+ ;;
+ esac
+ if test x$on_solaris = xyes && test x$gas_flag = xno; then
+ conftest_s='
+ .section .tdata,"awt",@progbits'
+ tls_first_major=0
+ tls_first_minor=0
+
+$as_echo "#define TLS_SECTION_ASM_FLAG 't'" >>confdefs.h
+
+ else
+ conftest_s='
+ .section ".tdata","awT",@progbits'
+ tls_first_major=2
+ tls_first_minor=14
+ tls_as_opt="--fatal-warnings"
+ fi
+ conftest_s="$conftest_s
foo: .long 25
.text
movl %gs:0, %eax
- leal foo@TLSGD(,%ebx,1), %eax
- leal foo@TLSLDM(%ebx), %eax
- leal foo@DTPOFF(%eax), %edx
- movl foo@GOTTPOFF(%ebx), %eax
- subl foo@GOTTPOFF(%ebx), %eax
- addl foo@GOTNTPOFF(%ebx), %eax
- movl foo@INDNTPOFF, %eax
- movl $foo@TPOFF, %eax
- subl $foo@TPOFF, %eax
- leal foo@NTPOFF(%ecx), %eax'
- tls_first_major=2
- tls_first_minor=14
- tls_as_opt=--fatal-warnings
- ;;
+ leal foo@tlsgd(,%ebx,1), %eax
+ leal foo@tlsldm(%ebx), %eax
+ leal foo@dtpoff(%eax), %edx
+ movl foo@gottpoff(%ebx), %eax
+ subl foo@gottpoff(%ebx), %eax
+ addl foo@gotntpoff(%ebx), %eax
+ movl foo@indntpoff, %eax
+ movl \$foo@tpoff, %eax
+ subl \$foo@tpoff, %eax
+ leal foo@ntpoff(%ecx), %eax"
+ ;;
x86_64-*-*)
conftest_s='
.section ".tdata","awT",@progbits