From 0050e8620a98776c3508acd826c328e7c5023fd3 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 30 Nov 2004 09:49:03 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++++++ gcc/config/rs6000/rs6000.c | 4 ---- gcc/varasm.c | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9185db16e2a..510cc389b4f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-11-30 Alan Modra + + * 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 * 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 ab80a47bdf2..285996838c1 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 e58422d664d..e4fb1eee1b6 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. */ -- 2.30.2