aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2004-11-30 09:49:03 +0000
committerAlan Modra <amodra@gcc.gnu.org>2004-11-30 20:19:03 +1030
commit0050e8620a98776c3508acd826c328e7c5023fd3 (patch)
tree4bf5c21328c20ab2a456f4810a1fdb075a864456 /gcc
parent7370bebd3f4bf1725a73073c027ba13afc127f40 (diff)
downloadgcc-0050e8620a98776c3508acd826c328e7c5023fd3.zip
gcc-0050e8620a98776c3508acd826c328e7c5023fd3.tar.gz
gcc-0050e8620a98776c3508acd826c328e7c5023fd3.tar.bz2
varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL on TLS symbols.
* varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL on TLS symbols. * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS check. From-SVN: r91515
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c4
-rw-r--r--gcc/varasm.c4
3 files changed, 9 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9185db1..510cc38 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-30 Alan Modra <amodra@bigpond.net.au>
+
+ * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
+ on TLS symbols.
+ * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
+ check.
+
2004-11-30 Zack Weinberg <zack@codesourcery.com>
* gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index ab80a47..285996838 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -17271,10 +17271,6 @@ rs6000_elf_in_small_data_p (tree decl)
if (TREE_CODE (decl) == FUNCTION_DECL)
return false;
- /* Thread-local vars can't go in the small data area. */
- if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl))
- return false;
-
if (TREE_CODE (decl) == VAR_DECL && DECL_SECTION_NAME (decl))
{
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (decl));
diff --git a/gcc/varasm.c b/gcc/varasm.c
index e58422d..e4fb1ee 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5097,10 +5097,10 @@ default_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
flags |= SYMBOL_FLAG_FUNCTION;
if (targetm.binds_local_p (decl))
flags |= SYMBOL_FLAG_LOCAL;
- if (targetm.in_small_data_p (decl))
- flags |= SYMBOL_FLAG_SMALL;
if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL (decl))
flags |= decl_tls_model (decl) << SYMBOL_FLAG_TLS_SHIFT;
+ else if (targetm.in_small_data_p (decl))
+ flags |= SYMBOL_FLAG_SMALL;
/* ??? Why is DECL_EXTERNAL ever set for non-PUBLIC names? Without
being PUBLIC, the thing *must* be defined in this translation unit.
Prevent this buglet from being propagated into rtl code as well. */