mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 13:00:06 +00:00
1a0d874ed4
* locale/xlocale.c: Revert changes putting _nl_global_locale here. This file again just defines _nl_C_locobj. (_nl_C_locobj): Use a categories.def iterator in the initializer. * locale/global-locale.c: New file. Define _nl_global_locale here, using all weak references in the initializer. * locale/Makefile (aux): Add global-locale. * locale/localeinfo.h (_nl_global_locale, _NL_CURRENT_LOCALE): Make these unconditional, along with the tsd decl. [!SHARED && HAVE___THREAD && HAVE_WEAK_SYMBOLS] (NL_CURRENT_INDIRECT): Define it under these conditions. [NL_CURRENT_INDIRECT]: Test this instead of [! SHARED]. Don't declare _nl_current. Declare _nl_current_LC_FOO as `extern __thread struct locale_data *const *'. [NL_CURRENT_INDIRECT] (_NL_CURRENT_DATA, _NL_CURRENT, _NL_CURRENT_WSTR): Add indirection. [NL_CURRENT_INDIRECT] (_NL_CURRENT_DEFINE): Rewritten. Define the thread variable _nl_current_LC_FOO and also a special absolute symbol _nl_current_LC_FOO_used. * locale/uselocale.c (__uselocale) [NL_CURRENT_INDIRECT]: Set each _nl_current_LC_FOO symbol to point into the new locale, using weak references to test if _nl_current_LC_FOO_used was linked in. * locale/setlocale.c [! SHARED]: Replace this conditional ... [NL_CURRENT_INDIRECT]: ... with this one. (_nl_current, _nl_C): Variables removed. [NL_CURRENT_INDIRECT] (_nl_current_used): New variable, table of weak references to _nl_current_LC_FOO_used. [NL_CURRENT_INDIRECT] (CATEGORY_USED): Define using that table. (free_category): New function, broken out of ... (free_mem): ... here. Call that. (free_mem) [NL_CURRENT_INDIRECT]: Use a categories.def iterator instead of a loop. __USING_NAMESPACE_C99 depending on _GLIBCPP_USE_NAMESPACES. |
||
---|---|---|
.. | ||
bits | ||
programs | ||
.cvsignore | ||
broken_cur_max.c | ||
C_name.c | ||
C-address.c | ||
C-collate.c | ||
C-ctype.c | ||
C-identification.c | ||
C-measurement.c | ||
C-messages.c | ||
C-monetary.c | ||
C-name.c | ||
C-numeric.c | ||
C-paper.c | ||
C-telephone.c | ||
C-time.c | ||
C-translit.h | ||
C-translit.h.in | ||
categories.def | ||
coll-lookup.h | ||
duplocale.c | ||
elem-hash.h | ||
findlocale.c | ||
freelocale.c | ||
gen-translit.pl | ||
global-locale.c | ||
hashval.h | ||
indigits.h | ||
indigitswc.h | ||
iso-639.def | ||
iso-3166.def | ||
iso-4217.def | ||
langinfo.h | ||
lc-address.c | ||
lc-collate.c | ||
lc-ctype.c | ||
lc-identification.c | ||
lc-measurement.c | ||
lc-messages.c | ||
lc-monetary.c | ||
lc-name.c | ||
lc-numeric.c | ||
lc-paper.c | ||
lc-telephone.c | ||
lc-time.c | ||
loadarchive.c | ||
loadlocale.c | ||
locale.h | ||
localeconv.c | ||
localeinfo.h | ||
localename.c | ||
locarchive.h | ||
Makefile | ||
mb_cur_max.c | ||
newlocale.c | ||
nl_langinfo_l.c | ||
nl_langinfo.c | ||
outdigits.h | ||
outdigitswc.h | ||
setlocale.c | ||
strlen-hash.h | ||
SYS_libc.c | ||
tst-C-locale.c | ||
uselocale.c | ||
Versions | ||
weight.h | ||
weightwc.h | ||
xlocale.c | ||
xlocale.h |