]> Savannah Git Hosting - gnulib.git/log
gnulib.git
8 months agomkdir: Fix for use of posixcheck module on native Windows.
Bruno Haible [Tue, 27 Aug 2024 20:00:54 +0000 (22:00 +0200)]
mkdir: Fix for use of posixcheck module on native Windows.

* lib/sys_stat.in.h (mkdir): Give priority to the native Windows
definition over the GNULIB_POSIXCHECK redefinition.

8 months agowindows-spawn: Fix clang warning.
Bruno Haible [Tue, 27 Aug 2024 19:43:36 +0000 (21:43 +0200)]
windows-spawn: Fix clang warning.

* lib/windows-spawn.c (convert_CreateProcess_error): Remove unreachable
'break;' statements.

8 months agoImprove support for clang on Windows.
Bruno Haible [Tue, 27 Aug 2024 19:40:15 +0000 (21:40 +0200)]
Improve support for clang on Windows.

* lib/c++defs.h (_GL_CXXALIASWARN_2): Treat clang like gcc 4.2.
* lib/stdio.in.h (fwrite, fwrite_unlocked): Likewise.
* lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Likewise.
* lib/libc-config.h (__GNUC_PREREQ): Override glibc's definition to
handle clang in disguise.

8 months agoExplicitly exclude clang when we test for a GCC version >= 4.3.
Bruno Haible [Tue, 27 Aug 2024 14:20:16 +0000 (16:20 +0200)]
Explicitly exclude clang when we test for a GCC version >= 4.3.

Rationale: clang can disguise as any possible GCC version.

* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): When testing __GNUC__,
exclude clang.
* lib/_Noreturn.h (_Noreturn): Likewise.
* lib/aligned-malloc.h (aligned_free, aligned_malloc): Likewise.
* lib/base32.h: Likewise.
* lib/base64.h: Likewise.
* lib/dfa.c (FALLTHROUGH): Likewise.
* lib/dirent.in.h (_GL_ATTRIBUTE_DEALLOC, opendir, fdopendir): Likewise.
* lib/intprops-internal.h: Likewise.
* lib/jit/cache.h (clear_cache): Likewise.
* lib/malloc.in.h (memalign): Likewise.
* lib/mcel.h: Likewise.
* lib/regex.h: Likewise.
* lib/stddef.in.h (_GL_HAS_BUILTIN_UNREACHABLE): Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_DEALLOC, fdopen, fopen, popen, tmpfile):
Likewise.
* lib/stdlib.in.h (_GL_ATTRIBUTE_DEALLOC, aligned_alloc, calloc,
canonicalize_file_name, malloc, realloc): Likewise.
* lib/string.in.h (_GL_ATTRIBUTE_DEALLOC, strdup, strndup): Likewise.
* lib/verify.h: Likewise.
* lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC, wcsdup): Likewise.
* lib/xalloc-oversized.h (xalloc_oversized): Likewise.
* lib/fenv-private.h (_FPU_GETCW, _FPU_SETCW, _FPU_GETFPSR,
_FPU_SETFPSR): When testing __GNUC__, exclude clang. Use different
builtins for clang.
* lib/hamt.h (GL_HAMT_THREAD_SAFE): When testing __GNUC__, exclude
clang. Enable for clang >= 4.
* lib/astrxfrm.c: Use _GL_GNUC_PREREQ.
* lib/readutmp.c: Likewise.
* lib/strftime.c: Likewise.
* tests/test-asyncsafe-linked_list-strong.c: Likewise.
* tests/test-asyncsafe-linked_list-weak.c: Likewise.
* tests/test-c-strtod-mt.c: Likewise.
* tests/test-c-strtof-mt.c: Likewise.
* tests/test-c-strtold-mt.c: Likewise.
* tests/test-gmtime_r-mt.c: Likewise.
* tests/test-intprops.c: Likewise.
* tests/test-limits-h.c: Likewise.
* tests/test-localtime_r-mt.c: Likewise.
* tests/test-memrchr.c: Likewise.
* tests/test-nl_langinfo-mt.c: Likewise.
* tests/test-setlocale_null-mt-all.c: Likewise.
* tests/test-setlocale_null-mt-one.c: Likewise.
* tests/test-statat.c: Likewise.
* tests/test-xvasprintf.c: Likewise.

8 months agodoc: Update about psignal.
Bruno Haible [Tue, 27 Aug 2024 16:45:22 +0000 (18:45 +0200)]
doc: Update about psignal.

Reported by Eric Gallager <egall@gwmail.gwu.edu> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00177.html>.

* doc/posix-functions/psignal.texi: Mention the Solaris problem and the
first parameter type.

8 months agoreadutmp: In systemd mode, show sessions of type "web".
Bruno Haible [Tue, 27 Aug 2024 09:46:33 +0000 (11:46 +0200)]
readutmp: In systemd mode, show sessions of type "web".

Reported by Allison Karlitskaya <allison.karlitskaya@redhat.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00160.html>.

* lib/readutmp.c (read_utmp_from_systemd): For a systemd session of type
"web", add a single USER_PROCESS entry.

8 months agoFix a test failure from a clang that masquerades as gcc 13.
Bruno Haible [Mon, 26 Aug 2024 22:49:07 +0000 (00:49 +0200)]
Fix a test failure from a clang that masquerades as gcc 13.

* tests/test-fenv-except-trapping-2.c (main): Skip the '4' test on
clang, since clang 17 still generates buggy comparisons, like gcc
versions < 8.

8 months agoFix some of the warnings from a clang that masquerades as gcc 13.
Bruno Haible [Mon, 26 Aug 2024 22:19:14 +0000 (00:19 +0200)]
Fix some of the warnings from a clang that masquerades as gcc 13.

* lib/c-stack.c: Use _GL_GNUC_PREREQ to test for the gcc version.
* lib/canonicalize.c: Likewise.
* lib/diffseq.h: Likewise.
* lib/file-has-acl.c: Likewise.
* lib/freopen-safer.c: Likewise.
* lib/getndelim2.c: Likewise.
* lib/mini-gmp-gnulib.c: Likewise.
* lib/propername.c: Likewise.
* lib/quotearg.c: Likewise.
* lib/savedir.c: Likewise.
* lib/vasnprintf.c: Likewise.
* tests/test-argmatch.c: Likewise.
* tests/test-dup2.c: Likewise.
* tests/test-explicit_bzero.c: Likewise.
* tests/test-fcntl.c: Likewise.
* tests/test-fopen.h: Likewise.
* tests/test-getdtablesize.c: Likewise.
* tests/test-getgroups.c: Likewise.
* tests/test-listen.c: Likewise.
* tests/test-localename.c: Likewise.
* tests/test-memset_explicit.c: Likewise.
* tests/test-open.h: Likewise.
* tests/test-perror2.c: Likewise.
* tests/test-select.h: Likewise.
* lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD): Don't use
gnu_printf with clang.
* lib/string-buffer.h: Likewise.
* lib/textstyle.in.h: Likewise.

8 months agorelocatable-prog: Fix config.libpath failure (regression 2024-08-24).
Bruno Haible [Mon, 26 Aug 2024 19:29:03 +0000 (21:29 +0200)]
relocatable-prog: Fix config.libpath failure (regression 2024-08-24).

* build-aux/config.libpath: Expect 2 arguments, not 1.

8 months agoFix compilation errors with clang that masquerades as gcc 13.
Bruno Haible [Mon, 26 Aug 2024 19:13:50 +0000 (21:13 +0200)]
Fix compilation errors with clang that masquerades as gcc 13.

Reported by Sam James and Paul Eggert.

* m4/gnulib-common.m4 (gl_COMMON_BODY): For _GL_GNUC_PREREQ, ignore the
values of __GNUC__ and __GNUC_MINOR__ defined by clang.
* lib/warn-on-use.h (_GL_WARN_ON_USE, _GL_WARN_ON_USE_CXX): Don't treat
clang like GCC.
* lib/wchar.in.h (wmemchr, wcschr, wcsrchr, wcspbrk, wcsstr): Disable
the _GL_CXXALIASWARN1 and _GL_CXXALIASWARN invocations for masquerading
clang++.

8 months agodiffseq: don’t worry about clang
Paul Eggert [Sun, 25 Aug 2024 22:18:45 +0000 (15:18 -0700)]
diffseq: don’t worry about clang

* lib/diffseq.h: Stop worrying about __clang__ for pragmas.
This basically reverts the previous change to this file.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00145.html

8 months agocopy-file: Add functions for copying non-confidential files.
Bruno Haible [Sat, 24 Aug 2024 18:52:28 +0000 (20:52 +0200)]
copy-file: Add functions for copying non-confidential files.

Reported by Patrice Dumas <pertusus@free.fr> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00142.html>.

* lib/copy-file.h (copy_file_to, xcopy_file_to): New declarations.
* lib/copy-file.c (copy_file_internal): New function, extracted from
qcopy_file_preserving.
(qcopy_file_preserving): Invoke it.
(copy_file_to): New function.
(handle_error_code): New function, extracted from xcopy_file_preserving.
(xcopy_file_preserving): Invoke it.
(xcopy_file_to): New function.

8 months agocopy-file: First step towards more consistent function names.
Bruno Haible [Sat, 24 Aug 2024 15:59:26 +0000 (17:59 +0200)]
copy-file: First step towards more consistent function names.

* lib/copy-file.h (xcopy_file_preserving): New declaration.
(copy_file_preserving): Mark deprecated.
* lib/copy-file.c (xcopy_file_preserving): Renamed from
copy_file_preserving.
(copy_file_preserving): New function.
* tests/test-copy-file.c (main): Test xcopy_file_preserving instead of
copy_file_preserving.

8 months agoacl: First step towards more consistent function names.
Bruno Haible [Sat, 24 Aug 2024 15:58:48 +0000 (17:58 +0200)]
acl: First step towards more consistent function names.

* lib/acl.h (xset_acl): New declaration.
(set_acl): Mark deprecated.
(xcopy_acl): New declaration.
(copy_acl): Mark deprecated.
* lib/set-acl.c (xset_acl): Renamed from set_acl.
(set_acl): New function.
* lib/copy-acl.c (xcopy_acl): Renamed from copy_acl.
(copy_acl): New function.
* tests/test-set-mode-acl.c (main): Test xset_acl instead of set_acl.
* tests/test-copy-acl.c (main): Test xcopy_acl instead of copy_acl.

8 months agodiffseq: port to clang 18.1.6 in ‘patch’
Paul Eggert [Sat, 24 Aug 2024 15:22:47 +0000 (08:22 -0700)]
diffseq: port to clang 18.1.6 in ‘patch’

* lib/diffseq.h: Omit the pragmas if __clang__.

8 months agorelocatable-prog: Add support for 32-bit build on FreeBSD/powerpc64.
Bruno Haible [Sat, 24 Aug 2024 14:33:05 +0000 (16:33 +0200)]
relocatable-prog: Add support for 32-bit build on FreeBSD/powerpc64.

Reference: <https://savannah.gnu.org/patch/?10469>.

* build-aux/config.libpath: Accept a second argument. Use it on
FreeBSD/powerpc64.
(func_usage): Document it.
* m4/relocatable.m4 (AC_LIB_LIBPATH): Require gl_HOST_CPU_C_ABI_32BIT.
Pass HOST_CPU_C_ABI_32BIT to the config.libpath script.
* modules/relocatable-prog (Files): Add m4/host-cpu-c-abi.m4.

8 months agodiffseq: port to GCC 14.2.1 in ‘patch’
Paul Eggert [Fri, 23 Aug 2024 20:50:32 +0000 (13:50 -0700)]
diffseq: port to GCC 14.2.1 in ‘patch’

* lib/diffseq.h: Also suppress -Wanalyzer-use-of-uninitialized-value.
This fixes an unwanted diagnostic when compiling GNU ‘patch’
with gcc (GCC) 14.2.1 20240801 (Red Hat 14.2.1-1) x86-64.

8 months agohost-cpu-c-abi: Update comment, working around FreeBSD breakage.
Bruno Haible [Fri, 23 Aug 2024 17:01:55 +0000 (19:01 +0200)]
host-cpu-c-abi: Update comment, working around FreeBSD breakage.

* m4/host-cpu-c-abi.m4: For powerpc64, recommend to test
__BIG_ENDIAN__ or __LITTLE_ENDIAN__, not _BIG_ENDIAN or _LITTLE_ENDIAN,
as FreeBSD 14 breaks the latter.

8 months agomcel: port to uClibc-ng
Paul Eggert [Thu, 22 Aug 2024 06:00:38 +0000 (23:00 -0700)]
mcel: port to uClibc-ng

Problem reported by Waldemar Brodkorb in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00130.html
* lib/mcel.h (mcel_scan): Don’t treat uClibc-ng like glibc.

8 months agostdio: Fix compilation error in C++ mode on Linux/riscv64 with musl.
Bruno Haible [Wed, 21 Aug 2024 21:22:26 +0000 (23:22 +0200)]
stdio: Fix compilation error in C++ mode on Linux/riscv64 with musl.

* lib/stdio.in.h (fpurge): Disable _GL_CXXALIASWARN invocation on
non-glibc systems.

8 months agohasmntopt: Add tests.
Bruno Haible [Mon, 19 Aug 2024 14:21:27 +0000 (16:21 +0200)]
hasmntopt: Add tests.

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

8 months agohasmntopt: New module.
Bruno Haible [Mon, 19 Aug 2024 14:20:08 +0000 (16:20 +0200)]
hasmntopt: New module.

* lib/mntent.in.h: Add config.h check.
(hasmntopt): New declaration.
* lib/hasmntopt.c: New file, based on glibc/misc/mntent_r.c.
* m4/hasmntopt.m4: New file.
* m4/mntent_h.m4 (gl_MNTENT_H): Test whether hasmntopt is declared.
(gl_MNTENT_H_REQUIRE_DEFAULTS): Initialize GNULIB_HASMNTOPT.
(gl_MNTENT_H_DEFAULTS): Initialize HAVE_HASMNTOPT, HAVE_SETMNTENT,
REPLACE_HASMNTOPT.
* modules/mntent (Depends-on): Add snippet/arg-nonnull, snippet/c++defs,
snippet/warn-on-use.
(Makefile.am): Insert c++defs.h, arg-nonnull.h, warn-on-use.h into
mntent.h. Substitute GNULIB_HASMNTOPT, HAVE_HASMNTOPT, HAVE_SETMNTENT,
REPLACE_HASMNTOPT.
* modules/hasmntopt: New file.
* doc/glibc-functions/hasmntopt.texi: Mention the new module and the
musl bug.
* doc/glibc-functions/setmntent.texi: Update info about Android.
* doc/glibc-functions/getmntent_r.texi: Likewise.
* doc/glibc-functions/endmntent.texi: Likewise.

8 months agomntent: New module.
Bruno Haible [Mon, 19 Aug 2024 11:46:02 +0000 (13:46 +0200)]
mntent: New module.

* lib/mntent.in.h: New file.
* m4/mntent_h.m4: New file.
* modules/mntent: New file.
* doc/glibc-headers/mntent.texi: Mention the new module.
* top/maint.mk (gl_prefer_angle_bracket_headers_): Add mntent.h.
* doc/gnulib-tool.texi (Style of #include statements): Add mntent.h to
the list.

8 months agoonce: Fix pthread-rwlock crashes with clang (regr. 2024-08-07).
Bruno Haible [Sat, 17 Aug 2024 13:07:59 +0000 (15:07 +0200)]
once: Fix pthread-rwlock crashes with clang (regr. 2024-08-07).

* lib/glthread/once.h: Don't mark pthread_rwlock_init,
pthread_rwlockattr_init as weak if we are overriding them.

8 months agopty tests: Add C tests.
Collin Funk [Sat, 17 Aug 2024 04:22:31 +0000 (21:22 -0700)]
pty tests: Add C tests.

* modules/pty-tests (Files): Add tests/test-pty.c.
(Makefile.am): Add the new program.
* tests/test-pty.c: New file.

8 months agopty: Define 'struct winsize' on all platforms.
Collin Funk [Sat, 17 Aug 2024 04:19:46 +0000 (21:19 -0700)]
pty: Define 'struct winsize' on all platforms.

* modules/pty (Depends-on): Add termios.
* lib/pty.in.h: Make comments more accurate.
(struct winsize): Remove forward declaration.

8 months agogitsub.sh: For a submodule, merge from the right remote branch.
Bruno Haible [Fri, 16 Aug 2024 20:07:19 +0000 (22:07 +0200)]
gitsub.sh: For a submodule, merge from the right remote branch.

Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> at
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00101.html>.

* top/gitsub.sh (func_upgrade): For a submodule, use 'git branch' to
determine the branch to merge from, instead of assuming that it is
always the 'master' branch.

8 months agognulib-tool.py: Correct the result of --extract-dependents.
Bruno Haible [Fri, 16 Aug 2024 16:24:54 +0000 (18:24 +0200)]
gnulib-tool.py: Correct the result of --extract-dependents.

* pygnulib/GLModuleSystem.py (GLModule.getDependents): Add the current
module's test module, if that exists.

8 months agognulib-tool.py: Don't treat 'valgrind-tests' as a tests module.
Bruno Haible [Fri, 16 Aug 2024 15:57:02 +0000 (17:57 +0200)]
gnulib-tool.py: Don't treat 'valgrind-tests' as a tests module.

Reported by Marc Nieper-Wißkirchen <marc.nieper+gnu@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00093.html>.

* pygnulib/GLModuleSystem.py (_isTestsModuleName): New function.
(GLModuleSystem.list, GLModule.isNonTests, GLModule.getApplicability,
GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional,
GLModule.getLicense): Use it.

8 months agotermios: Tweak doc.
Bruno Haible [Fri, 16 Aug 2024 01:14:18 +0000 (03:14 +0200)]
termios: Tweak doc.

* doc/posix-headers/termios.texi: Update list of platforms.

8 months agoAdd ChangeLog entry for last commit.
Paul Eggert [Thu, 15 Aug 2024 04:01:18 +0000 (06:01 +0200)]
Add ChangeLog entry for last commit.

8 months agoverror: allow library name-spacing of verror
Paul Eggert [Thu, 15 Aug 2024 03:04:42 +0000 (20:04 -0700)]
verror: allow library name-spacing of verror

Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00085.html
* lib/error.c (verror, verror_at_line) [!_LIBC]: #undef only if
the corresponding GNULIB_defined_... macros are defined.
* lib/error.in.h (verror, verror_with_line):
Don't define as macros if they are already defined, or if
_GL_NO_INLINE_ERROR is defined.  This may lose some niceties with GCC
warnings, but the code’s valid.

8 months agoerror: merge from glibc and with verror
Paul Eggert [Thu, 15 Aug 2024 01:03:54 +0000 (18:03 -0700)]
error: merge from glibc and with verror

* lib/error.c: Merge changes since 2018 from glibc.
----- The following changes are taken from glibc:
(__error_internal, __error_at_line_internal): New functions,
with most of the old error and error_at_line_internal but
with va_list and with a new trailing mode_args,
for wide character mode.
(error_tail): Add trailing arg.
(error_tail, __error_internal, __error_at_line_internal):
Redo _LIBC implementation with respect to cancelation.
[_LIBC]: Include <libc-lock.h>, not <bits/libc-lock.h>.
----- The following changes are specific to Gnulib:
(__error_internal, __error_at_line_internal, error_tail) [!_LIBC]:
Use macros to define away the new trailing arg, and to name
the internal functions to verror and verror_at_line.
(verror, verror_at_line) [!_LIBC]: Undef so that we omit
the __gl_error_call business when defining these functions.
* lib/error.in.h: Include stdarg.h.
(verror, verror_at_line): New decls and macros.
* m4/error_h.m4 ([gl_ERROR_H]): Always compile error.c if
the verror module is also present.
* modules/verror (Files, lib_SOURCES):
Remove lib/verror.h, lib/verror.c.
(Depends-on): Remove stdio, xvasprintf.
(configure.ac-early): Define gl_HAVE_MODULE_VERROR so that
the error module compiles error.c.  Not sure if this is the
standard way to do this, but it seems to work.
* modules/verror (Include), tests/test-verror.c:
Include error.h, not verror.h.

8 months agoerror: it’s cold
Paul Eggert [Wed, 14 Aug 2024 21:06:05 +0000 (14:06 -0700)]
error: it’s cold

This mimics what glibc is doing nowadays.
* lib/error.in.h (error, error_at_line):
* lib/verror.h (verror, verror_at_line):
Declare with _GL_ATTRIBUTE_CODE.

8 months agopthread-rwlock-extra-tests: Exclude this test from packages by default.
Bruno Haible [Wed, 14 Aug 2024 14:43:34 +0000 (16:43 +0200)]
pthread-rwlock-extra-tests: Exclude this test from packages by default.

* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Add comment.
* modules/pthread-rwlock-extra-tests (Status): Mark as longrunning-test.

8 months agotests: Fix link errors (regression 2024-08-12).
Bruno Haible [Wed, 14 Aug 2024 14:14:27 +0000 (16:14 +0200)]
tests: Fix link errors (regression 2024-08-12).

* modules/chown-tests (Makefile.am): Link test-chown with LIBINTL.
* modules/lchown-tests (Makefile.am): Link test-lchown with LIBINTL.
* modules/stat-time-tests (Makefile.am): Link test-stat-time with
LIBINTL.

8 months agombrtoc16: Fix compilation error on Haiku.
Bruno Haible [Tue, 13 Aug 2024 06:38:22 +0000 (08:38 +0200)]
mbrtoc16: Fix compilation error on Haiku.

* lib/uchar.in.h (mbrtoc16): Fix typo.

8 months agotermios tests: Check for struct winsize.
Collin Funk [Tue, 13 Aug 2024 03:11:19 +0000 (20:11 -0700)]
termios tests: Check for struct winsize.

* tests/test-termios.c (t2): Make sure inclusion of termios.h allows use
of struct winsize.

8 months agotermios: Define struct winsize on all platforms.
Collin Funk [Tue, 13 Aug 2024 03:09:01 +0000 (20:09 -0700)]
termios: Define struct winsize on all platforms.

* doc/posix-headers/termios.texi (termios.h): Mention struct winsize is
defined in <sys/ioctl.h> on glibc.
* lib/termios.in.h (struct winsize): Define or include.
* m4/termios_h.m4 (gl_TERMIOS_H): Check for a definition of struct
winsize.
* modules/termios (Makefile.am): Replace AC_SUBST variables.

8 months agoerrno tests: Avoid test failure on Haiku.
Bruno Haible [Mon, 12 Aug 2024 15:15:10 +0000 (17:15 +0200)]
errno tests: Avoid test failure on Haiku.

* doc/posix-headers/errno.texi: Mention the Haiku problem.
* tests/test-errno.c: On Haiku, don't check that the error numbers are
positive.

8 months agoerrno: Ensure ESOCKTNOSUPPORT gets defined.
Bruno Haible [Mon, 12 Aug 2024 15:11:35 +0000 (17:11 +0200)]
errno: Ensure ESOCKTNOSUPPORT gets defined.

* m4/errno_h.m4 (gl_HEADER_ERRNO_H): Test also whether ESOCKTNOSUPPORT
is defined.
* lib/errno.in.h (ESOCKTNOSUPPORT, GNULIB_defined_ESOCKTNOSUPPORT): New
macros.
* lib/strerror-override.h (strerror_override): Declare also if
GNULIB_defined_ESOCKTNOSUPPORT is defined.
* lib/strerror-override.c (strerror_override): Handle ESOCKTNOSUPPORT.
* lib/strerrorname_np.c (strerrorname_np): Move ESOCKTNOSUPPORT code to
the POSIX section.
* doc/posix-headers/errno.texi: Document the Haiku problem.

8 months agofdutimensat, utimensat tests: Fix test failures on Cygwin.
Bruno Haible [Mon, 12 Aug 2024 14:15:50 +0000 (16:15 +0200)]
fdutimensat, utimensat tests: Fix test failures on Cygwin.

* tests/nap.h: Include concat-filename.h, xgetcwd.h.
(nap_file): New variable.
(nap_get_stat, clear_temp_file): Use nap_file, not TEMPFILE.
(nap): Initialize nap_file.
* modules/chown-tests (Depends-on): Add xconcat-filename, xgetcwd.
* modules/fchownat-tests (Depends-on): Likewise.
* modules/fdutimensat-tests (Depends-on): Likewise.
* modules/futimens-tests (Depends-on): Likewise.
* modules/lchown-tests (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.
* modules/utime-tests (Depends-on): Likewise.
* modules/utimens-tests (Depends-on): Likewise.
* modules/utimensat-tests (Depends-on): Likewise.

8 months agopthread-rwlock: Attempt harder to avoid test failure on macOS.
Bruno Haible [Mon, 12 Aug 2024 12:56:46 +0000 (14:56 +0200)]
pthread-rwlock: Attempt harder to avoid test failure on macOS.

* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 200 ms on macOS.

8 months agopthread-rwlock: Attempt harder to avoid test failure on macOS.
Bruno Haible [Mon, 12 Aug 2024 12:18:02 +0000 (14:18 +0200)]
pthread-rwlock: Attempt harder to avoid test failure on macOS.

* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 100 ms on macOS.

8 months agopthread-rwlock: Attempt harder to avoid test failure on macOS.
Bruno Haible [Mon, 12 Aug 2024 11:15:42 +0000 (13:15 +0200)]
pthread-rwlock: Attempt harder to avoid test failure on macOS.

* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 50 ms on macOS.

8 months agopthread-rwlock tests: Move the waitqueue test into a separate module.
Bruno Haible [Mon, 12 Aug 2024 09:24:40 +0000 (11:24 +0200)]
pthread-rwlock tests: Move the waitqueue test into a separate module.

* modules/pthread-rwlock-extra-tests: New file.
* modules/pthread-rwlock-tests: Revert 2024-08-07 changes.
(Depends-on): Add pthread-rwlock-extra-tests.

8 months agopthread-rwlock: Attempt to avoid test failure on some more machines.
Bruno Haible [Mon, 12 Aug 2024 09:15:37 +0000 (11:15 +0200)]
pthread-rwlock: Attempt to avoid test failure on some more machines.

* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 20 ms on macOS.

8 months agohtonl: Fix link errors on Windows.
Collin Funk [Sun, 11 Aug 2024 20:53:48 +0000 (13:53 -0700)]
htonl: Fix link errors on Windows.

Reported by Bruno Haible in:
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00066.html>.

* lib/arpa_inet.in.h (htons, htonl, ntohs, ntohl): Only define when not
declared by the system.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Set default behavior for
htonl functions.
* m4/htonl.m4 (gl_FUNC_HTONL): Check if -lws2_32 is required. Only check
for declarations on POSIX systems.
* modules/arpa_inet (Makefile.am): Substitute new Makefile variables.
* modules/htonl (Files): Add m4/sys_socket_h.m4.
(Depends-on): Remove endian condition.
(Link): Add $(HOTNL_LIB).
* modules/htonl-tests: Link to @HTONL_LIB@.

8 months agodoc: Update regarding Windows <winsock2.h> functions.
Bruno Haible [Sun, 11 Aug 2024 19:01:38 +0000 (21:01 +0200)]
doc: Update regarding Windows <winsock2.h> functions.

* doc/posix-functions/accept.texi: Mention that it's declared elsewhere
on native Windows.
* doc/posix-functions/bind.texi: Likewise.
* doc/posix-functions/connect.texi: Likewise.
* doc/posix-functions/getpeername.texi: Likewise.
* doc/posix-functions/getsockname.texi: Likewise.
* doc/posix-functions/getsockopt.texi: Likewise.
* doc/posix-functions/listen.texi: Likewise.
* doc/posix-functions/recv.texi: Likewise.
* doc/posix-functions/recvfrom.texi: Likewise.
* doc/posix-functions/select.texi: Likewise.
* doc/posix-functions/send.texi: Likewise.
* doc/posix-functions/sendto.texi: Likewise.
* doc/posix-functions/setsockopt.texi: Likewise.
* doc/posix-functions/shutdown.texi: Likewise.
* doc/posix-functions/socket.texi: Likewise.
* doc/pastposix-functions/gethostbyaddr.texi: Don't say that the
function is missing on native Windows.
* doc/pastposix-functions/gethostbyname.texi: Likewise.
* doc/posix-functions/getprotobyname.texi: Likewise.
* doc/posix-functions/getprotobynumber.texi: Likewise.
* doc/posix-functions/getservbyname.texi: Likewise.
* doc/posix-functions/getservbyport.texi: Likewise.
* doc/posix-functions/htonl.texi: Likewise.
* doc/posix-functions/htons.texi: Likewise.
* doc/posix-functions/inet_addr.texi: Likewise.
* doc/posix-functions/inet_ntoa.texi: Likewise.
* doc/posix-functions/ntohl.texi: Likewise.
* doc/posix-functions/ntohs.texi: Likewise.
* doc/posix-functions/gethostname.texi: Update.

8 months agotest-fdutimensat: fix newly-added test
Paul Eggert [Sun, 11 Aug 2024 04:47:07 +0000 (21:47 -0700)]
test-fdutimensat: fix newly-added test

Problem reported by Bruno Haible and Collin Funk in:
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00061.html
https://lists.gnu.org/r/bug-gnulib/2024-08/msg00064.html
* tests/test-utimens.h (test_utimens): Fix typo in new test,
which causes the test to break on file systems that are not noatime.

8 months agohtonl: Add tests.
Collin Funk [Sun, 11 Aug 2024 00:16:45 +0000 (17:16 -0700)]
htonl: Add tests.

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

8 months agohtonl: New module.
Collin Funk [Sun, 11 Aug 2024 00:15:07 +0000 (17:15 -0700)]
htonl: New module.

* modules/htonl: New file.
* lib/arpa_inet.c: New file.
* m4/htonl.m4: New file.
* modules/arpa_inet (Files): Add lib/arpa_inet.c.
(Depends-on): Add extern-inline.
* lib/arpa_inet.in.h (htons, htonl, ntohs, ntohl): New declarations.
* m4/arpa_inet_h.m4 (gl_ARPA_INET_H_DEFAULTS): Define REPLACE_HTONL.
* doc/posix-functions/htons.texi (htons): Mention the module.
* doc/posix-functions/htonl.texi (htonl): Likewise.
* doc/posix-functions/ntohs.texi (ntohs): Likewise.
* doc/posix-functions/ntohl.texi (ntohl): Likewise.

8 months agoMake sure gperf-generated files are the same in VPATH builds.
Bruno Haible [Sat, 10 Aug 2024 10:48:55 +0000 (12:48 +0200)]
Make sure gperf-generated files are the same in VPATH builds.

Reported by Patrice Dumas <pertusus@free.fr> in
<https://lists.gnu.org/archive/html/bug-texinfo/2024-08/msg00030.html>.

* modules/iconv_open (Makefile.am): Eliminate directory names from the
generated iconv_open-aix.h, iconv_open-hpux.h, iconv_open-irix.h,
iconv_open-osf.h, iconv_open-solaris.h, iconv_open-zos.h.
* modules/unicase/locale-language (Makefile.am): Eliminate directory
names from the generated unicase/locale-languages.h.
* modules/unicase/special-casing (Makefile.am): Eliminate directory
names from the generated unicase/special-casing-table.h.
* modules/unictype/bidiclass-byname (Makefile.am): Eliminate directory
names from the generated unictype/bidi_byname.h.
* modules/unictype/category-byname (Makefile.am): Eliminate directory
names from the generated unictype/categ_byname.h.
* modules/unictype/combining-class-byname (Makefile.am): Eliminate
directory names from the generated unictype/combiningclass_byname.h.
* modules/unictype/incb-byname (Makefile.am): Eliminate directory names
from the generated unictype/incb_byname.h.
* modules/unictype/joininggroup-byname (Makefile.am): Eliminate
directory names from the generated unictype/joininggroup_byname.h.
* modules/unictype/joiningtype-byname (Makefile.am): Eliminate directory
names from the generated unictype/joiningtype_byname.h.
* modules/unictype/property-byname (Makefile.am): Eliminate directory
names from the generated unictype/pr_byname.h.
* modules/unictype/scripts (Makefile.am): Eliminate directory names from
the generated unictype/scripts_byname.h.
* modules/uninorm/composition (Makefile.am): Eliminate directory names
from the generated uninorm/composition-table.h.

8 months agofull-read, etc.: prefer signed types
Paul Eggert [Fri, 9 Aug 2024 21:33:31 +0000 (14:33 -0700)]
full-read, etc.: prefer signed types

* lib/full-read.h, lib/full-write.h, lib/safe-read.h, lib/safe-write.h:
Include idx.h.
* lib/full-write.c (full_read, full_write):
Now accept and returns idx_t.
* lib/safe-read.c (bufptr): New type, since apps are not
supposed to #define keywords like ‘const’.
(safe_read, safe_write): Now accept idx_t and return ptrdiff_t.
* lib/safe-read.h (SAFE_READ_ERROR):
* lib/safe-write.h (SAFE_WRITE_ERROR):
Now ptrdiff_t, not size_t.
* modules/full-read, modules/full-write, modules/safe-read:
* modules/safe-write (Depends-on): Add idx.

8 months agosig2str: Align with POSIX:2024.
Bruno Haible [Fri, 9 Aug 2024 20:18:16 +0000 (22:18 +0200)]
sig2str: Align with POSIX:2024.

* lib/signal.in.h (SIG2STR_MAX): New macro.
(sig2str, str2sig): New declarations.
* lib/sig2str.h: Don't include intprops.h.
(SIG2STR_MAX): Remove macro.
(sig2str, str2sig): Remove declarations.
* lib/sig2str.c: Include <signal.h> as the specification header.
* m4/signal_h.m4 (gl_SIGNAL_H): Test whether sig2str, str2sig are
declared.
(gl_SIGNAL_H_REQUIRE_DEFAULTS): Initialize GNULIB_SIG2STR.
(gl_SIGNAL_H_DEFAULTS): Initialize HAVE_SIG2STR, HAVE_STR2SIG.
* m4/sig2str.m4 (gl_FUNC_SIG2STR): Require gl_SIGNAL_H_DEFAULTS. Check
also for str2sig. Set HAVE_SIG2STR, HAVE_STR2SIG.
* modules/signal-h (Makefile.am): Substitute GNULIB_SIG2STR,
HAVE_SIG2STR, HAVE_STR2SIG.
* modules/sig2str (Depends-on): Add signal-h. Remove intprops.
(configure.ac): Test HAVE_SIG2STR, HAVE_STR2SIG. Invoke
gl_SIGNAL_MODULE_INDICATOR.
(Include): Add <signal.h>.
* doc/posix-functions/sig2str.texi: Mention as implemented through the
sig2str module.
* doc/posix-functions/str2sig.texi: Likewise.

8 months agotest-utime: port to noatime file systems
Paul Eggert [Fri, 9 Aug 2024 21:03:44 +0000 (14:03 -0700)]
test-utime: port to noatime file systems

Problem encountered on Ubuntu 24.04 zfs mounted noatime.
* tests/test-fdutimensat.c (main):
* tests/test-futimens.h (test_futimens):
* tests/test-lutimens.h (test_lutimens):
* tests/test-utime.c (test_utime):
* tests/test-utimens-common.h (checkable_atime): New function.
* tests/test-utimens.h (test_utimens):
* tests/test-utimensat.c (main):
Do not check atime on file systems mounted noatime.

8 months agopthread-rwlock: Attempt to avoid test failure on some machines.
Bruno Haible [Fri, 9 Aug 2024 09:59:10 +0000 (11:59 +0200)]
pthread-rwlock: Attempt to avoid test failure on some machines.

Reported by Pádraig Brady <P@draigBrady.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-08/msg00050.html>.

* tests/test-pthread-rwlock-waitqueue.c (STEP_INTERVAL): Bump the
minimum interval to 10 ms.
* m4/pthread-rwlock.m4 (gl_PTHREAD_RWLOCK): Likewise.

8 months agoFix recent ChangeLog entry.
Bruno Haible [Fri, 9 Aug 2024 02:40:51 +0000 (04:40 +0200)]
Fix recent ChangeLog entry.

Reported by Collin Funk.

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.