]> Savannah Git Hosting - gnulib.git/log
gnulib.git
8 months agodoc: Update for other functions added in POSIX:2024.
Bruno Haible [Fri, 9 Aug 2024 00:09:03 +0000 (02:09 +0200)]
doc: Update for other functions added in POSIX:2024.

* doc/posix-functions/be16toh.texi: New file.
* doc/posix-functions/be32toh.texi: New file.
* doc/posix-functions/be64toh.texi: New file.
* doc/posix-functions/dcgettext_l.texi: New file.
* doc/posix-functions/dcngettext_l.texi: New file.
* doc/posix-functions/dgettext_l.texi: New file.
* doc/posix-functions/dngettext_l.texi: New file.
* doc/posix-functions/getlocalename_l.texi: New file.
* doc/posix-functions/gettext_l.texi: New file.
* doc/posix-functions/htobe16.texi: New file.
* doc/posix-functions/htobe32.texi: New file.
* doc/posix-functions/htobe64.texi: New file.
* doc/posix-functions/htole16.texi: New file.
* doc/posix-functions/htole32.texi: New file.
* doc/posix-functions/htole64.texi: New file.
* doc/posix-functions/le16toh.texi: New file.
* doc/posix-functions/le32toh.texi: New file.
* doc/posix-functions/le64toh.texi: New file.
* doc/posix-functions/ngettext_l.texi: New file.
* doc/posix-functions/posix_close.texi: New file.
* doc/posix-functions/posix_devctl.texi: New file.
* doc/posix-functions/posix_getdents.texi: New file.
* doc/posix-functions/posix_spawn_file_actions_addchdir.texi: New file.
* doc/posix-functions/posix_spawn_file_actions_addfchdir.texi: New file.
* doc/posix-functions/sig2str.texi: New file.
* doc/posix-functions/str2sig.texi: New file.
* doc/posix-functions/tcgetwinsize.texi: New file.
* doc/posix-functions/tcsetwinsize.texi: New file.
* doc/posix-functions/wcslcat.texi: New file.
* doc/posix-functions/wcslcpy.texi: New file.
* doc/gnulib.texi (Functions in <devctl.h>, Functions in <endian.h>):
New sections.
(Functions in <dirent.h>, Functions in <libintl.h>,
Functions in <locale.h>, Functions in <signal.h>,
Functions in <spawn.h>, Functions in <termios.h>,
Functions in <unistd.h>, Functions in <wchar.h>): Include the other new
files.
* doc/posix-functions/strlcat.texi: Update.
* doc/posix-functions/strlcpy.texi: Update.

8 months agodoc: Update for ISO C functions added in POSIX:2024.
Bruno Haible [Thu, 8 Aug 2024 22:15:16 +0000 (00:15 +0200)]
doc: Update for ISO C functions added in POSIX:2024.

* doc/posix-headers/CMPLX*.texi: New files.
* doc/posix-headers/at_quick_exit.texi: New file.
* doc/posix-headers/atomic_*.texi: New files.
* doc/posix-headers/kill_dependency.texi: New file.
* doc/posix-headers/*.texi: Update.
* doc/gnulib.texi (Functions in <stdatomic.h>): New section.
(Functions in <complex.h>, Functions in <stdlib.h>): Include the other
new files.

8 months agodoc: Update for ISO C header files added in POSIX:2024.
Bruno Haible [Thu, 8 Aug 2024 20:38:38 +0000 (22:38 +0200)]
doc: Update for ISO C header files added in POSIX:2024.

* doc/posix-headers/*.texi: Update.

8 months agodoc: Update for header files added in POSIX:2024.
Bruno Haible [Thu, 8 Aug 2024 14:46:38 +0000 (16:46 +0200)]
doc: Update for header files added in POSIX:2024.

* doc/posix-headers/devctl.texi: New file.
* doc/posix-headers/endian.texi: Renamed from
doc/glibc-headers/endian.texi. Update.
* doc/posix-headers/libintl.texi: Renamed from
doc/glibc-headers/libintl.texi. Update.
* doc/gnulib.texi (Header File Substitutes,
Glibc Header File Substitutes): Update.

8 months agodoc: Update for Cygwin 3.5.3.
Bruno Haible [Thu, 8 Aug 2024 14:15:20 +0000 (16:15 +0200)]
doc: Update for Cygwin 3.5.3.

* doc/posix-headers/*.texi: Update.
* doc/posix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.

8 months agomath: Fix INFINITY and NAN on mingw.
Bruno Haible [Thu, 8 Aug 2024 01:21:34 +0000 (03:21 +0200)]
math: Fix INFINITY and NAN on mingw.

* doc/posix-headers/math.texi: Mention this mingw bug.
* lib/math.in.h (INFINITY, NAN): Replace also on mingw.

8 months agodoc: Update for OpenBSD 7.5.
Bruno Haible [Wed, 7 Aug 2024 23:46:08 +0000 (01:46 +0200)]
doc: Update for OpenBSD 7.5.

* doc/posix-headers/*.texi: Update.
* doc/glibc-headers/*.texi: Likewise.
* doc/posix-functions/*.texi: Likewise.
* doc/pastposix-functions/*.texi: Likewise.
* doc/glibc-functions/*.texi: Likewise.

8 months agoAvoid compiler warnings in some configure tests.
Bruno Haible [Wed, 7 Aug 2024 22:54:03 +0000 (00:54 +0200)]
Avoid compiler warnings in some configure tests.

* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Allocate more room for local
array 'name'.
* m4/pthread_mutex_timedlock.m4 (gl_FUNC_PTHREAD_MUTEX_TIMEDLOCK): Don't
pass a NULL pointer to pthread_mutex_timedlock.

8 months agopthread-rwlock tests: Strengthen tests.
Bruno Haible [Wed, 7 Aug 2024 17:53:41 +0000 (19:53 +0200)]
pthread-rwlock tests: Strengthen tests.

* tests/test-pthread-rwlock-waitqueue.c: New file.
* modules/pthread-rwlock-tests (Files): Add it.
(Depends-on): Add extensions, nanosleep, stdbool.
(Makefile.am): Arrange to test test-pthread-rwlock-waitqueue.

8 months agopthread-rwlock: Fix default wait queue behaviour on glibc/Linux.
Bruno Haible [Wed, 7 Aug 2024 17:53:37 +0000 (19:53 +0200)]
pthread-rwlock: Fix default wait queue behaviour on glibc/Linux.

* lib/pthread.in.h: If REPLACE_PTHREAD_RWLOCK_INIT is 1 but
REPLACE_PTHREAD_RWLOCK_DESTROY is 0, override
PTHREAD_RWLOCK_INITIALIZER.
* lib/pthread-rwlock.c
(pthread_rwlockattr_init) [PTHREAD_RWLOCK_BAD_WAITQUEUE]: New function.
(pthread_rwlock_init) [PTHREAD_RWLOCK_BAD_WAITQUEUE]: New function.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Check for reasonable
pthread_rwlock wait queue handling. Set REPLACE_PTHREAD_RWLOCK_INIT and
REPLACE_PTHREAD_RWLOCKATTR_INIT and define PTHREAD_RWLOCK_BAD_WAITQUEUE
if not.
* modules/pthread-rwlock (configure.ac): Update
GL_COND_OBJ_PTHREAD_RWLOCK condition.
* doc/posix-functions/pthread_rwlock_rdlock.texi: Mark the glibc problem
as fixed.
* doc/posix-functions/pthread_rwlock_tryrdlock.texi: Likewise.
* doc/posix-functions/pthread_rwlock_timedrdlock.texi: Likewise.

8 months agoerrno-tests: port to GNU/Hurd
Paul Eggert [Wed, 7 Aug 2024 14:23:51 +0000 (07:23 -0700)]
errno-tests: port to GNU/Hurd

Test for errno distinctness dynamically rather than statically,
since the static test blows up the compiler on Hurd.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00039.html
Also, test that errno values can all be used in #if,
and improve diagnostics.
* tests/test-errno.c: Include stdio.h, stdlib.h, string.h.
(USABLE_IN_IF): New macro.  Use it to check errno values in #if.
(ERRTAB): New macro.
(struct nameval): New type.
(errtab): New global variable.
(errtab_cmp): New function.
(main): Test for errno distinctness dynamically not statically.
Diagnose lack of distinctness better.

8 months agofchmodat: Fix cross-compilation guess.
Bruno Haible [Wed, 7 Aug 2024 10:21:05 +0000 (12:21 +0200)]
fchmodat: Fix cross-compilation guess.

* m4/fchmodat.m4 (gl_FUNC_FCHMODAT): Tolerate Linux version number
in $host_os.

8 months agowindows-mutex, windows-timedmutex: Fix mistake in last commit.
Bruno Haible [Tue, 6 Aug 2024 15:04:48 +0000 (17:04 +0200)]
windows-mutex, windows-timedmutex: Fix mistake in last commit.

* lib/windows-mutex.c (glwthread_mutex_init): Initialize the 'owner'
field.
* lib/windows-timedmutex.c (glwthread_timedmutex_init): Likewise.

8 months agodoc: Mention a macOS bug.
Bruno Haible [Tue, 6 Aug 2024 14:03:41 +0000 (16:03 +0200)]
doc: Mention a macOS bug.

* doc/posix-functions/pthread_rwlock_trywrlock.texi: Mention a macOS
bug.

8 months agomtx tests: Strengthen tests.
Bruno Haible [Tue, 6 Aug 2024 13:45:02 +0000 (15:45 +0200)]
mtx tests: Strengthen tests.

* tests/test-mtx-type.c: New file.
* modules/mtx-tests (Files): Add it.
(Makefile.am): Arrange to test test-mtx-type.

8 months agopthread-mutex tests: Strengthen tests.
Bruno Haible [Tue, 6 Aug 2024 13:43:16 +0000 (15:43 +0200)]
pthread-mutex tests: Strengthen tests.

* tests/test-pthread-mutex-type.c: New file.
* modules/pthread-mutex-tests (Files): Add it.
(Makefile.am): Arrange to test test-pthread-mutex-type.
* doc/posix-functions/pthread_mutex_lock.texi: Mention FreeBSD and
NetBSD problem.
* doc/posix-functions/pthread_mutex_trylock.texi: Likewise.

8 months agowindows-timedrecmutex: Add tests.
Bruno Haible [Tue, 6 Aug 2024 13:20:23 +0000 (15:20 +0200)]
windows-timedrecmutex: Add tests.

* tests/test-windows-timedrecmutex-type.c: New file.
* modules/windows-timedrecmutex-tests: New file.

8 months agowindows-recmutex: Add tests.
Bruno Haible [Tue, 6 Aug 2024 13:19:31 +0000 (15:19 +0200)]
windows-recmutex: Add tests.

* tests/test-windows-recmutex-type.c: New file.
* modules/windows-recmutex-tests: New file.

8 months agowindows-timedmutex: Add tests.
Bruno Haible [Tue, 6 Aug 2024 13:18:18 +0000 (15:18 +0200)]
windows-timedmutex: Add tests.

* tests/test-windows-timedmutex-type.c: New file.
* modules/windows-timedmutex-tests: New file.

8 months agowindows-mutex: Add tests.
Bruno Haible [Tue, 6 Aug 2024 13:17:03 +0000 (15:17 +0200)]
windows-mutex: Add tests.

* tests/test-windows-mutex-type.c: New file.
* modules/windows-mutex-tests: New file.

8 months agowindows-mutex, windows-timedmutex: Follow pthread_mutex_trylock spec.
Bruno Haible [Tue, 6 Aug 2024 13:14:25 +0000 (15:14 +0200)]
windows-mutex, windows-timedmutex: Follow pthread_mutex_trylock spec.

* lib/windows-mutex.h (glwthread_mutex_t): Add 'owner' field.
* lib/windows-mutex.c: Include <stdlib.h>.
(glwthread_mutex_lock): Set the 'owner' field after entering the
critical section.
(glwthread_mutex_trylock): Detect whether the lock was previously locked
by this thread. Set the 'owner' field after entering the critical
section.
(glwthread_mutex_unlock): Clear the 'owner' field before leaving the
critical section.
* lib/windows-timedmutex.h (glwthread_timedmutex_t): Add 'owner' field.
* lib/windows-timedmutex.c: (glwthread_timedmutex_lock): Set the 'owner'
field after entering the critical section.
(glwthread_timedmutex_trylock): Detect whether the lock was previously
locked by this thread. Set the 'owner' field after entering the critical
section.
(glwthread_timedmutex_unlock): Clear the 'owner' field before leaving
the critical section.

9 months agoImprove a comment.
Bruno Haible [Mon, 5 Aug 2024 23:53:10 +0000 (01:53 +0200)]
Improve a comment.

With info from Sam James <sam@gentoo.org>.

* m4/gnulib-common.m4 (gl_COMMON_BODY): Reference the gcc bug that is
the reason for _GL_BRACKET_BEFORE_ATTRIBUTE.

9 months agomath: Fix HUGE_VAL and HUGE_VALL on AIX.
Bruno Haible [Mon, 5 Aug 2024 23:05:05 +0000 (01:05 +0200)]
math: Fix HUGE_VAL and HUGE_VALL on AIX.

* lib/math.in.h (HUGE_VAL, HUGE_VALL): Override on AIX.
* doc/posix-headers/math.texi: Mention this AIX problem.

9 months agoxstrtol, xstrtoll tests: Fix test failures.
Bruno Haible [Mon, 5 Aug 2024 19:31:28 +0000 (21:31 +0200)]
xstrtol, xstrtoll tests: Fix test failures.

* tests/test-xstrtol.c (is_GNULIB_strtol): New macro.
(main): Use it in the expected test results.
* tests/test-xstrtoll.c (is_GNULIB_strtol): New macro.

9 months agognulib-tool.py: Fix testdirs created with --without-tests.
Bruno Haible [Mon, 5 Aug 2024 18:24:44 +0000 (20:24 +0200)]
gnulib-tool.py: Fix testdirs created with --without-tests.

* pygnulib/GLTestDir.py (GLTestDir.execute): Don't assume that 'gltests'
is the last subdirectory with a configure.ac.

9 months agoFix compilation error in C++ mode with clang >= 16 (regr. 2024-07-29).
Bruno Haible [Mon, 5 Aug 2024 14:27:13 +0000 (16:27 +0200)]
Fix compilation error in C++ mode with clang >= 16 (regr. 2024-07-29).

* m4/gnulib-common.m4 (gl_COMMON_BODY): Define
_GL_BRACKET_BEFORE_ATTRIBUTE with clang++ 16 or newer.

9 months agodfa-tests: Detect test-dfa-match-aux error.
Bernhard Voelker [Sun, 4 Aug 2024 16:14:32 +0000 (18:14 +0200)]
dfa-tests: Detect test-dfa-match-aux error.

* tests/test-dfa-invalid-merge.sh: Set fail=1 if test-dfa-match-aux fails.
Remove redundant 'returns_ 0'.

9 months agotest-framework-sh: Improve returns_ example.
Bernhard Voelker [Sun, 4 Aug 2024 16:12:16 +0000 (18:12 +0200)]
test-framework-sh: Improve returns_ example.

In the shell test framework, an error is either flagged by setting
the shell variable fail=1, or by invoking the fail_ function with an
error diagnostic.

* tests/init.sh (returns_): Change example code in the comment to
use '|| fail=1' properly.

9 months agoonce: Add missing .m4 file.
Bruno Haible [Mon, 5 Aug 2024 06:03:53 +0000 (08:03 +0200)]
once: Add missing .m4 file.

Reported by Collin Funk.

* m4/once.m4: New file.

9 months agomtx-tests: Reduce dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:56:17 +0000 (23:56 +0200)]
mtx-tests: Reduce dependencies.

* tests/test-mtx.c: Don't include glthread/lock.h.
* modules/mtx-tests (Depends-on): Remove lock.

9 months agothread: Reduce dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:56:13 +0000 (23:56 +0200)]
thread: Reduce dependencies.

* lib/glthread/thread.c: Don't include glthread/lock.h.
* modules/thread (Depends-on): Remove lock.

9 months agouchar-c23: Reduce dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:56:10 +0000 (23:56 +0200)]
uchar-c23: Reduce dependencies.

* lib/lc-charset-unicode.c: Include glthread/once.h instead of
glthread/lock.h.
* modules/uchar-c23 (Depends-on): Add once. Remove lock.

9 months agostrsignal: Reduce dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:56:07 +0000 (23:56 +0200)]
strsignal: Reduce dependencies.

* lib/strsignal.c: Include glthread/once.h instead of glthread/lock.h.
* modules/strsignal (Depends-on): Add once. Remove lock.

9 months agoimmutable: Clarify dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:55:53 +0000 (23:55 +0200)]
immutable: Clarify dependencies.

* lib/immutable.c: Include glthread/once.h instead of glthread/lock.h.
* modules/immutable (Depends-on): Add once.

9 months agofstrcmp: Reduce dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:55:50 +0000 (23:55 +0200)]
fstrcmp: Reduce dependencies.

* lib/fstrcmp.c: Include glthread/once.h instead of glthread/lock.h.
* modules/fstrcmp (Depends-on): Add once. Remove lock.

9 months agolock-tests: Clarify dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:55:47 +0000 (23:55 +0200)]
lock-tests: Clarify dependencies.

* tests/test-lock.c: Include glthread/once.h.
* modules/lock-tests (Depends-on): Add once.

9 months agofatal-signal: Clarify dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:55:45 +0000 (23:55 +0200)]
fatal-signal: Clarify dependencies.

* lib/fatal-signal.c: Include glthread/once.h.
* modules/fatal-signal (Depends-on): Add once.

9 months agoclean-temp-simple: Clarify dependencies.
Bruno Haible [Sun, 4 Aug 2024 21:55:42 +0000 (23:55 +0200)]
clean-temp-simple: Clarify dependencies.

* lib/clean-temp-simple.c: Include glthread/once.h.
* modules/clean-temp-simple (Depends-on): Add once.

9 months agoonce-tests: New module, extracted from lock-tests.
Bruno Haible [Sun, 4 Aug 2024 21:55:40 +0000 (23:55 +0200)]
once-tests: New module, extracted from lock-tests.

* modules/once-tests: New file.
* modules/lock-tests (Files): Remove tests/test-once.c.
(Makefile.am): Don't build and test test-once1 and test-once2.

9 months agoonce: New module, extracted from lock.
Bruno Haible [Sun, 4 Aug 2024 21:55:37 +0000 (23:55 +0200)]
once: New module, extracted from lock.

* lib/glthread/once.h: New file, extracted from lib/glthread/lock.h.
* lib/glthread/once.c: New file, extracted from lib/glthread/lock.c.
* lib/glthread/lock.h: Include glthread/once.h. Don't include
windows-once.h.
(c11_threads_in_use, glthread_in_use, gl_once_t, gl_once_define,
glthread_once): Remove.
(glthread_once_singlethreaded, glthread_once_multithreaded): Remove
declarations.
* lib/glthread/lock.c (fresh_once, glthread_once_singlethreaded,
glthread_once_multithreaded): Remove.
* modules/once: New file.
* modules/lock (Depends-on): Add once. Remove pthread-once,
windows-once.
* tests/test-once.c: Include glthread/once.h instead of glthread/lock.h.
* doc/multithread.texi (Gnulib multithreading): Mention the module
'once'.

9 months agognulib-tool.py: Small refactoring.
Bruno Haible [Sat, 3 Aug 2024 15:04:55 +0000 (17:04 +0200)]
gnulib-tool.py: Small refactoring.

Suggested by Collin Funk.

* pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively):
Return a set of GLModule.
* pygnulib/main.py (main): Convert the result to a string here.

9 months agognulib-tool.py: Correct type hint and doc string.
Collin Funk [Sat, 3 Aug 2024 03:52:28 +0000 (20:52 -0700)]
gnulib-tool.py: Correct type hint and doc string.

* pygnulib/GLModuleSystem.py (GLModule.getDependentsRecursively): Adjust
type hint and doc string to correctly state a set of GLModule's is
returned.

9 months agoAllow use of --avoid=extensions-aix.
Bruno Haible [Fri, 2 Aug 2024 08:57:47 +0000 (10:57 +0200)]
Allow use of --avoid=extensions-aix.

* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Don't require gl_USE_AIX_EXTENSIONS
explicitly.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Likewise.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Likewise.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Likewise.
* m4/scandir.m4 (gl_FUNC_SCANDIR): Likewise.

9 months agomath: Fix INFINITY and NAN on FreeBSD and AIX.
Bruno Haible [Thu, 1 Aug 2024 14:41:23 +0000 (16:41 +0200)]
math: Fix INFINITY and NAN on FreeBSD and AIX.

* doc/posix-headers/math.texi: Mention some FreeBSD and AIX bugs.
* lib/math.in.h (INFINITY): New macro.
(NAN): Replace also on FreeBSD < 8 and AIX. Use __builtin_nanf where
available.
(HUGE_VALF): Replace also on FreeBSD < 6. Use __builtin_inff where
available.
(HUGE_VAL): Replace also on FreeBSD < 6. Use __builtin_inf where
available.
(HUGE_VALL): Replace also on FreeBSD < 6. Use __builtin_infl where
available.
* tests/test-math.c: Check that INFINITY, NAN, HUGE_VALF, HUGE_VAL,
HUGE_VALL are constant expressions.
(main): Check the type of INFINITY and NAN.

9 months agoEnsure consistent effects of _LINUX_SOURCE_COMPAT.
Bruno Haible [Thu, 1 Aug 2024 11:52:30 +0000 (13:52 +0200)]
Ensure consistent effects of _LINUX_SOURCE_COMPAT.

* modules/extensions (configure.ac-early): New section.
* m4/extensions-aix.m4: New file.
* modules/extensions-aix: New file.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Require gl_USE_AIX_EXTENSIONS,
instead of defining _LINUX_SOURCE_COMPAT at this stage.
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU): Likewise.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU): Likewise.
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU): Likewise.
* m4/scandir.m4 (gl_FUNC_SCANDIR): Likewise.
* modules/errno (Depends-on): Add extensions-aix.
* modules/malloc-gnu (Depends-on): Likewise.
* modules/calloc-gnu (Depends-on): Likewise.
* modules/realloc-gnu (Depends-on): Likewise.
* modules/scandir (Depends-on): Likewise.

9 months agostrerror_r: Fix for AIX (regression yesterday).
Bruno Haible [Thu, 1 Aug 2024 11:24:10 +0000 (13:24 +0200)]
strerror_r: Fix for AIX (regression yesterday).

* lib/strerror_r.c: Ignore the value of STRERROR_R_CHAR_P on AIX.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Don't define
_LINUX_SOURCE_COMPAT, since it provides no advantage for strerror_r.

9 months agoerrno: make EEXIST != ENOTEMPTY on AIX
Paul Eggert [Thu, 1 Aug 2024 00:10:56 +0000 (17:10 -0700)]
errno: make EEXIST != ENOTEMPTY on AIX

Also, improve errno tests.
* m4/calloc.m4 (gl_FUNC_CALLOC_GNU):
* m4/malloc.m4 (gl_FUNC_MALLOC_GNU):
* m4/realloc.m4 (gl_FUNC_REALLOC_GNU):
* m4/scandir.m4 (gl_FUNC_SCANDIR):
Define _LINUX_SOURCE_COMPAT, as this can sometimes help on AIX.
* m4/errno_h.m4 (gl_HEADER_ERRNO_H):
Define _LINUX_SOURCE_COMPAT, to make EEXIST != ENOTEMPTY.
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R):
Define _LINUX_SOURCE_COMPAT, in case someone else does.
* modules/errno-tests (Depends-on): Add assert-h, c99.
* tests/test-errno.c (e1, ..., e131): Remove, replacing with ...
(CHECK_POSIX_ERRNOS, POSITIVE_INTEGER_CONSTANT_EXPRESSION)
(INDEXED_BY_ERRNO, ERRNO_COUNT): These new macros.
Check that all errno values are positive integer constant expressions.
Check that they are all distinct, except perhaps for
EWOULDBLOCK == EAGAIN and ENOTSUP == EOPNOTSUPP.
Also check ESOCKTNOSUPPORT, added in POSIX.1-2024.
Also, check that errno values are distinct except when POSIX says
they needn’t be distinct, since POSIX.1-2024 gives license to
GNU/Linux’s non-distinct values.

9 months agofloat: Update to mostly guarantee ISO C 23 compliance.
Bruno Haible [Wed, 31 Jul 2024 22:46:49 +0000 (00:46 +0200)]
float: Update to mostly guarantee ISO C 23 compliance.

* doc/posix-headers/float.texi: Mention the various portability
problems.
* lib/float.in.h (FLT_HAS_SUBNORM, FLT_DECIMAL_DIG, FLT_TRUE_MIN,
DBL_HAS_SUBNORM, DBL_DECIMAL_DIG, DBL_TRUE_MIN, LDBL_HAS_SUBNORM,
LDBL_DECIMAL_DIG, LDBL_TRUE_MIN): New macros.
(gl_LDBL_TRUE_MIN): New declaration.
(FLT_IS_IEC_60559, FLT_NORM_MAX, FLT_SNAN, GNULIB_defined_FLT_SNAN,
DBL_IS_IEC_60559, DBL_NORM_MAX, DBL_SNAN, GNULIB_defined_DBL_SNAN,
LDBL_IS_IEC_60559, LDBL_NORM_MAX, LDBL_SNAN, GNULIB_defined_LDBL_SNAN):
New macros.
(gl_FLT_SNAN_t, gl_DBL_SNAN_t, gl_LDBL_SNAN_t): New types.
(gl_FLT_SNAN, gl_DBL_SNAN, gl_LDBL_SNAN): New declarations.
* lib/float.c (gl_LDBL_TRUE_MIN): New variable.
(gl_FLT_SNAN, gl_DBL_SNAN, gl_LDBL_SNAN): New variables.
* m4/float_h.m4 (gl_FLOAT_H): Add check whether float.h conforms to
ISO C23. Set REPLACE_FLOAT_SNAN.
* modules/float (configure.ac): Test also REPLACE_FLOAT_SNAN. Require
gl_BIGENDIAN.
* tests/test-float.c: Also check FLT_EVAL_METHOD, FLT_HAS_SUBNORM,
FLT_DECIMAL_DIG, FLT_IS_IEC_60559, FLT_TRUE_MIN, FLT_NORM_MAX,
DBL_HAS_SUBNORM, DBL_DECIMAL_DIG, DBL_IS_IEC_60559, DBL_TRUE_MIN,
DBL_NORM_MAX, LDBL_HAS_SUBNORM, LDBL_DECIMAL_DIG, LDBL_IS_IEC_60559.
Conditionally check LDBL_TRUE_MIN, LDBL_NORM_MAX.
Include isnanf-nolibm.h, isnand-nolibm.h, isnanl-nolibm.h.
(test_float): Check the values of FLT_HAS_SUBNORM, FLT_DECIMAL_DIG,
FLT_TRUE_MIN, FLT_IS_IEC_60559, FLT_NORM_MAX, FLT_SNAN.
(test_double): Check the values of DBL_HAS_SUBNORM, DBL_DECIMAL_DIG,
DBL_TRUE_MIN, DBL_IS_IEC_60559, DBL_NORM_MAX, DBL_SNAN.
(test_long_double): Check the values of LDBL_HAS_SUBNORM,
LDBL_DECIMAL_DIG, LDBL_TRUE_MIN, LDBL_IS_IEC_60559, LDBL_NORM_MAX,
LDBL_SNAN.
* modules/float-tests (Depends-on): Add isnanf-nolibm, isnand-nolibm,
isnanl-nolibm.

9 months agoattribute: Improve documentation.
Bruno Haible [Tue, 30 Jul 2024 20:01:27 +0000 (22:01 +0200)]
attribute: Improve documentation.

* lib/attribute.h: Clarify where to place the various attributes.

9 months agoReenable use of attributes in bracket syntax [[...]] (regr. yesterday).
Bruno Haible [Tue, 30 Jul 2024 17:22:40 +0000 (19:22 +0200)]
Reenable use of attributes in bracket syntax [[...]] (regr. yesterday).

* m4/gnulib-common.m4 (gl_COMMON_BODY): Add more comments. Don't define
_GL_BRACKET_USABLE.
* lib/c++defs.h (_GL_EXTERN_C_FUNC): New macro.
(_GL_FUNCDECL_RPL, _GL_FUNCDECL_RPL_1, _GL_FUNCDECL_SYS): Expect the
attributes in an optional 4th argument. Expand them before the return
type.
* lib/arpa_inet.in.h: Update all _GL_FUNCDECL_RPL and _GL_FUNCDECL_SYS
invocations.
* lib/dirent.in.h: Likewise.
* lib/error.in.h: Likewise.
* lib/fcntl.in.h: Likewise.
* lib/fnmatch.in.h: Likewise.
* lib/glob.in.h: Likewise.
* lib/iconv.in.h: Likewise.
* lib/inttypes.in.h: Likewise.
* lib/locale.in.h: Likewise.
* lib/malloc.in.h: Likewise.
* lib/math.in.h: Likewise.
* lib/monetary.in.h: Likewise.
* lib/netdb.in.h: Likewise.
* lib/pthread.in.h: Likewise.
* lib/search.in.h: Likewise.
* lib/signal.in.h: Likewise.
* lib/spawn.in.h: Likewise.
* lib/stdio.in.h: Likewise.
* lib/stdlib.in.h: Likewise.
* lib/string.in.h: Likewise.
* lib/sys_random.in.h: Likewise.
* lib/sys_resource.in.h: Likewise.
* lib/sys_socket.in.h: Likewise.
* lib/sys_stat.in.h: Likewise.
* lib/sys_time.in.h: Likewise.
* lib/threads.in.h: Likewise.
* lib/time.in.h: Likewise.
* lib/uchar.in.h: Likewise.
* lib/unistd.in.h: Likewise.
* lib/utime.in.h: Likewise.
* lib/wchar.in.h: Likewise.
* lib/wctype.in.h: Likewise.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Move _GL_ATTRIBUTE_NODISCARD back to the beginning of the
declaration.

9 months agovaszprintf-posix tests: Fix a gcc warning.
Bruno Haible [Tue, 30 Jul 2024 01:14:00 +0000 (03:14 +0200)]
vaszprintf-posix tests: Fix a gcc warning.

* tests/test-vaszprintf-posix.c (test_function): Remove an unused
variable.

9 months agoUse attribute [[nodiscard]] wherever glibc uses __wur.
Bruno Haible [Tue, 30 Jul 2024 00:46:41 +0000 (02:46 +0200)]
Use attribute [[nodiscard]] wherever glibc uses __wur.

* lib/malloc.in.h (memalign): Mark with _GL_ATTRIBUTE_NODISCARD.
* lib/stdio.in.h (fdopen, fgets, fopen, fread, freopen, fscanf, ftell,
ftello, getdelim, getline, popen, scanf, tmpfile, vfscanf, vscanf):
Likewise.
* lib/stdlib.in.h (aligned_alloc, atoll, calloc, canonicalize_file_name,
getsubopt, malloc, mkdtemp, mkostemp, mkostemps, mkstemp, mkstemps,
posix_memalign, posix_openpt, ptsname, realloc, reallocarray, realpath,
rpmatch, secure_getenv): Likewise.
* lib/sys_random.in.h (getrandom): Likewise.
* lib/sys_stat.in.h (fchmodat): Likewise.
* lib/unistd.in.h (chown, dup, faccessat, fchdir, fchownat, ftruncate,
getcwd, getdomainname, getentropy, getgroups, lchown, link, linkat,
pipe, pipe2, pread, pwrite, read, readlink, readlinkat, sethostname,
symlink, symlinkat, truncate, ttyname_r, write): Likewise.

9 months agoAvoid g++ "warning: attributes are not permitted in this position".
Bruno Haible [Tue, 30 Jul 2024 00:02:43 +0000 (02:02 +0200)]
Avoid g++ "warning: attributes are not permitted in this position".

* m4/gnulib-common.m4 (gl_COMMON_BODY): Add more comments. Define
_GL_BRACKET_USABLE. Use it for _GL_ATTRIBUTE_DEPRECATED,
_GL_ATTRIBUTE_MAYBE_UNUSED, _GL_ATTRIBUTE_NODISCARD,
_GL_ATTRIBUTE_REPRODUCIBLE, _GL_ATTRIBUTE_UNSEQUENCED.
* lib/stdio.in.h (aszprintf, vaszprintf, asprintf, vasprintf): Move
_GL_ATTRIBUTE_NODISCARD to the same position as the other attributes.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Likewise.

9 months agoAn update for clang >= 16.
Bruno Haible [Mon, 29 Jul 2024 20:20:32 +0000 (22:20 +0200)]
An update for clang >= 16.

* m4/gnulib-common.m4 (gl_COMMON_BODY): Don't define
_GL_BRACKET_BEFORE_ATTRIBUTE with clang++ 16 or newer.

9 months agoFix misspelling of __clang_major__.
Bruno Haible [Mon, 29 Jul 2024 19:59:44 +0000 (21:59 +0200)]
Fix misspelling of __clang_major__.

* lib/cdefs.h (__THROW, __THROWNL, __NTH, __NTHNL): Fix misspelled macro
name.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
* lib/malloc.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/stddef.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/stdlib.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/sys_stat.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.
* lib/wchar.in.h (_GL_ATTRIBUTE_NOTHROW): Likewise.

9 months agochdir: Fix mistake in GNULIB_POSIXCHECK.
Bruno Haible [Mon, 29 Jul 2024 18:21:06 +0000 (20:21 +0200)]
chdir: Fix mistake in GNULIB_POSIXCHECK.

* lib/unistd.in.h: Don't attach the chdir warning to the 'chown'
function.

9 months agoatoll: Fix module dependencies.
Bruno Haible [Mon, 29 Jul 2024 18:17:06 +0000 (20:17 +0200)]
atoll: Fix module dependencies.

* modules/atoll (Depends-on): Add stdlib.

9 months agovasprintf, c-vasprintf: Remind users to consider the return value.
Bruno Haible [Mon, 29 Jul 2024 15:31:13 +0000 (17:31 +0200)]
vasprintf, c-vasprintf: Remind users to consider the return value.

* lib/stdio.in.h (aszprintf, vaszprintf, asprintf, vasprintf): Mark with
_GL_ATTRIBUTE_NODISCARD.
* lib/c-vasprintf.h (c_aszprintf, c_vaszprintf, c_asprintf,
c_vasprintf): Likewise.

9 months agoxstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.
Bruno Haible [Mon, 29 Jul 2024 14:46:02 +0000 (16:46 +0200)]
xstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.

* tests/test-xstrtol.c (main): Update expected test results.

9 months agoxstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.
Bruno Haible [Mon, 29 Jul 2024 12:54:18 +0000 (14:54 +0200)]
xstrtol, xstrtoll tests: Avoid test failure after 2024-07-25 change.

* tests/test-xstrtol.c (main): Update expected test results.

9 months agologp1l: Add tests.
Bruno Haible [Mon, 29 Jul 2024 11:42:05 +0000 (13:42 +0200)]
logp1l: Add tests.

* tests/test-logp1l.c: New file, based on tests/test-log1pl.c.
* modules/logp1l-tests: New file.

9 months agologp1l: New module.
Bruno Haible [Mon, 29 Jul 2024 11:38:46 +0000 (13:38 +0200)]
logp1l: New module.

* lib/math.in.h (logp1l): New declaration.
* lib/logp1l.c: New file.
* m4/logp1l.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logp1l is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_LOGP1L.
(gl_MATH_H_DEFAULTS): Initialize HAVE_LOGP1L.
* modules/math (Makefile.am): Substitute GNULIB_LOGP1L, HAVE_LOGP1L.
* modules/logp1l: New file.
* doc/posix-functions/logp1l.texi: Mention the new module.

9 months agologp1f: Add tests.
Bruno Haible [Mon, 29 Jul 2024 11:19:33 +0000 (13:19 +0200)]
logp1f: Add tests.

* tests/test-logp1f.c: New file, based on tests/test-log1pf.c.
* modules/logp1f-tests: New file.

9 months agologp1f: New module.
Bruno Haible [Mon, 29 Jul 2024 11:15:23 +0000 (13:15 +0200)]
logp1f: New module.

* lib/math.in.h (logp1f): New declaration.
* lib/logp1f.c: New file.
* m4/logp1f.m4: New file.
* m4/log1p.m4 (gl_FUNC_LOG1P): Define through AC_DEFUN_ONCE.
* m4/isnand.m4 (gl_FUNC_ISNAND): Define through AC_DEFUN_ONCE.
* m4/math_h.m4 (gl_MATH_H): Test whether logp1f is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_LOGP1F.
(gl_MATH_H_DEFAULTS): Initialize HAVE_LOGP1F.
* modules/math (Makefile.am): Substitute GNULIB_LOGP1F, HAVE_LOGP1F.
* modules/logp1f: New file.
* doc/posix-functions/logp1f.texi: Mention the new module.

9 months agologp1: Add tests.
Bruno Haible [Mon, 29 Jul 2024 01:56:28 +0000 (03:56 +0200)]
logp1: Add tests.

* tests/test-logp1.c: New file, based on tests/test-log1p.c.
* modules/logp1-tests: New file.

9 months agologp1: New module.
Bruno Haible [Mon, 29 Jul 2024 01:24:51 +0000 (03:24 +0200)]
logp1: New module.

* lib/math.in.h (logp1): New declaration.
* lib/logp1.c: New file.
* m4/logp1.m4: New file.
* m4/math_h.m4 (gl_MATH_H): Test whether logp1 is declared.
(gl_MATH_H_REQUIRE_DEFAULTS): Initialize GNULIB_LOGP1.
(gl_MATH_H_DEFAULTS): Initialize HAVE_LOGP1.
* modules/math (Makefile.am): Substitute GNULIB_LOGP1, HAVE_LOGP1.
* modules/logp1: New file.
* doc/posix-functions/logp1.texi: Mention the new module.

9 months agoMore updates regarding the 'Useable-in-testdir' sections.
Bruno Haible [Mon, 29 Jul 2024 01:35:23 +0000 (03:35 +0200)]
More updates regarding the 'Useable-in-testdir' sections.

* gnulib-tool.sh (sed_extract_prog, sed_extract_field_header): Recognize
the 'Useable-in-testdir' sections.
* modules/TEMPLATE-EXTENDED: Add a 'Useable-in-testdir' section.
* doc/gnulib.texi (Module description): Move new text.

9 months agodoc: Document the 'Useable-in-testdir' field in module descriptions.
Collin Funk [Mon, 29 Jul 2024 01:20:06 +0000 (18:20 -0700)]
doc: Document the 'Useable-in-testdir' field in module descriptions.

* doc/gnulib.texi (Module description): Add the 'Usable-in-testdir'
field.

9 months agognulib-tool.py: New options --extract-[recursive-]dependents.
Bruno Haible [Sun, 28 Jul 2024 23:26:51 +0000 (01:26 +0200)]
gnulib-tool.py: New options --extract-[recursive-]dependents.

* pygnulib/GLInfo.py (GLInfo.usage): Document --extract-dependents and
--extract-recursive-dependents options.
* pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively): Move
method.
(getDependents, getDependentsRecursively): New methods.
* pygnulib/main.py (main): Add support for --extract-dependents and
--extract-recursive-dependents.

9 months agognulib-tool.py: Avoid adding specific modules to a testdir.
Bruno Haible [Sun, 28 Jul 2024 21:52:04 +0000 (23:52 +0200)]
gnulib-tool.py: Avoid adding specific modules to a testdir.

Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00292.html>.

* pygnulib/GLInfo.py (GLInfo.usage): Document
--extract-usability-in-testdir option.
* pygnulib/GLModuleSystem.py (GLModule.section_label_pattern): Recognize
Usable-in-testdir section.
(GLModule.getUsabilityInTestdir): New function.
* pygnulib/GLTestDir.py (GLTestDir.execute): Invoke it to filter out
modules to avoid. Warn if such a module was specified.
* pygnulib/main.py (main): Add support for
--extract-usability-in-testdir. Provide an error message for error 24.
* pygnulib/GLError.py: Likewise.
* modules/config-h (Usable-in-testdir): New section.
* modules/lib-ignore (Usable-in-testdir): New section.
* modules/mountlist (Usable-in-testdir): New section.
* modules/non-recursive-gnulib-prefix-hack (Usable-in-testdir): New
section.
* modules/timevar (Usable-in-testdir): New section.
(Files): Remove lib/timevar.def.

9 months agognulib-tool.py: Fix an exception message.
Bruno Haible [Sun, 28 Jul 2024 21:38:45 +0000 (23:38 +0200)]
gnulib-tool.py: Fix an exception message.

* pygnulib/GLModuleSystem.py (GLModuleSystem.find): Raise error 23,
not 3.
* pygnulib/GLError.py: Provide an error message for error 23.
* pygnulib/main.py: Likewise.

9 months agoautoupdate
Paul Eggert [Sun, 28 Jul 2024 20:07:43 +0000 (13:07 -0700)]
autoupdate

9 months agomaint: remove ‘coding: utf-8’ on ASCII
Paul Eggert [Sun, 28 Jul 2024 19:37:13 +0000 (12:37 -0700)]
maint: remove ‘coding: utf-8’ on ASCII

These days, ‘coding: utf-8’ tags aren’t needed in general,
as Emacs typically defaults to UTF-8, and Emacs itself now
has many untagged source files in UTF-8.  However, for now let’s
just remove the tags when they are on ASCII files.
* lib/md5-stream.c, lib/sha1-stream.c, lib/sha256-stream.c:
* lib/sm3-stream.c: Remove unnecessary coding: lines.

9 months agomaint: remove coding: that did not work
Paul Eggert [Sun, 28 Jul 2024 19:28:13 +0000 (12:28 -0700)]
maint: remove coding: that did not work

* m4/fnmatch.m4, m4/fpieee.m4, m4/mbrlen.m4, m4/mbrtowc.m4:
Remove ineffective coding: strings.

9 months agostd-gnu23: new module
Paul Eggert [Sun, 28 Jul 2024 19:11:30 +0000 (12:11 -0700)]
std-gnu23: new module

The plan is to update the c99 module to depend on std-gnu23
instead of on std-gnu11, and to make std-gnu11 obsolete.
A benefit of this will be that c99 will no longer affect C++.
For now, though, std-gnu23 is simply a new, optional module.
* MODULES.html.sh (func_all_modules): Add it.
* modules/std-gnu11: Change description.
* modules/std-gnu23, m4/std-gnu23.m4: New files.
* m4/std-gnu11.m4: Do nothing if _AC_C_C23_OPTIONS is defined.
(AC_PROG_CC): Use AC_DEFUN, not AC_DEFUN_ONCE, so that
we can be superseded.

9 months agotimevar: add missing timevar.def
Paul Eggert [Sun, 28 Jul 2024 17:09:44 +0000 (10:09 -0700)]
timevar: add missing timevar.def

* modules/timevar (Files): Add timevar.def.

9 months agostrftime: improve doc
Paul Eggert [Sun, 28 Jul 2024 17:07:36 +0000 (10:07 -0700)]
strftime: improve doc

* lib/strftime.h: In comment, use active voice, reword errno
description for clarity, and omit reference to draft POSIX 202x to
simplify future maintenance.

9 months agodoc: Remove HTML code tags from Texinfo files.
Collin Funk [Sat, 27 Jul 2024 21:15:33 +0000 (14:15 -0700)]
doc: Remove HTML code tags from Texinfo files.

* doc/posix-functions/alarm.texi (alarm): Use @code{} instead of
<code></code>.
* doc/posix-headers/sys_un.texi (sys/un.h): Likewise.

9 months agomaintainer-makefile: Fix yesterdays #include <...> change.
Collin Funk [Sat, 27 Jul 2024 19:16:37 +0000 (12:16 -0700)]
maintainer-makefile: Fix yesterdays #include <...> change.

* top/maint.mk (gl_prefer_angle_bracket_headers_): Remove files that
don't include #include_next. Sort using the C locale.

9 months agodoc: Fix yesterdays #include <...> change.
Collin Funk [Sat, 27 Jul 2024 19:10:32 +0000 (12:10 -0700)]
doc: Fix yesterdays #include <...> change.

* doc/gnulib-tool.texi (Style of #include statements): Remove files that
don't include #include_next. Sort using the C locale.

9 months agomaintainer-makefile: Update list of headers to use #include <...>.
Collin Funk [Sat, 27 Jul 2024 04:30:56 +0000 (21:30 -0700)]
maintainer-makefile: Update list of headers to use #include <...>.

* top/maint.mk (gl_prefer_angle_bracket_headers_):  Add missing headers
from lib/*.in.h. Re-sort list.

9 months agodoc: Update list of headers to use #include <...>.
Collin Funk [Sat, 27 Jul 2024 04:11:20 +0000 (21:11 -0700)]
doc: Update list of headers to use #include <...>.

* doc/gnulib-tool.texi (Style of #include statements): Add missing
headers from lib/*.in.h. Re-sort list.

9 months agosys_time, sys_types: Remove sys directory at 'make mostlyclean'.
Collin Funk [Sat, 27 Jul 2024 01:37:09 +0000 (18:37 -0700)]
sys_time, sys_types: Remove sys directory at 'make mostlyclean'.

* modules/sys_time (Makefile.am): Add sys to MOSTLYCLEANDIRS.
* modules/sys_types (Makefile.am): Likewise.

9 months agosys_un: Avoid compilation error in C++ <string.h> on glibc systems.
Bruno Haible [Fri, 26 Jul 2024 11:04:09 +0000 (13:04 +0200)]
sys_un: Avoid compilation error in C++ <string.h> on glibc systems.

* m4/sys_un_h.m4 (gl_SYS_UN_H): Require AC_CANONICAL_HOST. Set
GL_GENERATE_SYS_UN_H to true on glibc systems. Invoke
gl_CHECK_NEXT_HEADERS. Initialize HAVE_SYS_UN_H.
* lib/sys_un.in.h: Use include_next and a split double-inclusion guard.
In C++ mode, include <stddef.h> and <string.h> first.
* modules/sys_un (Depends-on): Add include_next.
(Makefile.am): Substitute INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER,
PRAGMA_COLUMNS, NEXT_SYS_UN_H, HAVE_SYS_UN_H. Arrange to remove 'sys'
directory at "make mostlyclean".

9 months agoxstrtol, xstrtoll tests: Improve comment.
Bruno Haible [Fri, 26 Jul 2024 09:32:27 +0000 (11:32 +0200)]
xstrtol, xstrtoll tests: Improve comment.

* tests/test-xstrtol.c (main): Clarify that the new test exercises
undefined behaviour.

9 months agoxstrtol: remove the base-checking changes
Paul Eggert [Fri, 26 Jul 2024 00:24:20 +0000 (17:24 -0700)]
xstrtol: remove the base-checking changes

* lib/xstrtol.c (__xstrtol): Stop worrying about hypothetical
implementations that are causing more confusion than the code is
worth.  Instead, go back more to old way of doing things.
None of this matters for practical applications.
* lib/xstrtol.h: Document that behavior is undefined
if the base is negative, 1, or greater than 36.
* modules/xstrtol (Depends-on): Remove nullptr; no longer needed.

9 months agoxstrtol, xstrtoll tests: Avoid test failure on FreeBSD.
Bruno Haible [Thu, 25 Jul 2024 21:45:23 +0000 (23:45 +0200)]
xstrtol, xstrtoll tests: Avoid test failure on FreeBSD.

* tests/test-xstrtol.c (main): Adjust expected results for FreeBSD.

9 months agoxstrtol, xstrtoll tests: Test behaviour for an invalid base.
Bruno Haible [Thu, 25 Jul 2024 20:05:18 +0000 (22:05 +0200)]
xstrtol, xstrtoll tests: Test behaviour for an invalid base.

Reported by Alejandro Colomar <alx@kernel.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-07/msg00249.html>.

* modules/xstrtol-tests (Files): Add tests/macros.h.
* modules/xstrtoll-tests (Files): Likewise.
* tests/test-xstrtol.c: Include macros.h.
(main): If no arguments are given on the command line, perform
miscellaneous tests.
* tests/test-xstrtol.sh: Also invoke test-xstrtol without arguments.
* tests/test-xstrtoll.sh: Also invoke test-xstrtoll without arguments.

9 months agosys_un: Add C++ tests.
Collin Funk [Thu, 25 Jul 2024 03:27:46 +0000 (20:27 -0700)]
sys_un: Add C++ tests.

* modules/sys_un-c++-tests: New file.
* tests/test-sys_un-c++.cc: New file.
* modules/sys_un-tests (Depends-on): Add sys_un-c++-tests.

9 months agosys_un: Add tests.
Collin Funk [Thu, 25 Jul 2024 03:16:26 +0000 (20:16 -0700)]
sys_un: Add tests.

* modules/sys_un-tests: New file.
* tests/test-sys_un.c: New file.

9 months agosys_un: New module.
Collin Funk [Thu, 25 Jul 2024 03:14:49 +0000 (20:14 -0700)]
sys_un: New module.

* doc/posix-headers/sys_un.texi (sys/un.h): Mention it.
* lib/sys_un.in.h: New file.
* m4/sys_un_h.m4: New file.
* modules/sys_un: New file.

9 months agoxstrtol: improve xstrtol.h comment
Paul Eggert [Thu, 25 Jul 2024 00:00:13 +0000 (17:00 -0700)]
xstrtol: improve xstrtol.h comment

9 months agoAvoid false select_used_without_requesting_gnulib_module_select.
Bruno Haible [Wed, 24 Jul 2024 23:29:22 +0000 (01:29 +0200)]
Avoid false select_used_without_requesting_gnulib_module_select.

* modules/select (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_select.in.h (select): Don't define to
select_used_without_requesting_gnulib_module_select if the gnulib module
'select' is in use under the same configure.ac.

9 months agoAvoid false shutdown_used_without_requesting_gnulib_module_shutdown.
Bruno Haible [Wed, 24 Jul 2024 23:27:32 +0000 (01:27 +0200)]
Avoid false shutdown_used_without_requesting_gnulib_module_shutdown.

* modules/shutdown (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (shutdown): Don't define to
shutdown_used_without_requesting_gnulib_module_shutdown if the gnulib
module 'shutdown' is in use under the same configure.ac.

9 months agoAvoid false setsockopt_used_without_requesting_gnulib_module_setsockopt.
Bruno Haible [Wed, 24 Jul 2024 23:23:52 +0000 (01:23 +0200)]
Avoid false setsockopt_used_without_requesting_gnulib_module_setsockopt.

* modules/setsockopt (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (setsockopt): Don't define to
setsockopt_used_without_requesting_gnulib_module_setsockopt if the
gnulib module 'setsockopt' is in use under the same configure.ac.

9 months agoAvoid false sendto_used_without_requesting_gnulib_module_sendto.
Bruno Haible [Wed, 24 Jul 2024 23:21:45 +0000 (01:21 +0200)]
Avoid false sendto_used_without_requesting_gnulib_module_sendto.

* modules/sendto (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (sendto): Don't define to
sendto_used_without_requesting_gnulib_module_sendto if the gnulib module
'sendto' is in use under the same configure.ac.

9 months agoAvoid false recvfrom_used_without_requesting_gnulib_module_recvfrom.
Bruno Haible [Wed, 24 Jul 2024 23:19:20 +0000 (01:19 +0200)]
Avoid false recvfrom_used_without_requesting_gnulib_module_recvfrom.

* modules/recvfrom (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (recvfrom): Don't define to
recvfrom_used_without_requesting_gnulib_module_recvfrom if the gnulib
module 'recvfrom' is in use under the same configure.ac.

9 months agoAvoid false send_used_without_requesting_gnulib_module_send.
Bruno Haible [Wed, 24 Jul 2024 23:17:33 +0000 (01:17 +0200)]
Avoid false send_used_without_requesting_gnulib_module_send.

* modules/send (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (send): Don't define to
send_used_without_requesting_gnulib_module_send if the gnulib module
'send' is in use under the same configure.ac.

9 months agoAvoid false recv_used_without_requesting_gnulib_module_recv.
Bruno Haible [Wed, 24 Jul 2024 23:16:05 +0000 (01:16 +0200)]
Avoid false recv_used_without_requesting_gnulib_module_recv.

* modules/recv (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (recv): Don't define to
recv_used_without_requesting_gnulib_module_recv if the gnulib module
'recv' is in use under the same configure.ac.

9 months agoAvoid false listen_used_without_requesting_gnulib_module_listen.
Bruno Haible [Wed, 24 Jul 2024 23:14:25 +0000 (01:14 +0200)]
Avoid false listen_used_without_requesting_gnulib_module_listen.

* modules/listen (configure.ac): Invoke gl_MODULE_INDICATOR.
* lib/sys_socket.in.h (listen): Don't define to
listen_used_without_requesting_gnulib_module_listen if the gnulib module
'listen' is in use under the same configure.ac.