https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125418
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[16/17 regression] c: |[16/17 regression] #pragma
|tls_model("initial-exec") |weak isn't applied hidden
|attribute ignored for |TLS symbol
|hidden symbols with |
|-fno-pie |
--- Comment #14 from H.J. Lu <hjl.tools at gmail dot com> ---
[hjl@gnu-zen4-1 tls-1]$ cat x.c
extern __thread int foo __attribute__ ((visibility("hidden"), weak));
int *
func (void)
{
return &foo;
}
[hjl@gnu-zen4-1 tls-1]$ cat y.c
extern __thread int foo __attribute__ ((visibility("hidden")));
#pragma weak foo
int *
func (void)
{
return &foo;
}
[hjl@gnu-zen4-1 tls-1]$ make
/usr/gcc-16.1.1-x32/bin/gcc -O2 -fdump-ipa-whole-program -S x.c
/usr/gcc-16.1.1-x32/bin/gcc -O2 -fdump-ipa-whole-program -S y.c
grep Varpool x.c.*i.whole-program
Varpool flags: tls-initial-exec
grep Varpool y.c.*i.whole-program
Varpool flags: tls-local-exec
[hjl@gnu-zen4-1 tls-1]$