re PR target/38118 (gcc emits non-TLS data as TLS on Solaris 11/SPARC)
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 24 Mar 2010 18:49:49 +0000 (18:49 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Wed, 24 Mar 2010 18:49:49 +0000 (18:49 +0000)
commitf1c26cad132b285586863242c4bb6b5f551fae41
treeef6a9e9fc1a86c9ee173f222db3bc79d9f53eddf
parentd2af65b9bc0c020a647859b553eac045410d0181
re PR target/38118 (gcc emits non-TLS data as TLS on Solaris 11/SPARC)

* 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.

From-SVN: r157705
14 files changed:
gcc/ChangeLog
gcc/config.gcc
gcc/config.in
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/sol2-10.h
gcc/config/i386/sol2-gas.h
gcc/config/i386/sol2.h
gcc/config/sol2.h
gcc/config/sparc/sol2.h
gcc/configure
gcc/configure.ac
gcc/defaults.h
gcc/varasm.c