diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2011-01-06 19:00:10 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2011-01-06 19:00:10 +0000 |
commit | adb75db0677f4f8088e5ede6c2457be0337b33d6 (patch) | |
tree | d902caf9f88f53ca1a1f35a536e5fbe3d5f0d74d | |
parent | 74b51535c945900d75dd21fa6b551eeb6f46bed6 (diff) | |
download | gcc-adb75db0677f4f8088e5ede6c2457be0337b33d6.zip gcc-adb75db0677f4f8088e5ede6c2457be0337b33d6.tar.gz gcc-adb75db0677f4f8088e5ede6c2457be0337b33d6.tar.bz2 |
re PR target/38118 (gcc emits non-TLS data as TLS on Solaris 11/SPARC)
PR target/38118
* config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
if coming from .tdata.
* config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
From-SVN: r168550
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/sol2-10.h | 3 | ||||
-rw-r--r-- | gcc/config/sol2.h | 5 |
3 files changed, 10 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e6c4dee..4f8b20b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + PR target/38118 + * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss + if coming from .tdata. + * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + 2011-01-06 Jan Hubicka <jh@suse.cz> PR lto/47188 diff --git a/gcc/config/i386/sol2-10.h b/gcc/config/i386/sol2-10.h index 8f59775..e8f9dba 100644 --- a/gcc/config/i386/sol2-10.h +++ b/gcc/config/i386/sol2-10.h @@ -58,8 +58,7 @@ along with GCC; see the file COPYING3. If not see { \ if (TARGET_SUN_TLS \ && in_section \ - && ((in_section->common.flags & (SECTION_TLS | SECTION_BSS)) \ - == (SECTION_TLS | SECTION_BSS))) \ + && ((in_section->common.flags & SECTION_TLS) == SECTION_TLS)) \ switch_to_section (bss_section); \ x86_elf_aligned_common (FILE, NAME, SIZE, ALIGN); \ } \ diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index 75f4675..aace524 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -277,7 +277,7 @@ __enable_execute_stack (void *addr) \ } \ while (0) -/* Solaris 'as' has a bug: a .common directive in .tbss section +/* Solaris 'as' has a bug: a .common directive in .tbss or .tdata section behaves as .tls_common rather than normal non-TLS .common. */ #undef ASM_OUTPUT_ALIGNED_COMMON #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \ @@ -285,8 +285,7 @@ __enable_execute_stack (void *addr) \ { \ if (TARGET_SUN_TLS \ && in_section \ - && ((in_section->common.flags & (SECTION_TLS | SECTION_BSS)) \ - == (SECTION_TLS | SECTION_BSS))) \ + && ((in_section->common.flags & SECTION_TLS) == SECTION_TLS)) \ switch_to_section (bss_section); \ fprintf ((FILE), "%s", COMMON_ASM_OP); \ assemble_name ((FILE), (NAME)); \ |