]> Savannah Git Hosting - gnulib.git/log
gnulib.git
5 years agointtypes-incomplete: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 09:12:54 +0000 (10:12 +0100)]
inttypes-incomplete: Assume that the compiler supports 'long long'.

* lib/inttypes.in.h (_PRI64_PREFIX, _PRIu64_PREFIX, _SCN64_PREFIX,
_SCNu64_PREFIX): Assume HAVE_LONG_LONG_INT and
HAVE_UNSIGNED_LONG_LONG_INT to be 1.
* m4/inttypes.m4 (gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION): Assume
HAVE_LONG_LONG_INT to be 1.
* modules/inttypes-incomplete (Makefile.am): Don't substitute
HAVE_LONG_LONG_INT, HAVE_UNSIGNED_LONG_LONG_INT.

5 years agomalloca: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 09:08:36 +0000 (10:08 +0100)]
malloca: Assume that the compiler supports 'long long'.

* lib/malloca.h: Assume HAVE_LONG_LONG_INT to be 1.
* m4/malloca.m4 (gl_MALLOCA): Don't require AC_TYPE_LONG_LONG_INT.
* modules/malloca (Files): Remove longlong.m4.
* modules/relocatable-prog-wrapper (Files): Likewise.

5 years agoatoll: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 09:06:04 +0000 (10:06 +0100)]
atoll: Assume that the compiler supports 'long long'.

* m4/atoll.m4 (gl_FUNC_ATOLL): Don't require AC_TYPE_LONG_LONG_INT.
* modules/atoll (Files): Remove longlong.m4.

5 years agostrtoll: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 09:04:37 +0000 (10:04 +0100)]
strtoll: Assume that the compiler supports 'long long'.

* m4/strtoll.m4 (gl_FUNC_STRTOLL): Don't require AC_TYPE_LONG_LONG_INT.
* modules/strtoll (Files): Remove longlong.m4.

5 years agostrtoull: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 09:03:30 +0000 (10:03 +0100)]
strtoull: Assume that the compiler supports 'long long'.

* m4/strtoull.m4 (gl_FUNC_STRTOULL): Don't require
AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/strtoull (Files): Remove longlong.m4.

5 years agostrtoimax, strtoumax: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:59:49 +0000 (09:59 +0100)]
strtoimax, strtoumax: Assume that the compiler supports 'long long'.

* lib/strtoimax.c: Assume HAVE_LONG_LONG_INT and
HAVE_UNSIGNED_LONG_LONG_INT to be 1.
* m4/strtoimax.m4 (gl_PREREQ_STRTOIMAX): Don't require
AC_TYPE_LONG_LONG_INT.
* m4/strtoumax.m4 (gl_PREREQ_STRTOUMAX): Don't require
AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/strtoimax (Files): Remove longlong.m4.
* modules/strtoumax (Files): Likewise.

5 years agoxstrtoll: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:57:17 +0000 (09:57 +0100)]
xstrtoll: Assume that the compiler supports 'long long'.

* lib/xstrtol.h (xstrtoll, xstrtoull): Declare unconditionally.
* modules/xstrtoll (configure.ac): Don't invoke AC_TYPE_LONG_LONG_INT.

5 years agovasnprintf: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:55:04 +0000 (09:55 +0100)]
vasnprintf: Assume that the compiler supports 'long long'.

* lib/printf-args.h: Assume HAVE_LONG_LONG_INT to be 1.
* lib/printf-args.c (PRINTF_FETCHARGS): Likewise.
* lib/printf-parse.c (PRINTF_PARSE): Likewise.
* lib/vasnprintf.c (MAX_ROOM_NEEDED, VASNPRINTF): Likewise.
* m4/intmax_t.m4 (gl_AC_TYPE_INTMAX_T, gt_AC_TYPE_INTMAX_T): Don't
require AC_TYPE_LONG_LONG_INT.
* m4/vasnprintf.m4 (gl_PREREQ_PRINTF_ARGS, gl_PREREQ_PRINTF_PARSE,
gl_PREREQ_VASNPRINTF): Likewise.
* modules/vasnprintf (Files): Remove longlong.m4.
* modules/c-vasnprintf (Files): Likewise.
* modules/unistdio/u8-vasnprintf (Files): Likewise.
* modules/unistdio/u8-u8-vasnprintf (Files): Likewise.
* modules/unistdio/u16-vasnprintf (Files): Likewise.
* modules/unistdio/u16-u16-vasnprintf (Files): Likewise.
* modules/unistdio/u32-vasnprintf (Files): Likewise.
* modules/unistdio/u32-u32-vasnprintf (Files): Likewise.
* modules/unistdio/ulc-vasnprintf (Files): Likewise.

5 years agogethrxtime: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:46:46 +0000 (09:46 +0100)]
gethrxtime: Assume that the compiler supports 'long long'.

* lib/xtime.h (xtime_t): Define to 'long long int' always.
(XTIME_PRECISION): Define to 1000000000 always.
(xtime_make, xtime_sec): Optimize accordingly.
* m4/gethrxtime.m4 (gl_XTIME): Don't require AC_TYPE_LONG_LONG_INT.
* modules/gethrxtime (Files): Remove longlong.m4.

5 years agointeger_length*: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:43:25 +0000 (09:43 +0100)]
integer_length*: Assume that the compiler supports 'long long'.

* lib/integer_length.h (integer_length_ll): Declare unconditionally.
* modules/integer_length (Files): Remove longlong.m4.
(configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/integer_length_l (Files): Remove longlong.m4.
(configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT.
* modules/integer_length_ll (Files): Remove longlong.m4.
(configure.ac): Don't require AC_TYPE_UNSIGNED_LONG_LONG_INT.

5 years agocount-one-bits: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:34:06 +0000 (09:34 +0100)]
count-one-bits: Assume that the compiler supports 'long long'.

* lib/count-one-bits.h (count_one_bits_ll): Define unconditionally.
* m4/count-one-bits.m4: Remove file.
* modules/count-one-bits (Files): Remove it.
(configure.ac): Don't invoke gl_COUNT_ONE_BITS.
* tests/test-count-one-bits.c (main): Test count_one_bits_ll
unconditionally.

5 years agocount-trailing-zeros: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:33:17 +0000 (09:33 +0100)]
count-trailing-zeros: Assume that the compiler supports 'long long'.

* lib/count-trailing-zeros.h (count_trailing_zeros_ll): Define
unconditionally.
* m4/count-trailing-zeros.m4: Remove file.
* modules/count-trailing-zeros (Files): Remove it.
(configure.ac): Don't invoke gl_COUNT_TRAILING_ZEROS.
* tests/test-count-trailing-zeros.c (main): Test count_trailing_zeros_ll
unconditionally.

5 years agocount-leading-zeros: Assume that the compiler supports 'long long'.
Bruno Haible [Sun, 22 Dec 2019 08:32:07 +0000 (09:32 +0100)]
count-leading-zeros: Assume that the compiler supports 'long long'.

* lib/count-leading-zeros.h (count_leading_zeros_ll): Define
unconditionally.
* m4/count-leading-zeros.m4: Remove file.
* modules/count-leading-zeros (Files): Remove it.
(configure.ac): Don't invoke gl_COUNT_LEADING_ZEROS.
* tests/test-count-leading-zeros.c (main): Test count_leading_zeros_ll
unconditionally.

5 years agolocalcharset: Update support for OpenBSD.
Bruno Haible [Sun, 22 Dec 2019 07:03:24 +0000 (08:03 +0100)]
localcharset: Update support for OpenBSD.

* lib/localcharset.c (alias_table): Map "US-ASCII" to "ASCII".

5 years agopthread_sigmask: Avoid test failure on NetBSD 8.0.
Bruno Haible [Sat, 21 Dec 2019 17:22:38 +0000 (18:22 +0100)]
pthread_sigmask: Avoid test failure on NetBSD 8.0.

* tests/test-pthread_sigmask2.c (main): Skip the error handling test on
NetBSD.
* doc/posix-functions/pthread_sigmask.texi: Mention the NetBSD problem.

5 years agothreadlib: Improve code structure.
Bruno Haible [Sat, 21 Dec 2019 16:56:26 +0000 (17:56 +0100)]
threadlib: Improve code structure.

* m4/threadlib.m4: Reorder macros. Add comments.

5 years agoautoupdate
Karl Berry [Sat, 21 Dec 2019 16:46:35 +0000 (08:46 -0800)]
autoupdate

5 years agothreadlib: Fix LIBMULTITHREAD on FreeBSD with --enable-threads=isoc.
Bruno Haible [Sat, 21 Dec 2019 12:53:31 +0000 (13:53 +0100)]
threadlib: Fix LIBMULTITHREAD on FreeBSD with --enable-threads=isoc.

* m4/threadlib.m4 (gl_STDTHREADLIB_BODY): New macro (some code moved
here from m4/threads.m4).
(gl_THREADLIB_BODY): Don't test whether mtx_lock and cnd_timedwait exist
in libc. Instead, rely on gl_STDTHREADLIB_BODY.
(gl_STDTHREADLIB): New macro.
* m4/threads.m4 (gl_THREADS_H): Require gl_STDTHREADLIB instead of
gl_THREADLIB_BODY and gl_YIELD. Don't set LIBSTDTHREAD here.

5 years agosched_yield: Don't depend on threadlib and yield.
Bruno Haible [Sat, 21 Dec 2019 12:36:03 +0000 (13:36 +0100)]
sched_yield: Don't depend on threadlib and yield.

* m4/threadlib.m4 (gl_PTHREADLIB): Document that it sets
LIB_SCHED_YIELD.
(gl_PTHREADLIB_BODY): Set LIB_SCHED_YIELD (code moved here from
m4/yield.m4).
* m4/sched_yield.m4 (gl_FUNC_SCHED_YIELD): Require gl_PTHREADLIB, not
gl_THREADLIB and gl_YIELD.
* m4/yield.m4 (gl_YIELD): Require gl_PTHREADLIB. Determine YIELD_LIB
based on $(LIB_SCHED_YIELD).
* m4/threads.m4 (gl_THREADS_H): Don't require gl_YIELD. Use
$(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/sched_yield (Files): Remove yield.m4. Add threadlib.m4.
(Depends-on): Remove threadlib.
(Link): Mention $(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/threads-h (Files): Remove m4/yield.m4.
* modules/pthread-cond-tests (Makefile.am): Link the programs against
$(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/pthread-mutex-tests (Makefile.am): Likewise.
* modules/pthread-once-tests (Makefile.am): Likewise.
* modules/pthread-rwlock-tests (Makefile.am): Likewise.
* modules/pthread-tss-tests (Makefile.am): Likewise.

5 years agothreads-h: Don't depend on threadlib.
Bruno Haible [Sat, 21 Dec 2019 12:16:44 +0000 (13:16 +0100)]
threads-h: Don't depend on threadlib.

* modules/threads-h (configure.ac-early): Invoke gl_ANYTHREADLIB_EARLY,
not gl_THREADLIB_EARLY.

5 years agonl_langinfo tests: Fix link error (regression from 2019-12-18).
Bruno Haible [Sat, 21 Dec 2019 11:54:51 +0000 (12:54 +0100)]
nl_langinfo tests: Fix link error (regression from 2019-12-18).

* modules/nl_langinfo-tests (Makefile.am): Link also test-nl_langinfo
with $(LIB_SETLOCALE).

5 years agothreadlib: Remove unused dependency (left over from 2019-07-06).
Bruno Haible [Sat, 21 Dec 2019 11:51:50 +0000 (12:51 +0100)]
threadlib: Remove unused dependency (left over from 2019-07-06).

* modules/threadlib (Depends-on): Remove havelib.

5 years agoNew convention for multithread-safety tests.
Bruno Haible [Sat, 21 Dec 2019 06:41:08 +0000 (07:41 +0100)]
New convention for multithread-safety tests.

* tests/test-setlocale_null-mt-one.c: Renamed from
tests/test-setlocale_null-one.c.
* tests/test-setlocale_null-mt-all.c: Renamed from
tests/test-setlocale_null-all.c.
* modules/setlocale-null-tests (Files, Makefile.am): Update.

5 years agoquotearg tests: Fix conflict with hard-locale tests.
Bruno Haible [Sat, 21 Dec 2019 06:32:12 +0000 (07:32 +0100)]
quotearg tests: Fix conflict with hard-locale tests.

* tests/testlocale: Renamed from tests/locale.
* modules/quotearg-tests (Files): Update.
* tests/test-quotearg.sh (LOCALEDIR): Likewise.

5 years agopthread-thread, lock: On z/OS, use PTHREAD_RWLOCK_INITIALIZER_NP.
Bruno Haible [Sat, 21 Dec 2019 05:29:11 +0000 (06:29 +0100)]
pthread-thread, lock: On z/OS, use PTHREAD_RWLOCK_INITIALIZER_NP.

Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00001.html>
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00167.html>

* lib/pthread.in.h (PTHREAD_RWLOCK_INITIALIZER): Define to
PTHREAD_RWLOCK_INITIALIZER_NP when possible.
* lib/glthread/lock.h: Allow PTHREAD_RWLOCK_INITIALIZER_NP as an
alternative to PTHREAD_RWLOCK_INITIALIZER.
* lib/glthread/lock.c: Likewise.

5 years agomemcmp tests: Work around the clang bug.
Bruno Haible [Sat, 21 Dec 2019 04:42:11 +0000 (05:42 +0100)]
memcmp tests: Work around the clang bug.

* tests/test-memcmp.c (main): Use a volatile function pointer to disable
the clang optimization.

5 years agolocalcharset: Add support for z/OS encoding names.
Bruno Haible [Fri, 20 Dec 2019 08:17:20 +0000 (09:17 +0100)]
localcharset: Add support for z/OS encoding names.

* lib/localcharset.h: Mention which encodings are used as locale
encodings on z/OS.

5 years agoiconv_open: Add support for z/OS encoding names.
Bruno Haible [Fri, 20 Dec 2019 08:12:37 +0000 (09:12 +0100)]
iconv_open: Add support for z/OS encoding names.

Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00172.html>.

* lib/iconv_open-zos.gperf: New file.
* modules/iconv_open (Files): Add iconv_open-zos.gperf.
(Makefile.am): Add rules for generating iconv_open-zos.h from it.
* lib/iconv_open.c (ICONV_FLAVOR_ZOS): New macro.
* m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): On z/OS, use ICONV_FLAVOR_ZOS.
* doc/posix-functions/iconv_open.texi: Mention z/OS.

5 years agodoc: Document the problem of the per-thread locale functions on z/OS.
Bruno Haible [Fri, 20 Dec 2019 06:42:28 +0000 (07:42 +0100)]
doc: Document the problem of the per-thread locale functions on z/OS.

* doc/posix-functions/uselocale.texi: Document the z/OS problem.
* doc/posix-functions/newlocale.texi: Likewise.
* doc/posix-functions/duplocale.texi: Likewise.
* doc/posix-functions/freelocale.texi: Likewise.

5 years agolocalename, gettext: Fix host_os value for z/OS.
Bruno Haible [Fri, 20 Dec 2019 06:29:02 +0000 (07:29 +0100)]
localename, gettext: Fix host_os value for z/OS.

* m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Fix host_os value in
cross-configuration code.

5 years agonstrftime: avoid a shadowing warning
Jim Meyering [Fri, 20 Dec 2019 04:17:27 +0000 (20:17 -0800)]
nstrftime: avoid a shadowing warning

* lib/nstrftime.c (libc_hidden_def): Rename inner "i" to "j",
to avoid shadowing an "i" declared hundreds of lines above.

5 years agodfa: struct dfamust now uses flexible array
Paul Eggert [Thu, 19 Dec 2019 22:35:59 +0000 (14:35 -0800)]
dfa: struct dfamust now uses flexible array

* lib/dfa.c: Include flexmember.h.
(dfamust, dfamustfree): Adjust to struct dfamust change.
This saves a call to malloc+free.
* lib/dfa.h (struct dfamust): Make the final member a
flexible array member.
* modules/dfa (Depends-on): Add flexmember.

5 years agodfa: fast->small for array elements
Paul Eggert [Thu, 19 Dec 2019 21:37:45 +0000 (13:37 -0800)]
dfa: fast->small for array elements

* lib/dfa.c (charclass_word): Use uint_least64_t not uint_fast64_t,
since this type is used in arrays.  This change is more for
documentation than for any practical effect, since the two types
are the same on all known platforms.

5 years agoiconv tests: Test canonicalized, not system-dependent, encoding names.
Bruno Haible [Thu, 19 Dec 2019 05:20:30 +0000 (06:20 +0100)]
iconv tests: Test canonicalized, not system-dependent, encoding names.

* modules/iconv-tests (Depends-on): Add iconv_open.

5 years agoiconv tests: Test canonicalized, not system-dependent, encoding names.
Bruno Haible [Thu, 19 Dec 2019 05:15:56 +0000 (06:15 +0100)]
iconv tests: Test canonicalized, not system-dependent, encoding names.

* tests/test-iconv.c (main): Revert part of the 2016-08-17 patch.

5 years agolocalename: Fix test failure on AIX 7.2.
Bruno Haible [Thu, 19 Dec 2019 01:06:00 +0000 (02:06 +0100)]
localename: Fix test failure on AIX 7.2.

* m4/intl-thread-locale.m4 (gt_INTL_THREAD_LOCALE_NAME): Enable nameless
locales on AIX.
* lib/localename.c (gl_locale_name_thread_unsafe): Handle nameless
locales on AIX.

5 years agoImprove port of AC_C_RESTRICT to Oracle C++
Paul Eggert [Thu, 19 Dec 2019 01:05:02 +0000 (17:05 -0800)]
Improve port of AC_C_RESTRICT to Oracle C++

Problem reported by Christian Biesinger in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00159.html
* m4/gnulib-common.m4 (AC_C_RESTRICT): Port better to
Oracle Developer Studio C++ 12.5 or later.

5 years agowchar: Fix test failures on AIX and MSVC (regression from 2019-12-07).
Bruno Haible [Wed, 18 Dec 2019 18:33:27 +0000 (19:33 +0100)]
wchar: Fix test failures on AIX and MSVC (regression from 2019-12-07).

* lib/wchar.in.h (GNULIB_defined_mbstate_t): Do define on AIX and MSVC.

5 years agolocalename: Ensure multithread-safety in future changes.
Bruno Haible [Wed, 18 Dec 2019 16:03:42 +0000 (17:03 +0100)]
localename: Ensure multithread-safety in future changes.

* lib/localename.c (setlocale): Reference the system's setlocale().
(get_locale_t_name): Invoke setlocale_null instead of setlocale.
(gl_locale_name_posix): Likewise.
* modules/localename (Depends-on): Add setlocale-null.

5 years agosetlocale-null: Make API more useful.
Bruno Haible [Wed, 18 Dec 2019 15:30:09 +0000 (16:30 +0100)]
setlocale-null: Make API more useful.

* lib/locale.in.h (setlocale_null_r): Renamed from setlocale_null. All
callers changed.
(setlocale_null): New declaration.
* lib/setlocale_null.c (setlocale_null_androidfix): New function,
extracted from setlocale_null_unlocked.
(setlocale_null_unlocked): Invoke it.
(setlocale_null_r): Renamed from setlocale_null.
(setlocale_null): New function, extracted from setlocale_mtsafe in
setlocale.c.
* lib/setlocale.c: Don't include <errno.h>.
(setlocale_mtsafe): Invoke setlocale_null.
* lib/setlocale-lock.c: Update comments.
* doc/posix-functions/setlocale.texi: Mention both functions.

5 years agolocalename: Optimize code for native Windows.
Bruno Haible [Wed, 18 Dec 2019 14:07:05 +0000 (15:07 +0100)]
localename: Optimize code for native Windows.

* lib/localename.c (gl_locale_name_posix): Remove handling of LC_ALL
category (not allowed here).

5 years agosetlocale: Make calls with NULL argument multithread-safe.
Bruno Haible [Wed, 18 Dec 2019 13:35:27 +0000 (14:35 +0100)]
setlocale: Make calls with NULL argument multithread-safe.

* lib/setlocale.c: Include <errno.h>.
(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'.

5 years agohard-locale: Make multithread-safe.
Bruno Haible [Wed, 18 Dec 2019 10:42:21 +0000 (11:42 +0100)]
hard-locale: Make multithread-safe.

* lib/hard-locale.h (hard_locale): Move documentation to here.
* lib/hard-locale.c: Don't include <stdlib.h>.
(GLIBC_VERSION): Remove macro.
(hard_locale): Assume that all systems name the "C" and "POSIX" locales
"C" or "POSIX". Invoke setlocale_null instead of setlocale.
* modules/hard-locale (Depends-on): Remove strdup. Add setlocale-null.
(configure.ac): Require gl_FUNC_SETLOCALE_NULL. Set LIB_HARD_LOCALE.
(Link): New section.
* modules/hard-locale-tests (Makefile.am): Link test-hard-locale against
$(LIB_HARD_LOCALE).

5 years agohard-locale: Avoid test failure on Haiku.
Bruno Haible [Wed, 18 Dec 2019 10:10:20 +0000 (11:10 +0100)]
hard-locale: Avoid test failure on Haiku.

* tests/test-hard-locale.c (test_one): Treat Haiku like recent OpenBSD.

5 years agosetlocale-null: Handle NULL result from setlocale.
Bruno Haible [Wed, 18 Dec 2019 09:49:44 +0000 (10:49 +0100)]
setlocale-null: Handle NULL result from setlocale.

* lib/locale.in.h (setlocale_null): Document EINVAL return value.
* lib/setlocale_null.c (setlocale_null_unlocked): Handle NULL result
from setlocale or _wsetlocale.

5 years agohard-locale: Add test.
Bruno Haible [Wed, 18 Dec 2019 08:41:31 +0000 (09:41 +0100)]
hard-locale: Add test.

* tests/test-hard-locale.c: New file.
* tests/locale.c: New file.
* modules/hard-locale-tests: New file.

5 years agodfa: do not match invalid UTF-8
Paul Eggert [Wed, 18 Dec 2019 05:41:27 +0000 (21:41 -0800)]
dfa: do not match invalid UTF-8

* lib/dfa.c (struct dfa): Grow utf8_anychar_classes member array
from 5 to 9 tokens; this is needed due to the changes to
add_utf8_anychar.
(charclass_index): 2nd arg is now pointer-to-const.
(add_utf8_anychar): Match only valid UTF-8 byte sequences
instead of allowing overlong encodings or surrogate halves.

5 years agodfa: simplify charclass by assuming C99
Paul Eggert [Tue, 17 Dec 2019 22:08:33 +0000 (14:08 -0800)]
dfa: simplify charclass by assuming C99

* lib/dfa.c (CHARCLASS_WORD_BITS): Now always 64.
(charclass_word): Now always uint_fast64_t.
(CHARCLASS_PAIR): Remove.
(CHARCLASS_INIT): Take 4 arguments instead of 8.  All uses changed.

5 years agofts: tune via calloc
Paul Eggert [Tue, 17 Dec 2019 21:09:30 +0000 (13:09 -0800)]
fts: tune via calloc

* lib/fts.c (fts_open): Prefer calloc to malloc + memset.

5 years agodfa: tune via xzalloc
Paul Eggert [Tue, 17 Dec 2019 21:07:15 +0000 (13:07 -0800)]
dfa: tune via xzalloc

* lib/dfa.c (dfaoptimize): Prefer xzalloc to xmalloc + memset.

5 years agolocalcharset: Fix multithread-safety bug on Windows and OS/2.
Bruno Haible [Tue, 17 Dec 2019 14:29:15 +0000 (15:29 +0100)]
localcharset: Fix multithread-safety bug on Windows and OS/2.

* lib/localcharset.h (locale_charset): Clarify when the result becomes
invalid.
* lib/localcharset.c (locale_charset): Use a stack-allocated buffer to
assemble the result.

5 years agolocalcharset: Optimize code for native Windows.
Bruno Haible [Tue, 17 Dec 2019 14:02:12 +0000 (15:02 +0100)]
localcharset: Optimize code for native Windows.

* lib/localcharset.c (locale_charset): Don't both calling
setlocale (LC_ALL, NULL) since we're not interested in its result.

5 years agonl_langinfo: Fix multithread-safety bug on OpenBSD 3.8.
Bruno Haible [Tue, 17 Dec 2019 13:10:45 +0000 (14:10 +0100)]
nl_langinfo: Fix multithread-safety bug on OpenBSD 3.8.

* lib/nl_langinfo.c (ctype_codeset): Invoke setlocale_null instead of
setlocale.
* m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Require
gl_FUNC_SETLOCALE_NULL. Set LIB_NL_LANGINFO.
* modules/nl_langinfo (Depends-on): Add setlocale-null.

5 years agonl_langinfo: Fix multithread-safety bug on mingw and MSVC.
Bruno Haible [Tue, 17 Dec 2019 13:00:59 +0000 (14:00 +0100)]
nl_langinfo: Fix multithread-safety bug on mingw and MSVC.

* lib/nl_langinfo.c (ctype_codeset, rpl_nl_langinfo): Use a
stack-allocated buffer to assemble each result and different static
buffers to return it.
* tests/test-nl_langinfo-mt.c: New file.
* modules/nl_langinfo-tests (Files): Add it.
(Depends-on): Add thread, nanosleep.
(Makefile.am): Build test-nl_langinfo-mt test.

5 years agolanginfo: Document more details.
Bruno Haible [Tue, 17 Dec 2019 11:21:07 +0000 (12:21 +0100)]
langinfo: Document more details.

* doc/posix-headers/langinfo.texi: List platform details.
* doc/posix-functions/nl_langinfo.texi: Likewise.

5 years agombsinit: Fix compilation error in mingw-w64 7.0 with _UCRT defined.
Bruno Haible [Tue, 17 Dec 2019 09:35:05 +0000 (10:35 +0100)]
mbsinit: Fix compilation error in mingw-w64 7.0 with _UCRT defined.

Reported by Tom Kacvinsky <tom.kacvinsky@vector.com>
and Martin Storsjö <martin@martin.st>
in <https://savannah.gnu.org/bugs/?57406>.

* lib/mbsinit.c: Accommodate an MSVC-like mbstate_t definition with
mingw.

5 years agoglob: Avoid warning on mingw.
Bruno Haible [Tue, 17 Dec 2019 08:51:22 +0000 (09:51 +0100)]
glob: Avoid warning on mingw.

Reported by Christian Biesinger <cbiesinger@google.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00122.html>.

* lib/glob.c (__stat64): Undefine first.

5 years agoxalloc: tune xzalloc for fresh allocations
Paul Eggert [Tue, 17 Dec 2019 08:49:54 +0000 (00:49 -0800)]
xalloc: tune xzalloc for fresh allocations

* lib/xmalloc.c (xzalloc): Use xcalloc rather than xmalloc+memset,
because when the memory is freshly allocated from the OS via sbrk
or mmap, calloc can avoid doing the memset.

5 years agodfa: new function dfacopysyntax
Paul Eggert [Tue, 17 Dec 2019 08:20:53 +0000 (00:20 -0800)]
dfa: new function dfacopysyntax

* lib/dfa.c (struct dfa): Move syntax member later so
that dfacopysyntax can easily clear earlier members.
(dfacopysyntax): New function, used by Gawk.

5 years agodfa: port _GL_ATTRIBUTE_MALLOC to Gawk
Paul Eggert [Tue, 17 Dec 2019 01:02:31 +0000 (17:02 -0800)]
dfa: port _GL_ATTRIBUTE_MALLOC to Gawk

Gawk does not use Gnulib, and does not define _GL_ATTRIBUTE_MALLOC.
* lib/dfa.h (_GL_ATTRIBUTE_MALLOC): Define to empty
if not already defined.

5 years agodfa: remove one dependency on MB_CUR_MAX
Paul Eggert [Tue, 17 Dec 2019 01:00:18 +0000 (17:00 -0800)]
dfa: remove one dependency on MB_CUR_MAX

* lib/dfa.c (dfamust): No need to refer to MB_CUR_MAX here.

5 years agodfa: remove struct lexer_state.cur_mb_len
Paul Eggert [Mon, 16 Dec 2019 22:38:23 +0000 (14:38 -0800)]
dfa: remove struct lexer_state.cur_mb_len

* lib/dfa.c (struct lexer_state): Remove cur_mb_len member,
as it’s not needed and the code is simpler without it.
All uses removed.

5 years agosetlocale-null: Remove need for -lpthread on musl libc, *BSD, Haiku.
Bruno Haible [Mon, 16 Dec 2019 09:38:37 +0000 (10:38 +0100)]
setlocale-null: Remove need for -lpthread on musl libc, *BSD, Haiku.

Reported by Arnold Robbins <arnold@skeeve.com>.

* lib/setlocale_null.c (c11_threads_in_use, pthread_in_use): New macros,
copied from lib/glthread/lock.h.
(pthread_mutex_lock, pthread_mutex_unlock): Mark as weak.
(setlocale_null_with_lock): If pthread_in_use() is false, use
setlocale_null_unlocked directly.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): New macro, extracted from
gl_THREADLIB_BODY. Define HAVE_WEAK_SYMBOLS.
(gl_THREADLIB_BODY): Invoke gl_WEAK_SYMBOLS.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Invoke gl_WEAK_SYMBOLS.
Set LIB_SETLOCALE_NULL to empty if weak symbols are supported.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Add comment.

5 years agodfa: make dfasyntax thread-safe
Paul Eggert [Mon, 16 Dec 2019 08:32:01 +0000 (00:32 -0800)]
dfa: make dfasyntax thread-safe

Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00099.html
* lib/dfa.c: Do not include locale.h.
(struct dfa): Remove simple_locale member.
All uses replaced by localeinfo.simple.
(using_simple_locale): Remove; now present (with some
changes) in localeinfo.c.
(dfasyntax): No need to initialize removed member.

5 years agolocaleinfo: record whether locale is simple
Paul Eggert [Mon, 16 Dec 2019 08:27:15 +0000 (00:27 -0800)]
localeinfo: record whether locale is simple

* lib/localeinfo.c (using_simple_locale): New function,
copied here from lib/dfa.c but with a change: it uses
strcoll for its heuristic, instead of using setlocale.
This lets it be thread-safe.
* lib/localeinfo.h (struct localeinfo): New member ‘simple’.

5 years agoduplocale: Fix multithread-safety bug on AIX.
Bruno Haible [Sun, 15 Dec 2019 22:07:28 +0000 (23:07 +0100)]
duplocale: Fix multithread-safety bug on AIX.

* lib/duplocale.c: Don't include <stdlib.h>.
(rpl_duplocale): Invoke setlocale_null instead of setlocale.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Require gl_FUNC_SETLOCALE_NULL.
Set LIB_DUPLOCALE.
* modules/duplocale (Depends-on): Add setlocale-null.
(Link): New section.
* modules/duplocale-tests (Makefile.am): Link test-duplocale with
$(LIB_DUPLOCALE).

5 years agosetlocale-null: Add tests.
Bruno Haible [Sun, 15 Dec 2019 20:48:05 +0000 (21:48 +0100)]
setlocale-null: Add tests.

* tests/test-setlocale_null.c: New file.
* tests/test-setlocale_null-one.c: New file.
* tests/test-setlocale_null-all.c: New file.
* modules/setlocale-null-tests: New file.

5 years agosetlocale-null: New module.
Bruno Haible [Sun, 15 Dec 2019 20:39:55 +0000 (21:39 +0100)]
setlocale-null: New module.

* lib/locale.in.h (SETLOCALE_NULL_MAX, SETLOCALE_NULL_ALL_MAX,
setlocale_null): New declarations.
* lib/setlocale_null.c: New file.
* lib/setlocale-lock.c: New file.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Define C macro HAVE_PTHREAD_API.
* m4/setlocale_null.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize
GNULIB_SETLOCALE_NULL.
* modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE_NULL.
* modules/setlocale-null: New file.
* doc/posix-functions/setlocale.texi: Mention the new module.

5 years agolock tests: Skip test when no multithreading is enabled.
Bruno Haible [Sun, 15 Dec 2019 19:05:24 +0000 (20:05 +0100)]
lock tests: Skip test when no multithreading is enabled.

* tests/test-rwlock1.c: Skip the test when no multithreading is enabled.

5 years agolocale, duplocale, localename: Fix last patch.
Bruno Haible [Sat, 14 Dec 2019 13:33:14 +0000 (14:33 +0100)]
locale, duplocale, localename: Fix last patch.

Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00093.html>.

* lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE):
Don't define if locale_t does not exist.

5 years agolocale, duplocale, localename: Fix errors if locale_t does not exist.
Bruno Haible [Fri, 13 Dec 2019 10:28:54 +0000 (11:28 +0100)]
locale, duplocale, localename: Fix errors if locale_t does not exist.

Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-12/msg00078.html>.

* lib/locale.in.h (HAVE_WORKING_NEWLOCALE, HAVE_WORKING_DUPLOCALE): New
macros.
* tests/test-locale.c: Test HAVE_WORKING_NEWLOCALE instead of
HAVE_NEWLOCALE.
* tests/test-localename.c: Likewise.
* tests/test-duplocale.c: Test HAVE_WORKING_DUPLOCALE instead of
HAVE_DUPLOCALE.
* tests/test-locale-c++.cc: Likewise.

5 years agowcstok: Fix test failure on HP-UX.
Bruno Haible [Fri, 13 Dec 2019 07:51:11 +0000 (08:51 +0100)]
wcstok: Fix test failure on HP-UX.

* m4/wcstok.m4 (gl_FUNC_WCSTOK): Set REPLACE_WCSTOK to 1 on HP-UX.
* doc/posix-functions/wcstok.texi: Mention the HP-UX bug.

5 years agostrtod, strtold tests: Avoid test failure on AIX 7.2.
Bruno Haible [Thu, 12 Dec 2019 23:19:56 +0000 (00:19 +0100)]
strtod, strtold tests: Avoid test failure on AIX 7.2.

* tests/test-strtod1.c (main): Allow implementations in which ',' and
'.' both are radix characters.
* tests/test-strtold1.c (main): Likewise.

5 years agodfa: prefer ptrdiff_t for API, too
Paul Eggert [Thu, 12 Dec 2019 22:11:06 +0000 (14:11 -0800)]
dfa: prefer ptrdiff_t for API, too

Also, use ‘idx_t’ for ptrdiff_t values that must be nonnegative,
but do this only for internal use for now.
* NEWS: Mention the API change.
* lib/dfa.c (idx_t, IDX_MAX): New type and max value, for internal
use for now.  Use them instead of ptrdiff_t and PTRDIFF_MAX for
values known to be nonnegative.
(dfaparse, dfaexec_mb, dfaexec_sb, dfaexec_noop, dfaexec):
Prefer idx_t or ptrdiff_t to size_t for API.
* lib/dfa.h (dfaparse, dfacomp, dfaexec):
Prefer ptrdiff_t to size_t for API.

5 years agostdalign: port to xlclang 16.01
Paul Eggert [Thu, 12 Dec 2019 18:16:13 +0000 (10:16 -0800)]
stdalign: port to xlclang 16.01

Problem reportd by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2019-12/msg00064.html
* lib/stdalign.in.h (_Alignas): Do not use __attribute__
((__aligned__ (...))) with xlclang, as a top-level
‘char __attribute__ ((__aligned__ (8))) c;’ does not work with
xlclang version 16.01.0000.0001; the alignment directive is ignored.

5 years agoduplocale: Fix test failure on AIX 7.2 with xlclang.
Bruno Haible [Thu, 12 Dec 2019 16:52:50 +0000 (17:52 +0100)]
duplocale: Fix test failure on AIX 7.2 with xlclang.

* lib/duplocale.c: Include <stdlib.h>.
(rpl_duplocale): Use a heap-allocated copy of the first setlocale return
value.

5 years agostddef: Document the AIX xlc issue.
Bruno Haible [Thu, 12 Dec 2019 16:04:02 +0000 (17:04 +0100)]
stddef: Document the AIX xlc issue.

* doc/posix-headers/stddef.texi: Document the NULL issue with AIX xlc.

5 years agoduplocale: Don't attempt to override if locale_t does not exist.
Bruno Haible [Thu, 12 Dec 2019 12:52:50 +0000 (13:52 +0100)]
duplocale: Don't attempt to override if locale_t does not exist.

Reported by Daniel Richard G. in
<https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00039.html>.

* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): If locale_t does not exist, set
HAVE_DUPLOCALE to 0.

5 years agowcwidth: Avoid test failure on AIX 7.2.
Bruno Haible [Thu, 12 Dec 2019 12:02:28 +0000 (13:02 +0100)]
wcwidth: Avoid test failure on AIX 7.2.

* tests/test-wcwidth.c (main): Don't fail if wcwidth(0x200B) is
negative.
* doc/posix-functions/wcwidth.texi: Mention the AIX issue.

5 years agoilogbl: Work around Cygwin bug.
Bruno Haible [Thu, 12 Dec 2019 11:38:40 +0000 (12:38 +0100)]
ilogbl: Work around Cygwin bug.

* m4/ilogbl.m4 (gl_FUNC_ILOGBL_WORKS): Test whether ilogbl(0.0L) is
correct.
* doc/posix-functions/ilogbl.texi: Mention the Cygwin bug.

5 years agostrtold: Work around Cygwin bug.
Bruno Haible [Thu, 12 Dec 2019 10:07:49 +0000 (11:07 +0100)]
strtold: Work around Cygwin bug.

* m4/strtold.m4 (gl_FUNC_STRTOLD): Add test for the underflow problem.
If it is present, define STRTOLD_HAS_UNDERFLOW_BUG.
* lib/strtod.c (HAVE_UNDERLYING_STRTOD): Set to 0 if
STRTOLD_HAS_UNDERFLOW_BUG is defined.
* doc/posix-functions/strtold.texi: Mention the Cygwin bug.

5 years agostrtold: Fix autoconf test.
Bruno Haible [Thu, 12 Dec 2019 09:07:40 +0000 (10:07 +0100)]
strtold: Fix autoconf test.

* m4/strtold.m4 (gl_FUNC_STRTOLD): Test strtold, not strtod.

5 years agofsync tests: Skip test that is known to fail.
Bruno Haible [Thu, 12 Dec 2019 01:52:11 +0000 (02:52 +0100)]
fsync tests: Skip test that is known to fail.

* doc/posix-functions/fsync.texi: Update list of platforms.
* tests/test-fsync.c (main): Skip test with read-only file descriptors
that is known to fail on AIX and Cygwin.

5 years agogetaddrinfo: Fix calling convention in 32-bit mode on native Windows.
Bruno Haible [Thu, 12 Dec 2019 01:43:07 +0000 (02:43 +0100)]
getaddrinfo: Fix calling convention in 32-bit mode on native Windows.

* m4/getaddrinfo.m4 (gl_GETADDRINFO): Test whether getaddrinfo has a
non-POSIX signature. If so, set REPLACE_GETADDRINFO. Define
HAVE_GETADDRINFO as a C macro.
* lib/netdb.in.h (getaddrinfo, freeaddrinfo): If REPLACE_GETADDRINFO,
declare as replacement functions.
* lib/getaddrinfo.c (getaddrinfo, freeaddrinfo): If HAVE_GETADDRINFO,
define as no-op overrides.
* m4/netdb_h.m4 (gl_NETDB_H_DEFAULTS): Initialize REPLACE_GETADDRINFO.
* modules/netdb (Makefile.am): Substitute REPLACE_GETADDRINFO.
* modules/getaddrinfo (Depends-on, configure.ac): Test
REPLACE_GETADDRINFO.
* doc/posix-functions/getaddrinfo.texi: Mention calling convention
problem.
* doc/posix-functions/freeaddrinfo.texi: Mention header file and calling
convention problems.

5 years agodfa: prefer signed integers for internals
Paul Eggert [Wed, 11 Dec 2019 23:08:35 +0000 (15:08 -0800)]
dfa: prefer signed integers for internals

Signed integers can be checked more easily for integer overflow.
* lib/dfa.c (position, struct lexer_state, struct parser_state)
(struct dfa, mbs_to_wchar, fetch_wc, parse_bracket_exp)
(struct lexptr, lex, addtok_mb, add_utf8_anychar, atom)
(nsubtoks, copytoks, closure, alloc_position_set, delete)
(replace, state_index, epsclosure, charclass_context)
(state_separate_contexts, merge_nfa_state, dfaoptimize)
(dfaanalyze, build_state, dfaexec_main, dfa_supported)
(maybe_disable_superset_dfa, dfassbuild, dfafree, enlist)
(comsubs, inboth, allocmust):
Prefer a signed to an unsigned integer when calculating indexes,
unless the integer is part of the external API (a bigger deal,
and to be done later).

5 years agodfa: fix index overflow
Paul Eggert [Wed, 11 Dec 2019 21:44:03 +0000 (13:44 -0800)]
dfa: fix index overflow

* lib/dfa.c (compare): Avoid integer overflow when analyzing
very large regular expressions.

5 years agodfa: update commentary for previous change
Paul Eggert [Wed, 11 Dec 2019 21:40:01 +0000 (13:40 -0800)]
dfa: update commentary for previous change

* NEWS: Mention the change.
* lib/dfa.c, lib/dfa.h (dfaparse, dfamust, dfacomp): Update comments.

5 years agodfa: separate parse and compile phase
Norihiro Tanaka [Wed, 11 Dec 2019 20:53:09 +0000 (12:53 -0800)]
dfa: separate parse and compile phase

‘dfamust’ must be called after parsing and before tokens are
reordered, but both are executed in the compilation phase.
Token reordering was introduced in Gnulib commit
2018-10-22T15:01:08Z!noritnk@kcn.ne.jp
(5c7a0371823876cca7a1347fa09ca26bbbff0c98).
* lib/dfa.c (dfaparse): Change it to global function.
(dfacomp): If first argument is NULL, skip parse.
* lib/dfa.h: (dfaparse): Add a prototype.

5 years agounistd tests: Fix link error on MSVC.
Bruno Haible [Wed, 11 Dec 2019 11:51:40 +0000 (12:51 +0100)]
unistd tests: Fix link error on MSVC.

* modules/unistd-c++-tests (Makefile.am): Link test-unistd-c++ against
$(LIB_GETLOGIN).

5 years agodoc: Document that ISO C or POSIX substitutes are supported in C++ mode.
Bruno Haible [Wed, 11 Dec 2019 11:36:50 +0000 (12:36 +0100)]
doc: Document that ISO C or POSIX substitutes are supported in C++ mode.

* doc/gnulib-intro.texi (Various Kinds of Modules): Document that ISO C
and POSIX substitutes are supported in C++ mode.
* NEWS: Likewise.

5 years agostddef: Fix compilation error in C++ mode on MSVC.
Bruno Haible [Wed, 11 Dec 2019 08:48:53 +0000 (09:48 +0100)]
stddef: Fix compilation error in C++ mode on MSVC.

* lib/stddef.in.h (max_align_t): With MSVC in C++ mode, don't define it;
instead, include <cstddef>.

5 years agounistd: Fix compilation error in C++ mode on MSVC.
Bruno Haible [Wed, 11 Dec 2019 09:46:16 +0000 (10:46 +0100)]
unistd: Fix compilation error in C++ mode on MSVC.

* lib/unistd.in.h: Don't do include[_next] <unistd.h> if the platform
does not have <unistd.h>.

5 years agolocale: Fix compilation error in C++ mode on MSVC.
Bruno Haible [Wed, 11 Dec 2019 09:05:27 +0000 (10:05 +0100)]
locale: Fix compilation error in C++ mode on MSVC.

* m4/locale_h.m4 (gl_LOCALE_H): Don't set REPLACE_STRUCT_LCONV on MSVC.
* lib/locale.in.h (int_p_cs_precedes, int_p_sign_posn,
int_p_sep_by_space, int_n_cs_precedes, int_n_sign_posn,
int_n_sep_by_space): Define as macros on MSVC.

5 years agowchar: Fix compilation error in C++ mode on MSVC.
Bruno Haible [Wed, 11 Dec 2019 08:54:35 +0000 (09:54 +0100)]
wchar: Fix compilation error in C++ mode on MSVC.

* lib/wchar.in.h (mbstate_t): Don't override on MSVC.

5 years agopthread-thread: Fix compilation error in C++ mode on MSVC.
Bruno Haible [Wed, 11 Dec 2019 08:37:55 +0000 (09:37 +0100)]
pthread-thread: Fix compilation error in C++ mode on MSVC.

* lib/pthread.in.h (pthread_exit): Don't use _Noreturn in the
_GL_CXXALIAS_RPL invocation.

5 years agoautoupdate
Karl Berry [Tue, 10 Dec 2019 16:44:42 +0000 (08:44 -0800)]
autoupdate

5 years agoautoupdate
Karl Berry [Mon, 9 Dec 2019 16:45:26 +0000 (08:45 -0800)]
autoupdate

5 years agoFix compilation errors in C++ mode on Haiku.
Bruno Haible [Mon, 9 Dec 2019 02:02:08 +0000 (03:02 +0100)]
Fix compilation errors in C++ mode on Haiku.

* lib/stdio.in.h (vdprintf): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.
* lib/spawn.in.h (posix_spawnattr_getschedpolicy,
posix_spawnattr_setschedpolicy, posix_spawnattr_getschedparam,
posix_spawnattr_setschedparam): Likewise.
* lib/stdlib.in.h (random, initstate_r, setstate_r): Use
_GL_CXXALIAS_SYS_CAST instead of _GL_CXXALIAS_SYS.
* lib/unistd.in.h (usleep): Likewise.

5 years agoFix compilation errors in 32-bit C++ mode on HP-UX 11/ia64.
Bruno Haible [Mon, 9 Dec 2019 01:12:53 +0000 (02:12 +0100)]
Fix compilation errors in 32-bit C++ mode on HP-UX 11/ia64.

* m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE): New macro.
* modules/fseeko (configure.ac-early): Require it instead of
AC_FUNC_FSEEKO.
* modules/ftello (configure.ac-early): Likewise.
* modules/fflush (configure.ac-early): Likewise.

5 years agoFix compilation error in C++ mode on HP-UX 11.
Bruno Haible [Sun, 8 Dec 2019 20:49:32 +0000 (21:49 +0100)]
Fix compilation error in C++ mode on HP-UX 11.

* lib/unistd.in.h (getpagesize): Declare on HP-UX.
* doc/glibc-functions/getpagesize.texi: Mention the HP-UX problem.