diff options
author | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-24 18:49:49 +0000 |
---|---|---|
committer | ro <ro@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-03-24 18:49:49 +0000 |
commit | 7d07052011f59f1abbfdbc8cfeb0866d56150856 (patch) | |
tree | ef6a9e9fc1a86c9ee173f222db3bc79d9f53eddf /gcc/configure | |
parent | cf4f27b5da0da3f24fd7d288f9668a0720a1e7b7 (diff) | |
download | gcc-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-x | gcc/configure | 60 |
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 |