about summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-12-21 09:46:55 +0000
committerJakub Jelinek <jakub@redhat.com>2005-12-21 09:46:55 +0000
commite3173d2c996d8e30dfe44e9bf530881da6df6aaa (patch)
tree88d7db2140348f9328c7250d20aecb7f8adcb79b /include
parentbaa0a2c9a410a88fcacdf82abc7d21b0c99c7cd3 (diff)
downloadglibc-e3173d2c996d8e30dfe44e9bf530881da6df6aaa.tar.gz
glibc-e3173d2c996d8e30dfe44e9bf530881da6df6aaa.tar.xz
glibc-e3173d2c996d8e30dfe44e9bf530881da6df6aaa.zip
	Workaround for http://gcc.gnu.org/PR25240
	* include/libc-symbols.h (weak_extern): Define using weak attribute.
	(_weak_extern): Remove.
	(weak_tls_extern): Define.
	* locale/uselocale.c (DEFINE_CATEGORY): Use weak_tls_extern for
	_nl_current_##category.
	* locale/setlocale.c (DEFINE_CATEGORY): Likewise.
Diffstat (limited to 'include')
-rw-r--r--include/libc-symbols.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index f69bf8350d..8ee940719e 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -114,8 +114,8 @@
   extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
 
 /* Declare SYMBOL as weak undefined symbol (resolved to 0 if not defined).  */
-#  define weak_extern(symbol) extern __typeof (symbol) symbol __attribute__ ((weak));
-#  define weak_tls_extern(symbol) extern __thread __typeof (symbol) symbol __attribute__ ((weak));
+#  define weak_extern(symbol) _weak_extern (weak symbol)
+#  define _weak_extern(expr) _Pragma (#expr)
 
 # else