]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Revert: cvs/fedora-glibc-2_3_90-22
authorJakub Jelinek <jakub@redhat.com>
Wed, 21 Dec 2005 09:46:55 +0000 (09:46 +0000)
committerJakub Jelinek <jakub@redhat.com>
Wed, 21 Dec 2005 09:46:55 +0000 (09:46 +0000)
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.

ChangeLog
include/libc-symbols.h
locale/setlocale.c
locale/uselocale.c

index 93c0f79b0b05d29b567e4a4e2bbc6bb5a84a7b57..f471b858599799b132319e4087f3693d93ee327c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        (mcheck): Call __libc_malloc and __libc_free instead of
        malloc and free.
 
-       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.
-
 2005-12-19  Ulrich Drepper  <drepper@redhat.com>
 
        [BZ #1955]
index f69bf8350ddc393d7542ddc7487222d07c84b1b0..8ee940719e0637ecbce2d2b25e2d2f56d5a51e03 100644 (file)
   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
 
index dc65d93b30ac05b1eff570ba2bc3e952a2e33f04..50bf8e772f7be7468437b664d36589b26dbee075 100644 (file)
@@ -39,7 +39,7 @@
 # define DEFINE_CATEGORY(category, category_name, items, a) \
     extern char _nl_current_##category##_used; \
     weak_extern (_nl_current_##category##_used) \
-    weak_tls_extern (_nl_current_##category)
+    weak_extern (_nl_current_##category)
 # include "categories.def"
 # undef        DEFINE_CATEGORY
 
index 671c519531c5c525dfb4896a70fb6568b5d4a693..4e63dabd8e7bc616fc87e537accc2a8e64dd3c58 100644 (file)
@@ -54,7 +54,7 @@ __uselocale (locale_t newloc)
       {                                                                              \
        extern char _nl_current_##category##_used;                            \
        weak_extern (_nl_current_##category##_used)                           \
-       weak_tls_extern (_nl_current_##category)                                      \
+       weak_extern (_nl_current_##category)                                  \
        if (&_nl_current_##category##_used != 0)                              \
          _nl_current_##category = &locobj->__locales[category];              \
       }