aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2011-01-06 19:00:10 +0000
committerRainer Orth <ro@gcc.gnu.org>2011-01-06 19:00:10 +0000
commitadb75db0677f4f8088e5ede6c2457be0337b33d6 (patch)
treed902caf9f88f53ca1a1f35a536e5fbe3d5f0d74d
parent74b51535c945900d75dd21fa6b551eeb6f46bed6 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/config/i386/sol2-10.h3
-rw-r--r--gcc/config/sol2.h5
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)); \