From 505092c2fd7606c8add097815b68568be4c7ccf3 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Wed, 18 Dec 2019 14:35:27 +0100 Subject: setlocale: Make calls with NULL argument multithread-safe. * lib/setlocale.c: Include . (setlocale_mtsafe): New function. (setlocale_unixlike): Invoke setlocale_mtsafe instead of setlocale. (setlocale_improved): Renamed from rpl_setlocale. * m4/setlocale.m4 (gl_FUNC_SETLOCALE): Require gl_FUNC_SETLOCALE_NULL. Set and define NEED_SETLOCALE_IMPROVED and NEED_SETLOCALE_MTSAFE. Set LIB_SETLOCALE. * modules/setlocale (Depends-on): Add setlocale-null. Update conditions. (Link): New section. * tests/locale.c: Undefine setlocale. * tests/test-setlocale_null-one.c: Likewise. * tests/test-setlocale_null-all.c: Likewise. * modules/setlocale-tests (Makefile.am): Link the test programs with $(LIB_SETLOCALE). * modules/astrxfrm-tests (Makefile.am): Likewise. * modules/btowc-tests (Makefile.am): Likewise. * modules/c-ctype-tests (Makefile.am): Likewise. * modules/c-snprintf-tests (Makefile.am): Likewise. * modules/c-strcase-tests (Makefile.am): Likewise. * modules/c-vasprintf-tests (Makefile.am): Likewise. * modules/c-vsnprintf-tests (Makefile.am): Likewise. * modules/c-xvasprintf-tests (Makefile.am): Likewise. * modules/dfa-tests (Makefile.am): Likewise. * modules/duplocale-tests (Makefile.am): Likewise. * modules/hard-locale-tests (Makefile.am): Likewise. * modules/localcharset-tests (Makefile.am): Likewise. * modules/localename-tests (Makefile.am): Likewise. * modules/mbmemcasecmp-tests (Makefile.am): Likewise. * modules/mbmemcasecoll-tests (Makefile.am): Likewise. * modules/mbrtowc-tests (Makefile.am): Likewise. * modules/mbscasecmp-tests (Makefile.am): Likewise. * modules/mbscasestr-tests (Makefile.am): Likewise. * modules/mbschr-tests (Makefile.am): Likewise. * modules/mbscspn-tests (Makefile.am): Likewise. * modules/mbsinit-tests (Makefile.am): Likewise. * modules/mbsncasecmp-tests (Makefile.am): Likewise. * modules/mbsnrtowcs-tests (Makefile.am): Likewise. * modules/mbspbrk-tests (Makefile.am): Likewise. * modules/mbspcasecmp-tests (Makefile.am): Likewise. * modules/mbsrchr-tests (Makefile.am): Likewise. * modules/mbsrtowcs-tests (Makefile.am): Likewise. * modules/mbsspn-tests (Makefile.am): Likewise. * modules/mbsstr-tests (Makefile.am): Likewise. * modules/nl_langinfo-tests (Makefile.am): Likewise. * modules/quotearg-tests (Makefile.am): Likewise. * modules/regex-tests (Makefile.am): Likewise. * modules/strfmon_l-tests (Makefile.am): Likewise. * modules/strtod-tests (Makefile.am): Likewise. * modules/strtold-tests (Makefile.am): Likewise. * modules/unicase/locale-language-tests (Makefile.am): Likewise. * modules/unicase/ulc-casecmp-tests (Makefile.am): Likewise. * modules/unicase/ulc-casecoll-tests (Makefile.am): Likewise. * modules/unigbrk/ulc-grapheme-breaks-tests (Makefile.am): Likewise. * modules/unistdio/u8-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u16-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/u32-vasnprintf-tests (Makefile.am): Likewise. * modules/unistdio/ulc-vasnprintf-tests (Makefile.am): Likewise. * modules/uniwbrk/ulc-wordbreaks-tests (Makefile.am): Likewise. * modules/vasnprintf-posix-tests (Makefile.am): Likewise. * modules/wcrtomb-tests (Makefile.am): Likewise. * modules/wcsnrtombs-tests (Makefile.am): Likewise. * modules/wcsrtombs-tests (Makefile.am): Likewise. * modules/wcwidth-tests (Makefile.am): Likewise. * doc/posix-functions/setlocale.texi: Mention that the multithread- safety fix is also available in module 'setlocale'. --- modules/mbscspn-tests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'modules/mbscspn-tests') diff --git a/modules/mbscspn-tests b/modules/mbscspn-tests index a6eada177b..8c4a3d154d 100644 --- a/modules/mbscspn-tests +++ b/modules/mbscspn-tests @@ -15,4 +15,4 @@ Makefile.am: TESTS += test-mbscspn.sh TESTS_ENVIRONMENT += LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' check_PROGRAMS += test-mbscspn -test_mbscspn_LDADD = $(LDADD) $(LIBTHREAD) +test_mbscspn_LDADD = $(LDADD) $(LIB_SETLOCALE) $(LIBTHREAD) -- cgit v1.2.1