From 963e3b588003bafb2529e4a989211b0ecc39c684 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 29 Aug 2002 02:18:11 +0000 Subject: [PATCH] * locale/nl_langinfo.c [NL_CURRENT_INDIRECT]: Use a categories.def iterator to refer to each category's _nl_current_LC_FOO symbol, so we know they are all linked in. --- ChangeLog | 4 ++++ linuxthreads/ChangeLog | 6 +++++- locale/nl_langinfo.c | 12 ++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index cd6fb77b81..d8455f871e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2002-08-28 Roland McGrath + * locale/nl_langinfo.c [NL_CURRENT_INDIRECT]: Use a categories.def + iterator to refer to each category's _nl_current_LC_FOO symbol, so + we know they are all linked in. + * NEWS: Added 2.2.6 text from 2.2 branch version. * time/strptime.c (strptime_internal): Remove spurious const. diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 1091ce6cdf..2ae14e01d8 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,7 @@ +2002-08-28 Roland McGrath + + * sysdeps/pthread/timer_routines.c (thread_func): Fix type in cast. + 2002-08-28 Jakub Jelinek * sysdeps/unix/sysv/linux/hppa/aio_cancel.c: New file. @@ -7,7 +11,7 @@ 2002-08-28 Ulrich Drepper * sysdeps/pthread/timer_routines.c (thread_func): Change return - type to void and add casts in use to avoid warnings wit all gcc + type to void and add casts in use to avoid warnings with all gcc versions. 2002-08-08 Jakub Jelinek diff --git a/locale/nl_langinfo.c b/locale/nl_langinfo.c index 7df2b30ba9..2314b80f0f 100644 --- a/locale/nl_langinfo.c +++ b/locale/nl_langinfo.c @@ -47,6 +47,18 @@ nl_langinfo (item) #ifdef USE_IN_EXTENDED_LOCALE_MODEL data = l->__locales[category]; +#elif defined NL_CURRENT_INDIRECT + /* Make direct reference to every _nl_current_CATEGORY symbol, + since we know only at runtime which categories are used. */ + switch (category) + { +# define DEFINE_CATEGORY(category, category_name, items, a) \ + case category: data = *_nl_current_##category; break; +# include "categories.def" +# undef DEFINE_CATEGORY + default: /* Should be impossible. */ + return (char *) ""; + } #else data = _NL_CURRENT_DATA (category); #endif