modules

Branch


Log

Author Commit Date CI Message
Collin Funk abd86e80 2025-10-17T16:45:30 savedir: Add tests. * tests/test-savedir.c: New file. * modules/savedir-tests: Likewise.
Bruno Haible e0bcc7d6 2025-10-03T21:51:11 unimetadata/base: Add tests. * tests/unimetadata/test-unimetadata-h.c: New file. * modules/unimetadata/base-tests: New file. * tests/unimetadata/test-unimetadata-h-c++.cc: New file. * modules/unimetadata/base-c++-tests: New file.
Bruno Haible 268c44d1 2025-10-03T21:51:08 unicase/base: Add tests. * tests/unicase/test-unicase-h.c: New file. * modules/unicase/base-tests: New file. * tests/unicase/test-unicase-h-c++.cc: New file. * modules/unicase/base-c++-tests: New file.
Bruno Haible fde8832a 2025-10-03T21:51:05 uninorm/base: Add tests. * tests/uninorm/test-uninorm-h.c: New file. * modules/uninorm/base-tests: New file. * tests/uninorm/test-uninorm-h-c++.cc: New file. * modules/uninorm/base-c++-tests: New file.
Bruno Haible 69db3cfd 2025-10-03T21:51:01 unilbrk/base: Add tests. * tests/unilbrk/test-unilbrk-h.c: New file. * modules/unilbrk/base-tests: New file. * tests/unilbrk/test-unilbrk-h-c++.cc: New file. * modules/unilbrk/base-c++-tests: New file.
Bruno Haible 3cd44d44 2025-10-03T21:50:59 uniwbrk/base: Add tests. * tests/uniwbrk/test-uniwbrk-h.c: New file. * modules/uniwbrk/base-tests: New file. * tests/uniwbrk/test-uniwbrk-h-c++.cc: New file. * modules/uniwbrk/base-c++-tests: New file.
Bruno Haible c3551bca 2025-10-03T21:50:56 unigbrk/base: Add tests. * tests/unigbrk/test-unigbrk-h.c: New file. * modules/unigbrk/base-tests: New file. * tests/unigbrk/test-unigbrk-h-c++.cc: New file. * modules/unigbrk/base-c++-tests: New file.
Bruno Haible 65b2a8ba 2025-10-03T21:50:53 uniwidth/base: Add tests. * tests/uniwidth/test-uniwidth-h.c: New file. * modules/uniwidth/base-tests: New file. * tests/uniwidth/test-uniwidth-h-c++.cc: New file. * modules/uniwidth/base-c++-tests: New file.
Bruno Haible b2ad9004 2025-10-03T21:50:51 unictype/base: Add tests. * tests/unictype/test-unictype-h.c: New file. * modules/unictype/base-tests: New file. * tests/unictype/test-unictype-h-c++.cc: New file. * modules/unictype/base-c++-tests: New file.
Bruno Haible 1d10a395 2025-10-03T21:50:48 uniname/base: Add tests. * tests/uniname/test-uniname-h.c: New file. * modules/uniname/base-tests: New file. * tests/uniname/test-uniname-h-c++.cc: New file. * modules/uniname/base-c++-tests: New file.
Bruno Haible 82c4f2b9 2025-10-03T21:50:46 unistdio/base: Add tests. * tests/unistdio/test-unistdio-h.c: New file. * modules/unistdio/base-tests: New file. * tests/unistdio/test-unistdio-h-c++.cc: New file. * modules/unistdio/base-c++-tests: New file.
Bruno Haible 068652f6 2025-10-03T21:50:42 uniconv/base: Add tests. * tests/uniconv/test-uniconv-h.c: New file. * modules/uniconv/base-tests: New file. * tests/uniconv/test-uniconv-h-c++.cc: New file. * modules/uniconv/base-c++-tests: New file.
Bruno Haible 8077cba5 2025-10-03T21:50:29 unistr/base: Add tests. * tests/unistr/test-unistr-h.c: New file. * modules/unistr/base-tests: New file. * tests/unistr/test-unistr-h-c++.cc: New file. * modules/unistr/base-c++-tests: New file.
Collin Funk a3e20644 2025-09-28T13:30:15 xsetenv: Revert the previous change. * modules/xsetenv (Description): Restore the description of unsetenv.
Collin Funk 6f5df54e 2025-09-28T11:51:48 xsetenv: Remove unnecessary text from module description. * modules/xsetenv (Description): Remove mention of the unsetenv function which is not provided by this module.
Bruno Haible c63a0c67 2025-09-24T23:28:18 Update to Unicode 17.0.0. * lib/gen-uni-tables.c (is_property_alphabetic): Add three YANGQIN SIGNs. (UC_JOINING_GROUP_THIN_NOON): New enum item. (fill_arabicshaping, joining_group_as_c_identifier): Handle UC_JOINING_GROUP_THIN_NOON. (LBP_*): Split LBP_SA into LBP_SA1 and LBP_SA2. (LBP_HH, LBP_SA): New enum items. (get_lbp): Use them. Update such that unilbrk/lbrkprop.txt comes out as expected. (debug_output_lbp): Handle LBP_HH. Print either LBP_SA1, LBP_SA2 as LBP_SA. (fill_org_lbp, debug_output_org_lbp): Handle LBP_HH. (lbp_value_to_string): Handle LBP_HH. Handle LBP_SA1, LBP_SA2 instead of LBP_SA. (output_lbrk_rules_as_tables): Update for LBP_HH change. Update rules LBP12a, LB21 as specified by https://www.unicode.org/reports/tr14/tr14-55.html. (get_wbp): Update such that uniwbrk/wbrkprop.txt comes out as expected. * lib/unictype.in.h (UC_JOINING_GROUP_THIN_NOON): New enum item. * lib/unictype/joininggroup_byname.gperf: Handle it. * lib/unictype/joininggroup_name.h: Likewise. * lib/unilbrk/lbrktables.h (LBP_*): Split LBP_SA into LBP_SA1 and LBP_SA2. (LBP_HH): New enum item. (unilbrk_table): Update bounds. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop): Use LBP_HL_HY instead of LBP_HL_BA. Use LBP_SA1 instead of LBP_SA. Treat LBP_SA2 like LBP_CM. Update rules LB20a and LB21a, as specified by https://www.unicode.org/reports/tr14/tr14-55.html. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop): Likewise. * tests/unigbrk/test-u8-grapheme-breaks.c (main): Use U+2B50 instead of U+2605, because U+2605 no longer is an Extended_Pictographic character. * tests/unigbrk/test-u16-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-breaks.c (main): Likewise. * tests/unigbrk/test-u8-grapheme-next.c (main): Likewise. * tests/unigbrk/test-u16-grapheme-next.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-next.c (main): Likewise. * tests/unigbrk/test-u8-grapheme-prev.c (main): Likewise. * tests/unigbrk/test-u16-grapheme-prev.c (main): Likewise. * tests/unigbrk/test-u32-grapheme-prev.c (main): Likewise. * tests/uniwidth/test-uc_width2.sh: Update expected test result. * All generated files under lib/uni* and tests/uni*: Regenerate. * tests/uniname/NameAliases.txt: Update. * tests/uniname/UnicodeData.txt: Update. * tests/uninorm/NormalizationTest.txt: Update. * tests/unigbrk/GraphemeBreakTest.txt: Update. * tests/uniwbrk/WordBreakTest.txt: Update. * tests/unilbrk/LineBreakTest.txt: Update. * All the affected modules: Bump required libunistring version.
Bruno Haible 5cb21152 2025-09-24T23:28:14 unilbrk: Fix handling of future emojis in rule LB30b. * lib/unilbrk/lbrktables.h (LBP_ID): Renamed from LBP_ID1. (LBP_EBF): Renamed from LBP_ID2. * lib/gen-uni-tables.c (LBP_ID): Renamed from LBP_ID1. (LBP_EBF): Renamed from LBP_ID2. (get_lbp): Update. Move is_property_extended_pictographic invocation. (debug_output_org_lbp): Augment the information from the LineBreak.txt file with the Extended_Pictographic property. Print the LBP_ID and LBP_EBF values distinctly. (fill_org_lbp): Assign value LBP_EBF to all unassigned Extended_Pictographic characters. (debug_output_org_lbp): Handle LBP_EBF. (lbp_value_to_string): Update. (output_lbrk_rules_as_tables): Treat LBP_EBF like LBP_EB instead of like LBP_ID. * lib/unilbrk/u8-possible-linebreaks.c (u8_possible_linebreaks_loop): Update. * lib/unilbrk/u16-possible-linebreaks.c (u16_possible_linebreaks_loop): Likewise. * lib/unilbrk/u32-possible-linebreaks.c (u32_possible_linebreaks_loop): Likewise. * lib/unilbrk/lbrkprop2.h: Regenerated. * lib/unilbrk/lbrktables.c: Regenerated. * tests/unilbrk/test-uc-possible-linebreaks.c (main): Skip test cases that contain the U+1F8FF character. * modules/unilbrk/*-linebreaks: Bump required libunistring version.
Bruno Haible 18255ab2 2025-09-23T10:22:38 Clarify link dependency towards libgcrypt or OpenSSL's libcrypto. * modules/crypto/gc-arcfour (Link): New section. * modules/crypto/gc-arctwo (Link): Likewise. * modules/crypto/gc-camellia (Link): Likewise. * modules/crypto/gc-des (Link): Likewise. * modules/crypto/gc-hmac-md5 (Link): Likewise. * modules/crypto/gc-hmac-sha1 (Link): Likewise. * modules/crypto/gc-hmac-sha256 (Link): Likewise. * modules/crypto/gc-hmac-sha512 (Link): Likewise. * modules/crypto/gc-md2 (Link): Likewise. * modules/crypto/gc-md4 (Link): Likewise. * modules/crypto/gc-md5 (Link): Likewise. * modules/crypto/gc-pbkdf2 (Link): Likewise. * modules/crypto/gc-pbkdf2-sha1 (Link): Likewise. * modules/crypto/gc-rijndael (Link): Likewise. * modules/crypto/gc-sha1 (Link): Likewise. * modules/crypto/gc-sha256 (Link): Likewise. * modules/crypto/gc-sha512 (Link): Likewise. * modules/crypto/gc-sm3 (Link): Likewise. * modules/crypto/gc-random (Link): Add $(LIB_CRYPTO).
Collin Funk 4e77b6d1 2025-09-22T21:27:13 crypto/gc-arctwo-tests: Fix link error when OpenSSL is enabled. * modules/crypto/gc (Link): Add $(LIB_CRYPTO). * modules/crypto/gc-arctwo-tests (Makefile.am): Link the test program to @LIB_CRYPTO@.
Paul Eggert f657c55c 2025-09-22T16:41:41 fchownat: improve on test failure fix * lib/fchownat.c (rpl_fchownat): Clear the flag only if the trailing slash check needs to be made. Do this before checking for the nofollow bug, to avoid the need for the fork+chdir+lchown dance in that case. Move the empty-filename check earlier, so that its file[0] check can more easily be combined with the trailing slash check. * m4/chown.m4, m4/fchownat.m4, modules/fchownat: Revert most recent change.
Bruno Haible 4e944641 2025-09-22T13:44:06 fchownat: Fix test failure on OpenBSD and Cygwin 2.9 (regr. 2025-09-20). * doc/posix-functions/fchownat.texi: Document that the dereferencing bug also affects OpenBSD and Cygwin 2.9. * m4/chown.m4 (gl_FUNC_CHOWN_CTIME): New macro, extracted from gl_FUNC_CHOWN. (gl_FUNC_CHOWN): Invoke it. * m4/fchownat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Guess that a platform that has the chown ctime bug also has the fchownat AT_SYMLINK_NOFOLLOW bug. * modules/fchownat (Files): Add m4/chown.m4.
Paul Eggert 162ce0b7 2025-09-21T07:55:00 fchownat: fix security races and other bugs This fixes some unlikely security races, where our “no-op” chmod undid some other process’s chmod. Ironically this bug occurred on OpenBSD, our most paranoid target. This patch also fixes some EOVERFLOW bugs, along with a performance bug and a CHOWN_CHANGE_TIME_BUG with fchownat. * lib/chown.c, lib/fchownat.c, lib/lchown.c: Remove unnecessary inconsistencies. Include stat-time.h. (CHOWN_CHANGE_TIME_BUG, CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE) (CHOWN_MODIFIES_SYMLINK, CHOWN_TRAILING_SLASH_BUG): Default to 0, and prefer ‘if (...)’ to ‘#ifdef ...’. (utimensat) [!HAVE_UTIMENSAT]: Default to a no-op. (rpl_chown, rpl_fchownat, rpl_lchown): Prefer ‘if (...)’ to ‘#ifdef ...’. Statically, call the stat-like and chown-like functions just once. Do not fail if the stat-like function fails with EOVERFLOW, if existence is all we care about. Use utimensat to update ctime, instead of a chmod-like function. * lib/fchownat.c (rpl_fchownat): Defend against OpenBSD’s CHOWN_CHANGE_TIME_BUG. This bug in rpl_fchownat was exposed by yesterday’s fix that caused rpl_fchownat to call fchownat instead of using the tricky old fork/chdir business. * m4/chown.m4 (gl_FUNC_CHOWN): Check for utimensat if the ctime bug is present. * modules/chown, modules/lchown, modules/fchownat: (Depends-on): Add stat-time.
Bruno Haible d941c98d 2025-09-21T02:11:03 pthread-once: Reduce link dependencies. Linking with -lpthread is not needed on musl libc, macOS, NetBSD, Solaris, Cygwin, Haiku, Android. Reported by Michael Osipov <michael.osipov@innomotics.com> and Tijl Coosemans <tijl@FreeBSD.org> in <https://lists.gnu.org/archive/html/bug-gettext/2025-09/msg00019.html>. * m4/pthread-once.m4 (gl_PTHREAD_ONCE): Require gl_PTHREADLIB. Set PTHREAD_ONCE_LIB. * modules/pthread-once (Link): Link with $(PTHREAD_ONCE_LIB) instead of $(LIBPMULTITHREAD). * modules/pthread-once-tests (Makefile.am): Update accordingly.
Paul Eggert 92e7a7b1 2025-09-19T23:53:47 fchownat: depend on fstatat * modules/fchownat (Depends-on): Add fstatat. This fixes a dependency bug I introduced on 2022-03-09 when I made the statat module obsolute.
Bruno Haible ba34a934 2025-09-19T16:26:52 map-c++-tests: Fix compilation error (regression 2025-09-17). * tests/test-map-c++.cc (streq): Remove function. * modules/map-c++-tests (Depends-on): Add stringeq.
Bruno Haible b9f48580 2025-09-17T22:05:22 stringeq: Make use of Autoconf more reliable. * m4/stringeq.m4: New file. * modules/stringeq (Files): Add it. (configure.ac): Don't set HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. Instead, invoke gl_FUNC_STREQ and gl_FUNC_MEMEQ.
Paul Eggert 6b7a9996 2025-09-17T10:11:02 stringeq: port to platforms declaring memeq, streq Work even if the system <string.h> declares memeq and streq. Current standards allow systems to do that, and we hope future systems will do it. * lib/string.in.h (memeq) [HAVE_DECL_MEMEQ]: Do not define. (streq) [HAVE_DECL_STREQ]: Do not define. * m4/string_h.m4 (gl_STRING_H_DEFAULTS): Default HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. * modules/string-h (string-h): Substitute HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. * modules/stringeq (configure.ac): Define HAVE_DECL_MEMEQ, HAVE_DECL_STREQ.
Bruno Haible 055d5f02 2025-09-17T18:33:18 gen-uni-tables: Fix module description (left-over from 2025-05-11). Reported by Paul Eggert in <https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00223.html>. * modules/gen-uni-tables (Depends-on): Remove str_startswith, str_endswith.
Paul Eggert 26fd3545 2025-09-16T23:08:01 stringeq: prefer streq to strcmp in other modules * lib/acl-internal.c, lib/argmatch.c, lib/argp-help.c: * lib/argp-parse.c, lib/bcp47.c, lib/c32_get_mapping.c: * lib/c32_get_type_test.c, lib/concat-filename.c: * lib/cpu-supports.h, lib/dfa.c, lib/duplocale.c, lib/exclude.c: * lib/findprog-in.c, lib/findprog.c, lib/fopen.c, lib/freopen.c: * lib/fts.c, lib/gen-uni-tables.c, lib/getfilecon.c: * lib/getlogin.c, lib/getugroups.c, lib/hard-locale.c: * lib/hashcode-named-file.c, lib/hashkey-string.c: * lib/iconv_open.c, lib/idcache.c, lib/lc-charset-unicode.c: * lib/localcharset.c, lib/localename-environ.c: * lib/localename-unsafe.c, lib/mbs_endswith.c, lib/mountlist.c: * lib/newlocale.c, lib/nl_langinfo.c, lib/nproc.c, lib/open.c: * lib/os2-spawn.c, lib/parse-datetime.y, lib/popen.c: * lib/progreloc.c, lib/propername.c, lib/pt_chown.c, lib/putenv.c: * lib/qcopy-acl.c, lib/readutmp.c, lib/rpmatch.c: * lib/setlocale-fixes.c, lib/setlocale.c, lib/sig2str.c: * lib/spawni.c, lib/stat.c, lib/str_endswith.c, lib/streq.h: * lib/striconveha.c, lib/struniq.h, lib/supersede.c: * lib/time_rz.c, lib/unicodeio.c, lib/vasnprintf.c: * lib/vc-mtime.c, lib/wctrans-impl.h, lib/wctype-impl.h: Prefer streq to strcmp when either will do. Do not make this change to files shared with glibc. Do not make the change to test files, at least not for now. * lib/gen-uni-tables.c (streq): New static function, in same style. * modules/acl-permissions, modules/argp, modules/c32_get_mapping: * modules/c32_get_type_test, modules/concat-filename: * modules/cpu-supports, modules/dfa, modules/duplocale: * modules/exclude, modules/findprog, modules/findprog-in: * modules/fopen, modules/fopen-gnu, modules/freopen, modules/fts: * modules/getlocalename_l-simple, modules/getlocalename_l-unsafe: * modules/getlogin, modules/getugroups, modules/hard-locale: * modules/hashcode-named-file, modules/hashkey-string: * modules/iconv_open, modules/idcache, modules/localcharset: * modules/localename, modules/localename-unsafe: * modules/mbs_endswith, modules/mountlist, modules/newlocale: * modules/nl_langinfo, modules/nproc, modules/open: * modules/parse-datetime, modules/popen: * modules/posix_spawn-internal, modules/propername: * modules/pt_chown, modules/putenv-gnu, modules/qcopy-acl: * modules/rpmatch, modules/selinux-h, modules/setenv: * modules/setlocale, modules/setlocale-fixes, modules/sig2str: * modules/spawn-pipe, modules/stat, modules/str_endswith: * modules/streq, modules/striconveha, modules/supersede: * modules/time_rz, modules/uchar-h, modules/unicodeio: * modules/uniconv/base, modules/wctrans, modules/wctype: (Depends-on): Add stringeq.
Paul Eggert 6ca831b0 2025-09-16T18:57:41 stringeq: prefer memeq to memcmp in other modules * lib/argmatch.c, lib/argmatch.h, lib/backupfile.c, lib/bcp47.c: * lib/boot-time.c, lib/csharpcomp.c, lib/csharpexec.c: * lib/file-has-acl.c, lib/gen-uni-tables.c, lib/get_ppid_of.c: * lib/get_progname_of.c, lib/getlogin_r.c, lib/getprogname.c: * lib/getumask.c, lib/isnan.c, lib/mbchar.h, lib/mem-hash-map.c: * lib/memcoll.c, lib/progname.c, lib/progreloc.c: * lib/pthread_sigmask.c, lib/quotearg.c, lib/readutmp.c: * lib/same.c, lib/signbitd.c, lib/signbitf.c, lib/signbitl.c: * lib/string-desc.c, lib/string.c, lib/string.in.h: * lib/unictype/3level.h, lib/unictype/3levelbit.h: * lib/uniname/uniname.c, lib/vc-mtime.c: Prefer memeq to memcmp when either will do. Do not make this change to files shared with glibc. Do not make the change to test files, at least not for now. * lib/gen-uni-tables.c (memeq): New static function, in same style. * modules/argmatch, modules/backupfile, modules/bcp47: * modules/boot-time, modules/csharpcomp, modules/csharpexec: * modules/file-has-acl: * modules/get_ppid_of, modules/get_progname_of: * modules/getlogin_r, modules/getprogname, modules/getumask: * modules/isnan, modules/mbchar, modules/mem-hash-map: * modules/memcoll, modules/progname, modules/pthread_sigmask: * modules/quotearg, modules/readutmp, modules/relocatable-prog: * modules/relocatable-prog-wrapper, modules/same, modules/signbit: * modules/string-desc, modules/stringeq, modules/uniname/uniname: * modules/vc-mtime: (Depends-on): Add stringeq.
Paul Eggert 60b0949c 2025-09-16T14:34:11 stringeq: new module * MODULES.html.sh (func_all_modules): Add stringeq. * lib/string.c, modules/stringeq: New files. * lib/string.in.h: Use _GL_INLINE-related macros. (memeq, streq): New functions, if stringeq module is in use. * m4/string_h.m4 (gl_STRING_H_REQUIRE_DEFAULTS): New var GNULIB_STRINGEQ. * modules/string-h (string.h): Substitute GNULIB_STRINGEQ.
Bruno Haible 84d76cdd 2025-09-17T09:31:31 stdio-h: Work around [v][f]printf bugs in mingw with msvcrt. Reported by 松延 英樹 <maznobu@gmail.com> in <https://github.com/mlocati/gettext-iconv-windows/issues/52>. * lib/stdio.in.h (gl_consolesafe_fprintf, gl_consolesafe_printf, gl_consolesafe_vfprintf, gl_consolesafe_vprintf): New declarations. (fprintf): When msvcrt is in use, use gl_consolesafe_fprintf. (printf): When msvcrt is in use, use gl_consolesafe_printf. (vfprintf): When msvcrt is in use, use gl_consolesafe_vfprintf. (vprintf): When msvcrt is in use, use gl_consolesafe_vprintf. * lib/stdio-consolesafe.c: Include fseterr.h. (gl_consolesafe_fprintf, gl_consolesafe_printf, gl_consolesafe_vfprintf, gl_consolesafe_vprintf): New functions. * lib/stdio-write.c (vfprintf): When msvcrt is in use, use gl_consolesafe_vfprintf. * modules/stdio-h (Depends-on): Add fseterr. * doc/posix-functions/fprintf.texi: Document the mingw bug. * doc/posix-functions/printf.texi: Likewise. * doc/posix-functions/vfprintf.texi: Likewise. * doc/posix-functions/vprintf.texi: Likewise.
Bruno Haible dc8590b1 2025-09-17T08:38:14 stdio-h: Work around fwrite bug in msvcrt. Reported by 松延 英樹 <maznobu@gmail.com> in <https://github.com/mlocati/gettext-iconv-windows/issues/52>. * lib/stdio.in.h (gl_consolesafe_fwrite): New declaration. (fwrite): When msvcrt is in use, use gl_consolesafe_fwrite. * lib/stdio-consolesafe.c: New file. * lib/stdio-write.c (fwrite): When msvcrt is in use, use gl_consolesafe_fwrite. * modules/stdio.h (Files): Add lib/stdio-consolesafe.c. (Depends-on): Add stdckdint-h. (configure.ac): Define condition GL_COND_OBJ_STDIO_CONSOLESAFE. (Makefile.am): Arrange to compile stdio-consolesafe.c. * doc/posix-functions/fwrite.texi: Document the workaround.
Pádraig Brady c0184d73 2025-09-16T17:38:57 cpu-supports: remove assert dependency Avoid LGPL incompatibility issues by removing assert. * lib/cpu-supports.c (hwcaps_allowed): Replace assert()s with defensive returns allowing the passed hwcap. * modules/cpu-supports: Remove the dependency.
Bruno Haible 51aa7ef1 2025-09-16T16:30:38 strtof: Work around mingw bug with overflow. * lib/strtod.c (STRTOD): Recognize overflow. * modules/strtof (Depends-on): Add isinf. * modules/strtod (Depends-on): Likewise. * modules/strtold (Depends-on): Likewise. * doc/posix-functions/strtof.texi: Update mingw version.
Bruno Haible c663bd17 2025-09-16T15:07:55 pagealign_alloc tests: Fix link error. * modules/pagealign_alloc-tests (Makefile.am): Link bench-pagealign_alloc with $(LIBINTL).
Pádraig Brady 2bad49a5 2025-09-15T12:44:49 cpu-supports: relicense under LGPL * modules/cpu-supports: Relicense under LGPL to match the crc-x86_64 module.
Bruno Haible 06f481da 2025-09-15T08:32:29 pagealign_alloc tests: Fix link error. * modules/pagealign_alloc-tests (Makefile.am): Link test-pagealign_alloc with $(LIBINTL).
Pádraig Brady 4aa11814 2025-09-12T18:01:08 crc-x86_64: honor GLIBC_TUNABLES to disable acceleration * modules/crc-x86_64: Depend on cpu-supports. * lib/crc.c: Call the cpu_supports() wrapper that honors glibc hwcaps.
Pádraig Brady 16deb62f 2025-09-12T16:55:45 cpu-supports: a module to honor GLIBC_TUNABLES=glibc.cpu.hwcaps This functionality is useful to allow better test coverage at least, and may be useful for users to tune their environment, avoiding CPU throttling for example. * lib/cpu-supports.h (cpu_supports): A new wrapper that checks that the GLIBC_TUNABLES environment variable allows the hardware feature, before checking with __builtin_cpu_supports(). (cpu_may_support): Only perform the GLIBC_TUNABLES check, which is useful if using other interfaces like getauxval(). (gcc_feature_to_glibc_hwcap): An internal helper that will resolve at compile time with standard optimizations enabled. * lib/cpu-supports.c (hwcap_allowed): Query the GLIBC_TUNABLES environment variable (read once per process), to see if the passed GLIBC_HWCAP is allowed. * modules/cpu-supports: New module definition. * modules/cpu-supports-tests: New test module definition. * tests/test-cpu-supports.c: New tests.
Bruno Haible 0f6c3055 2025-09-14T03:06:51 gettext-h: Avoid -Wtrailing-whitespace in a better way. * m4/gettext_h.m4: New file, extracted from modules/gettext-h. Add back the newline at the end of the AH_BOTTOM argument. * modules/gettext-h (Files): Add it. (configure.ac): Invoke gl_GETTEXT_H.
Collin Funk f9e44d5d 2025-09-13T17:34:21 gettext-h: Avoid -Wtrailing-whitespace in config.h. * modules/gettext-h (configure.ac): Move the closing bracket and parentheses of AH_BOTTOM to the preceding line.
Bruno Haible 7f4d4edc 2025-09-14T00:25:12 pagealign_alloc: Add unit test for scalability. * tests/test-pagealign_alloc.c: New file. * modules/pagealign_alloc-tests (Files): Add it. (Depends-on): Add xalloc. (configure.ac): Check for alarm(). (Makefile.am): Arrange to compile and run test-pagealign_alloc.
Bruno Haible 94371026 2025-09-14T00:24:21 pagealign_alloc: Fix scalability problem. Reported by Harry Sintonen <sintonen@iki.fi> in <https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00108.html>. * lib/pagealign_alloc.c: Include gl_xmap.h, gl_hash_map.h. Don't include xalloc.h. (info_t, memnode_t, struct memnode_s): Remove types. (memnode_table): Remove variable. (new_memnode, get_memnode): Remove functions. (page_info_map): New variable. (pagealign_alloc): Use gl_map_put instead of new_memnode. (pagealign_free): Use gl_map_getremove instead of get_memnode. * modules/pagealign_alloc (Depends-on): Add xmap, hash-map. Remove xalloc.
Bruno Haible cea7fc1b 2025-09-13T17:34:13 gettext-h: Move fallback definition of GNULIB_TEXT_DOMAIN. * lib/gettext.h (GNULIB_TEXT_DOMAIN): Remove macro. * modules/gettext-h (configure.ac): Define it here instead.
Bruno Haible b4866d29 2025-09-11T16:59:54 pagealign_alloc: Add benchmark for comparing different implementations. * lib/pagealign_alloc.h (pagealign_impl_t): New type. (pagealign_impl): New declaration. * lib/pagealign_alloc.c: On native Windows, include <malloc.h> and <windows.h>. (pagealign_impl): New variable. (info_t): Change to a union type. (get_default_impl): New function. (pagealign_alloc, pagealign_free): Dispatch according to pagealign_impl. * tests/bench-pagealign_alloc.c: New file. * modules/pagealign_alloc-tests: New file.
Bruno Haible b1fcec6d 2025-09-10T23:22:53 Remove support for IRIX. * all-modules: Update comments. * build-aux/install-reloc: Likewise. * build-aux/reloc-ldflags: Likewise. * gnulib-tool: Likewise. * gnulib-tool.py: Likewise. * gnulib-tool.sh: Likewise. * lib/aligned-malloc.h: Likewise. * lib/boot-time.c: Likewise. * lib/c32is-impl.h: Likewise. * lib/c32srtombs-state.c: Likewise. * lib/c32to-impl.h: Likewise. * lib/c32width.c: Likewise. * lib/errno.in.h: Likewise. * lib/euidaccess.c: Likewise. * lib/fbufmode.c: Likewise. * lib/fenv-except-state-get.c: Likewise. * lib/fenv-except-state-set.c: Likewise. * lib/fenv-except-tracking-clear.c: Likewise. * lib/fenv-except-tracking-set.c: Likewise. * lib/fenv-except-tracking-test.c: Likewise. * lib/fenv-except-trapping.c: Likewise. * lib/fenv-round.c: Likewise. * lib/fflush.c: Likewise. * lib/fileblocks.c: Likewise. * lib/forkpty.c: Likewise. * lib/fpending.c: Likewise. * lib/fpurge.c: Likewise. * lib/freadable.c: Likewise. * lib/freadahead.c: Likewise. * lib/freading.c: Likewise. * lib/freadptr.c: Likewise. * lib/freadseek.c: Likewise. * lib/fseeko.c: Likewise. * lib/fseterr.c: Likewise. * lib/fsusage.c: Likewise. * lib/fwritable.c: Likewise. * lib/fwriting.c: Likewise. * lib/getdomainname.c: Likewise. * lib/idpriv-drop.c: Likewise. * lib/idpriv-droptemp.c: Likewise. * lib/limits.in.h: Likewise. * lib/mbrtoc16.c: Likewise. * lib/mbrtoc32.c: Likewise. * lib/mbsrtoc32s-state.c: Likewise. * lib/mbsrtowcs-state.c: Likewise. * lib/mbtowc-lock.h: Likewise. * lib/minmax.h: Likewise. * lib/netdb.in.h: Likewise. * lib/pipe-filter-ii.c: Likewise. * lib/posix_openpt.c: Likewise. * lib/ptsname_r.c: Likewise. * lib/readutmp.c: Likewise. * lib/readutmp.h: Likewise. * lib/resource-ext.h: Likewise. * lib/safe-read.h: Likewise. * lib/safe-write.h: Likewise. * lib/save-cwd.c: Likewise. * lib/stdbool.in.h: Likewise. * lib/striconv.c: Likewise. * lib/striconveh.c: Likewise. * lib/termcap.h: Likewise. * lib/terminfo.h: Likewise. * lib/unistd.in.h: Likewise. * lib/vasnprintf.c: Likewise. * lib/wcrtomb.c: Likewise. * lib/wcsrtombs-state.c: Likewise. * m4/fenv-environment.m4: Likewise. * m4/fenv-exceptions-state.m4: Likewise. * m4/fenv-exceptions-tracking.m4: Likewise. * m4/fenv-rounding.m4: Likewise. * m4/fmod.m4: Likewise. * m4/getdomainname.m4: Likewise. * m4/getloadavg.m4: Likewise. * m4/getopt.m4: Likewise. * m4/hypot.m4: Likewise. * m4/hypotf.m4: Likewise. * m4/hypotl.m4: Likewise. * m4/iconv.m4: Likewise. * m4/intl-thread-locale.m4: Likewise. * m4/largefile.m4: Likewise. * m4/libdl.m4: Likewise. * m4/locale-ja.m4: Likewise. * m4/locale_h.m4: Likewise. * m4/log.m4: Likewise. * m4/log10.m4: Likewise. * m4/log10f.m4: Likewise. * m4/logf.m4: Likewise. * m4/modf.m4: Likewise. * m4/modff.m4: Likewise. * m4/modfl.m4: Likewise. * m4/pthread-rwlock.m4: Likewise. * m4/semaphore.m4: Likewise. * m4/socklen.m4: Likewise. * m4/stdint.m4: Likewise. * m4/strtod.m4: Likewise. * m4/strtof.m4: Likewise. * m4/strtold.m4: Likewise. * modules/sigsegv: Likewise. * posix-modules: Likewise. * pygnulib/GLImport.py: Likewise. * tests/init.sh: Likewise. * tests/test-echo.sh: Likewise. * tests/test-isatty.c: Likewise. * tests/test-math-h.c: Likewise. * tests/test-nonblocking-pipe.h: Likewise. * tests/test-nonblocking-socket.h: Likewise. * tests/test-strtod.h: Likewise. * tests/test-strtof.h: Likewise. * tests/test-strtold.h: Likewise. * tests/test-vasnprintf.c: Likewise. * tests/test-vasnwprintf.c: Likewise.
Bruno Haible 4ecbad17 2025-09-10T23:19:32 tests: Remove support for IRIX. * tests/minus-zero.h (compute_minus_zerof, compute_minus_zerod, compute_minus_zerol): Remove code for IRIX. * tests/test-c32isgraph.c (main): Likewise. * tests/test-c32isprint.c (main): Likewise. * tests/test-getaddrinfo.c (simple): Likewise. * tests/test-isgraph_l.c (main): Likewise. * tests/test-isprint_l.c (main): Likewise. * tests/test-localeconv-mt.c (ENCODING): Likewise. * tests/test-nl_langinfo-mt.c (ENCODING): Likewise. * tests/test-setlocale_null-mt-all.c (ENCODING): Likewise. * tests/test-setlocale_null-mt-one.c (ENCODING): Likewise. * tests/test-sethostname1.c: Likewise. * tests/test-striconveha.c (main): Likewise. * tests/uniconv/test-u8-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-conv-from-enc.c (main): Likewise. * tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise. * tests/test-frexpl.c (MIN_NORMAL_EXP): Likewise. * tests/test-ilogbl.c (MIN_NORMAL_EXP): Likewise. * tests/test-logbl.c (MIN_NORMAL_EXP): Likewise. * tests/test-printf-frexpl.c (MIN_NORMAL_EXP, MIN_SUBNORMAL_EXP): Likewise. * tests/test-fma2.h (MIN_SUBNORMAL_EXP): Remove macro. (test_function): Inline its value. * tests/test-lseek.c (main): Update comments. * tests/test-sigabbrev_np.c (main): Remove cases for SIGCKPT, SIGPTINTR, SIGPTRESCHED, SIGRESTART, SIGUME. * tests/test-sigdescr_np.c (main): Likewise. * modules/math-h-c++-tests (Makefile.am): Don't link test-math-h-c++ with extra libraries.
Bruno Haible c5753f1b 2025-09-10T23:18:40 wchar-h: Remove support for IRIX. * lib/wchar.in.h: Don't set or test _@GUARD_PREFIX@_ALREADY_INCLUDING_WCHAR_H. (rpl_mbstate_t): Remove type. (wctob): Test HAVE_WCTOB instead of HAVE_DECL_WCTOB. * m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_WCTOB instead of HAVE_DECL_WCTOB. * modules/wchar-h (Makefile.am): Substitute HAVE_WCTOB instead of HAVE_DECL_WCTOB. * m4/wctob.m4 (gl_FUNC_WCTOB): Don't set HAVE_DECL_WCTOB.
Bruno Haible 7f1f5680 2025-09-10T23:08:38 getprogname: Remove support for IRIX. * lib/getprogname.c: Remove code for IRIX. * modules/getprogname (Depends-on): Likewise.
Bruno Haible 2ad62f3c 2025-09-10T23:04:35 iconv_open: Remove support for IRIX. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Remove code for IRIX. * lib/iconv_open.c (ICONV_FLAVOR_IRIX): Remove macro. * lib/iconv_open-irix.gperf: Remove file. * modules/iconv_open (Files): Remove it. (Makefile.am): Remove rule for $(srcdir)/iconv_open-irix.h. Update BUILT_SOURCES, MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST accordingly.
Bruno Haible abe5d60f 2025-09-10T23:03:55 Remove support for IRIX and Solaris <= 7 regarding old mmap. * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Don't define HAVE_MAP_ANONYMOUS. * m4/memchr.m4 (gl_FUNC_MEMCHR): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * m4/strncat.m4 (gl_FUNC_STRNCAT): Likewise. * lib/get-rusage-as.c (MAP_FILE): Remove macro. (get_rusage_as_via_setrlimit): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * modules/get-rusage-as (Depends-on): Remove 'open'. * lib/pagealign_alloc.c (MAP_FILE): Remove macro. (pagealign_alloc): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * modules/pagealign_alloc (Depends-on): Remove 'open'. * lib/vma-iter.c: Remove code for IRIX. (vma_iterate): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * lib/vma-iter.h: Remove code for IRIX. * lib/stackvma.c: Remove code for IRIX. (vma_iterate): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * lib/stackvma.h: Remove code for IRIX. * tests/mmap-anon-util.h: (zero_fd, map_flags, MAP_FILE): Remove macros. (mmap_zeromap): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * tests/zerosize-ptr.h (MAP_FILE): Remove macro. (zerosize_ptr): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * tests/jit/test-cache.c (main): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * tests/test-sigsegv-catch-segv1.c (main): Assume that mmap supports MAP_ANONYMOUS or MAP_ANON. * tests/test-sigsegv-catch-segv2.c (main): Likewise. * tests/test-sigsegv-catch-stackoverflow2.c (main): Likewise. * tests/test-vma-prot.c: Test HAVE_MMAP instead of HAVE_MAP_ANONYMOUS.
Bruno Haible a923e066 2025-09-10T22:55:08 math-h: Remove support for IRIX. * lib/math.in.h (FP_ILOGB0, FP_ILOGBNAN): Remove code for IRIX. (cbrtf): Test HAVE_CBRTF instead of HAVE_DECL_CBRTF. (cbrtl): Test HAVE_CBRTL instead of HAVE_DECL_CBRTL. (copysignf): Test HAVE_COPYSIGNF instead of HAVE_DECL_COPYSIGNF. (exp2f): Test HAVE_EXP2F instead of HAVE_DECL_EXP2F. (exp2): Test HAVE_EXP2 instead of HAVE_DECL_EXP2. (exp2l): Test HAVE_EXP2L instead of HAVE_DECL_EXP2L. (expm1l): Test HAVE_EXPM1L instead of HAVE_DECL_EXPM1L. (log2f): Test HAVE_LOG2F instead of HAVE_DECL_LOG2F. (log2): Test HAVE_LOG2 instead of HAVE_DECL_LOG2. (log2l): Test HAVE_LOG2L instead of HAVE_DECL_LOG2L. (remainder): Don't test HAVE_DECL_REMAINDER. (remainderl): Test HAVE_REMAINDERL instead of HAVE_DECL_REMAINDERL. (rintf): Test HAVE_RINTF instead of HAVE_DECL_RINTF. (roundf): Test HAVE_ROUNDF instead of HAVE_DECL_ROUNDF. (round): Test HAVE_ROUND instead of HAVE_DECL_ROUND. (roundl): Test HAVE_ROUNDL instead of HAVE_DECL_ROUNDL. (isnanf, isnand): Remove code for IRIX. * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize HAVE_COPYSIGNF, HAVE_EXP2, HAVE_EXP2F, HAVE_EXP2L, HAVE_EXPM1L, HAVE_LOG2, HAVE_LOG2F, HAVE_LOG2L, HAVE_REMAINDERL, HAVE_RINTF, HAVE_ROUND, HAVE_ROUNDF, HAVE_ROUNDL. Don't initialize HAVE_DECL_CBRTF, HAVE_DECL_CBRTL, HAVE_DECL_COPYSIGNF, HAVE_DECL_EXP2, HAVE_DECL_EXP2F, HAVE_DECL_EXP2L, HAVE_DECL_EXPM1L, HAVE_DECL_LOG2, HAVE_DECL_LOG2F, HAVE_DECL_LOG2L, HAVE_DECL_REMAINDER, HAVE_DECL_REMAINDERL, HAVE_DECL_RINTF, HAVE_DECL_ROUND, HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL. * modules/math-h (Makefile.am): Substitute HAVE_COPYSIGNF, HAVE_EXP2, HAVE_EXP2F, HAVE_EXP2L, HAVE_EXPM1L, HAVE_LOG2, HAVE_LOG2F, HAVE_LOG2L, HAVE_REMAINDERL, HAVE_RINTF, HAVE_ROUND, HAVE_ROUNDF, HAVE_ROUNDL. Don't substitute HAVE_DECL_CBRTF, HAVE_DECL_CBRTL, HAVE_DECL_COPYSIGNF, HAVE_DECL_EXP2, HAVE_DECL_EXP2F, HAVE_DECL_EXP2L, HAVE_DECL_EXPM1L, HAVE_DECL_LOG2, HAVE_DECL_LOG2F, HAVE_DECL_LOG2L, HAVE_DECL_REMAINDER, HAVE_DECL_REMAINDERL, HAVE_DECL_RINTF, HAVE_DECL_ROUND, HAVE_DECL_ROUNDF, HAVE_DECL_ROUNDL. * m4/cbrtf.m4 (gl_FUNC_CBRTF_WORKS): Remove macro. (gl_FUNC_CBRTF): Don't invoke it. Don't set HAVE_DECL_CBRTF. * m4/cbrtl.m4 (gl_FUNC_CBRTL): Don't set HAVE_DECL_CBRTL. Remove test regarding cbrtl (-0.0L). * lib/cbrtl.c (cbrtl): Remove code for IRIX. * m4/copysignf.m4 (gl_FUNC_COPYSIGNF): Don't set HAVE_DECL_COPYSIGNF. * m4/exp2f.m4 (gl_FUNC_EXP2F): Don't set HAVE_DECL_EXP2F. * m4/exp2.m4 (gl_FUNC_EXP2): Don't set HAVE_DECL_EXP2. * m4/exp2l.m4 (gl_FUNC_EXP2L): Don't set HAVE_DECL_EXP2L. Remove code for IRIX. Remove test regarding exp2l (-Inf). * m4/expm1l.m4 (gl_FUNC_EXPM1L): Don't set HAVE_DECL_EXPM1L. Remove code for IRIX. * m4/log2f.m4 (gl_FUNC_LOG2F): Don't set HAVE_DECL_LOG2F. * m4/log2.m4 (gl_FUNC_LOG2): Don't set HAVE_DECL_LOG2. * lib/log2.c (log2): Remove code for IRIX. * m4/log2l.m4 (gl_FUNC_LOG2L): Don't set HAVE_DECL_LOG2L. Remove code for IRIX. * lib/log2l.c (log2l): Remove code for IRIX. * m4/remainder.m4 (gl_FUNC_REMAINDER): Don't set HAVE_DECL_REMAINDER. * m4/remainderl.m4 (gl_FUNC_REMAINDERL): Don't set HAVE_DECL_REMAINDERL. Remove code for IRIX. * m4/rintf.m4 (gl_FUNC_RINTF): Don't set HAVE_DECL_RINTF. * m4/roundf.m4 (gl_FUNC_ROUNDF): Don't set HAVE_DECL_ROUNDF. * m4/round.m4 (gl_FUNC_ROUND): Don't set HAVE_DECL_ROUND. * m4/roundl.m4 (gl_FUNC_ROUNDL): Don't set HAVE_DECL_ROUNDL.
Bruno Haible 54ce3820 2025-09-10T22:53:35 langinfo-h: Remove support for IRIX. * lib/langinfo.in.h (T_FMT_AMPM, GNULIB_defined_T_FMT_AMPM, YESEXPR, NOEXPR, GNULIB_defined_YESEXPR): Remove macros. * m4/langinfo_h.m4 (gl_LANGINFO_H): Don't set HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR. * modules/langinfo-h (Makefile.am): Don't substitute HAVE_LANGINFO_T_FMT_AMPM, HAVE_LANGINFO_YESEXPR. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Don't test against IRIX bug. * lib/nl_langinfo.c (rpl_nl_langinfo): Remove fallback code for T_FMT_AMPM, YESEXPR, NOEXPR. * m4/rpmatch.m4 (gl_PREREQ_RPMATCH): Just test for <langinfo.h>. Don't test for YESEXPR. * lib/rpmatch.c: Test HAVE_LANGINFO_H instead of HAVE_LANGINFO_YESEXPR.
Paul Eggert d4cdb40a 2025-09-10T08:33:49 regex: fix support for overriding "gnulib" Problem reported by Pádraig Brady in: https://lists.gnu.org/r/bug-gnulib/2025-09/msg00104.html * lib/regex_internal.h [!_LIBC]: Simplify by including gettext.h rather than doing things by hand and mishandling GNULIB_TEXT_DOMAIN. (gettext_noop) [!_LIBC]: Remove, since gettext.h does that now. * modules/regex (Depends-on): Add gettext-h.
Bruno Haible df788e5d 2025-09-09T20:59:05 Remove support for OSF/1. * lib/fseeko.c: Update comments. * lib/stdbool.in.h: Likewise. * m4/threadlib.m4: Likewise. * modules/getprogname (Depends-on): Simplify platforms list.
Bruno Haible c69e5e2e 2025-09-09T12:45:16 random_r: Remove support for OSF/1. * lib/stdlib.in.h: Don't include <random.h>. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Don't initialize HAVE_RANDOM_H. * m4/random_r.m4 (gl_FUNC_RANDOM_R): Don't set HAVE_RANDOM_H. Don't set REPLACE_RANDOM_R on OSF/1. * modules/stdlib-h (Makefile.am): Don't substitute HAVE_RANDOM_H.
Bruno Haible 1dc3886a 2025-09-09T12:42:20 iconv_open: Remove support for OSF/1. * m4/iconv_open.m4 (gl_FUNC_ICONV_OPEN): Remove code for OSF/1. * lib/iconv_open.c (ICONV_FLAVOR_OSF): Remove macro. (rpl_iconv_open): Update comments. * lib/iconv_open-osf.gperf: Remove file. * modules/iconv_open (Files): Remove it. (Makefile.am): Remove rule for $(srcdir)/iconv_open-osf.h. Update BUILT_SOURCES, MOSTLYCLEANFILES, MAINTAINERCLEANFILES, EXTRA_DIST accordingly.
Bruno Haible d7cb7d64 2025-09-09T12:39:02 errno-h: Remove support for OSF/1. * lib/errno.in.h: Don't test EMULTIHOP_HIDDEN, ENOLINK_HIDDEN, EOVERFLOW_HIDDEN. * m4/errno_h.m4 (gl_REPLACE_ERRNO_VALUE): Remove macro. (gl_HEADER_ERRNO_H): Don't invoke it. * modules/errno-h (Makefile.am): Don't substitute EMULTIHOP_HIDDEN, EMULTIHOP_VALUE, ENOLINK_HIDDEN, ENOLINK_VALUE, EOVERFLOW_HIDDEN, EOVERFLOW_VALUE.
Bruno Haible 77386040 2025-09-08T15:22:46 stdcountof-h: Add support for C++ compilers that lack _Countof. * lib/stdcountof.in.h: Use include_next idiom. In C++ mode, test CXX_HAVE_STDCOUNTOF_H instead of HAVE_STDCOUNTOF_H. * m4/stdcountof_h.m4 (gl_STDCOUNTOF_H): Invoke gl_CHECK_NEXT_HEADERS. Set CXX_HAVE_STDCOUNTOF_H. Consider CXX_HAVE_STDCOUNTOF_H when setting GL_GENERATE_STDCOUNTOF_H. * modules/stdcountof-h (Depends-on): Add include_next. (Makefile.am): Substitute GUARD_PREFIX, HAVE_STDCOUNTOF_H, CXX_HAVE_STDCOUNTOF_H, INCLUDE_NEXT, PRAGMA_SYSTEM_HEADER, PRAGMA_COLUMNS, NEXT_STDCOUNTOF_H.
Collin Funk 745cf7d9 2025-09-06T10:55:40 crypto/sha3, crypto/sha3-buffer: Don't leak memory when using OpenSSL. Reported by Pádraig Brady in: <https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00058.html>. * lib/sha3.c (DEFINE_SHA3_INIT_CTX) [!HAVE_OPENSSL_SHA3]: Always return true. [HAVE_OPENSSL_SHA3]: Call EVP_MD_CTX_create to allocate an EVP_MD_CTX. (DEFINE_SHA3_BUFFER, sha3_process_bytes, sha3_process_block) [!HAVE_OPENSSL_SHA3]: Always return true. [HAVE_OPENSSL_SHA3]: Return NULL if any function calls fail. (sha3_finish_ctx) [HAVE_OPENSSL_SHA3]: Free memory allocated by EV_MD_CTX_create. (sha3_free_ctx): New function. * lib/sha3.h (struct sha3_ctx): Use a heap allocated EVP_MD_CTX. (sha3_224_init_ctx, sha3_256_init_ctx, sha3_384_init_ctx) (sha3_512_init_ctx, sha3_process_block, sha3_process_bytes): Change prototype to return a bool. Mention that they return false if an OpenSSL function fails. (sha3_finish_ctx, sha3_read_ctx, sha3_224_buffer, sha3_256_buffer) (sha3_384_buffer, sha3_512_buffer): Mention that these functions return NULL if an OpenSSL function fails. (sha3_free_ctx): New function. * lib/sha3-stream.c (sha3_xxx_stream): Expect a function parameter that returns bool. Check the return values of the sha3 functions, cleaning up memory on failure. * modules/crypto/sha3-buffer: Add bool.
Paul Eggert 36726b13 2025-09-05T13:04:09 progname: static check instead of dynamic * lib/progname.c: Don’t include stdio.h or stdlib.h. (set_program_name): Omit dynamic check that (with current glibc optimization) drags in fwrite even when unlocked I/O is wanted. The check was not all that useful in practice and we now have a static one anyway (which admittedly is not that useful either). Prefer memcmp to strncmp when equivalent, for clarity. * lib/progname.h: Include arg-nonnull.h and declare set_program_name with _GL_ARG_NONNULL. * modules/progname (Depends-on): Add snippet/arg-nonnull.
Bruno Haible 11765a0a 2025-09-05T11:33:44 propername-lite: Fix compilation error on Haiku r1/beta4 (regr. today). * lib/propername-lite.c: Test HAVE_UCHAR_H instead of relying on __has_include. * modules/propername-lite (Depends-on): Add uchar-h.
Paul Eggert c02885a5 2025-09-05T00:15:38 propername-lite: lighten it up some more This should help GNU diffutils avoid some Gnulib modules. * lib/propername-lite.c: Do not include c-strcase.h, localcharset.h. Include <uchar.h> and mbrtowc32 if available. Use __has_include to detect this; that should be good enough nowadays. Use native mbrtoc32 instead of Gnulib replacement; that should be good enough. 2nd arg is now possibly unused. Use mbrtoc32, if available, to determine whether UTF-8 is being used, to avoid dependencies. * modules/propername-lite (Depends-on): Remove localcharset, c-strcasecmp.
Paul Eggert 751e42b0 2025-09-04T21:18:30 quotearg: do not depend on localcharset * lib/quotearg.c: Do not include localcharset.h. (gettext_quote): Do not use locale_charset; instead, use mbrtoc32 to determine whether the character set uses UTF-8. Treat GB-18030 like similar encodings, as it is not worth the trouble of special-casing: its special-case code has been broken since 2011, nobody cared enough to report the bug, and the idea that someone would use GB-18030 without translations is weird anyway. * modules/quotearg (Depends-on): Remove localcharset.
Collin Funk 06e7da51 2025-09-02T19:16:17 crypto/sha3-buffer: Don't abort on OOM. * modules/crypto/sha3-buffer (Depends-on): Add stddef-h. * lib/sha3.h: Include stddef.h. (sha3_ctx): Use a stack allocated buffer used to cast to store an EVP_MD_CTX. * lib/sha3.c (DEFINE_SHA3_INIT_CTX): Initialize the structure to zero. Use the stack allocated buffer instead of calling EVP_MD_CTX_create. (sha3_read_ctx): Just call sha3_finish_ctx similar to the other crypto modules. (sha3_finish_ctx): Remove call to EVP_MD_CTX_free. Call EVP_DigestFinal_ex.
Collin Funk a351f5c2 2025-09-01T22:57:22 crypto/sha3-buffer: Add support for OpenSSL. * lib/sha3.c (DEFINE_SHA3_INIT_CTX, sha3_read_ctx, sha3_finish_ctx) (DEFINE_SHA3_BUFFER, sha3_process_bytes, sha3_process_block) [HAVE_OPENSSL_SHA3]: Define these functions/macros using the OpenSSL EVP API. * lib/sha3.h [HAVE_OPENSSL_SHA3]: Include <openssl/evp.h>. (struct sha3_ctx) [HAVE_OPENSSL_SHA3]: Only store a pointer to an EVP_MD_CTX in the structure. * m4/gl-openssl.m4 (gl_CRYPTO_CHECK): If the argument is SHA3 check for EVP_sha3_224. * m4/sha3.m4 (gl_SHA3): New file, based on m4/sha512.m4. * modules/crypto/sha3-buffer (Files): Add m4/gl-openssl.m4 and m4/sha3.m4. (configure.ac): Invoke gl_SHA3. Remove gl_BIGENDIAN. * modules/crypto/sha3-buffer-tests (Makefile.am): Link to @LIB_CRYPTO@.
Bruno Haible 114aaaae 2025-09-02T16:08:16 tests: Fix potential link errors. * modules/mbiter-bench-tests (Makefile.am): Link the benchmark program with $(LIBICONV). * modules/mbiterf-bench-tests (Makefile.am): Likewise. * modules/mbuiter-bench-tests (Makefile.am): Likewise. * modules/mbuiterf-bench-tests (Makefile.am): Likewise. * modules/mcel-bench-tests (Makefile.am): Likewise. * modules/mbswidth-bench-tests (Makefile.am): Likewise.
Bruno Haible 8a61720a 2025-09-02T16:05:31 Clarify link dependency towards libiconv. * modules/propername (Link): Document requirement to link with $(LIBICONV) or $(LTLIBICONV). * modules/xstriconv (Link): Likewise.
Bruno Haible eae5c3f1 2025-09-02T15:48:04 getlogin tests: Fix link error on musl libc. * modules/getlogin-tests (Makefile.am): Link test-getlogin with $(LIBINTL).
Bruno Haible 9266510b 2025-09-02T14:24:55 Clarify link dependency towards libintl on FreeBSD, Solaris, etc. * modules/acl (Link): Document requirement to link with $(LIBINTL) or $(LTLIBINTL). * modules/areadlinkat (Link): Likewise. * modules/areadlinkat-with-size (Link): Likewise. * modules/argmatch (Link): Likewise. * modules/argp (Link): Likewise. * modules/argp-version-etc (Link): Likewise. * modules/backup-rename (Link): Likewise. * modules/backupfile (Link): Likewise. * modules/bitset (Link): Likewise. * modules/bitsetv (Link): Likewise. * modules/c-xvasprintf (Link): Likewise. * modules/canon-host (Link): Likewise. * modules/canonicalize (Link): Likewise. * modules/chdir-long (Link): Likewise. * modules/chmodat (Link): Likewise. * modules/chownat (Link): Likewise. * modules/classpath (Link): Likewise. * modules/clean-temp (Link): Likewise. * modules/clean-temp-simple (Link): Likewise. * modules/closein (Link): Likewise. * modules/closeout (Link): Likewise. * modules/copy-file (Link): Likewise. * modules/csharpcomp (Link): Likewise. * modules/csharpexec (Link): Likewise. * modules/cygpath (Link): Likewise. * modules/dfa (Link): Likewise. * modules/dirname (Link): Likewise. * modules/error (Link): Likewise. * modules/exclude (Link): Likewise. * modules/execute (Link): Likewise. * modules/faccessat (Link): Likewise. * modules/fchmodat (Link): Likewise. * modules/fchownat (Link): Likewise. * modules/fdopendir (Link): Likewise. * modules/fdutimensat (Link): Likewise. * modules/file-set (Link): Likewise. * modules/file-type (Link): Likewise. * modules/filenamecat (Link): Likewise. * modules/findprog (Link): Likewise. * modules/fstatat (Link): Likewise. * modules/fstrcmp (Link): Likewise. * modules/fts (Link): Likewise. * modules/getcwd (Link): Likewise. * modules/getlogin (Link): Likewise. * modules/getopt-gnu (Link): Likewise. * modules/getopt-posix (Link): Likewise. * modules/getumask (Link): Likewise. * modules/getusershell (Link): Likewise. * modules/glob (Link): Likewise. * modules/hamt (Link): Likewise. * modules/hash-triple (Link): Likewise. * modules/hashcode-file-inode (Link): Likewise. * modules/human (Link): Likewise. * modules/idcache (Link): Likewise. * modules/issymlinkat (Link): Likewise. * modules/javacomp (Link): Likewise. * modules/javaexec (Link): Likewise. * modules/javaversion (Link): Likewise. * modules/kwset (Link): Likewise. * modules/lchmod (Link): Likewise. * modules/linebuffer (Link): Likewise. * modules/linkat (Link): Likewise. * modules/list-c++ (Link): Likewise. * modules/long-options (Link): Likewise. * modules/map-c++ (Link): Likewise. * modules/mem-hash-map (Link): Likewise. * modules/mkancesdirs (Link): Likewise. * modules/mkdir-p (Link): Likewise. * modules/mkdirat (Link): Likewise. * modules/mkfifoat (Link): Likewise. * modules/modechange (Link): Likewise. * modules/mountlist (Link): Likewise. * modules/obstack (Link): Likewise. * modules/obstack-printf (Link): Likewise. * modules/obstack-printf-gnu (Link): Likewise. * modules/obstack-printf-posix (Link): Likewise. * modules/obstack-zprintf (Link): Likewise. * modules/obstack-zprintf-gnu (Link): Likewise. * modules/obstack-zprintf-posix (Link): Likewise. * modules/omap-c++ (Link): Likewise. * modules/openat (Link): Likewise. * modules/openat-die (Link): Likewise. * modules/openat-safer (Link): Likewise. * modules/opendirat (Link): Likewise. * modules/oset-c++ (Link): Likewise. * modules/pagealign_alloc (Link): Likewise. * modules/parse-datetime (Link): Likewise. * modules/parse-datetime2 (Link): Likewise. * modules/pipe-filter-gi (Link): Likewise. * modules/pipe-filter-ii (Link): Likewise. * modules/propername (Link): Likewise. * modules/propername-lite (Link): Likewise. * modules/quote (Link): Likewise. * modules/quotearg (Link): Likewise. * modules/quotearg-simple (Link): Likewise. * modules/readlinkat (Link): Likewise. * modules/readtokens (Link): Likewise. * modules/readtokens0 (Link): Likewise. * modules/readutmp (Link): Likewise. * modules/regex-quote (Link): Likewise. * modules/relocatable-lib (Link): Likewise. * modules/relocatable-prog (Link): Likewise. * modules/renameat (Link): Likewise. * modules/renameatu (Link): Likewise. * modules/same (Link): Likewise. * modules/save-cwd (Link): Likewise. * modules/savedir (Link): Likewise. * modules/savewd (Link): Likewise. * modules/selinux-at (Link): Likewise. * modules/set-c++ (Link): Likewise. * modules/sh-quote (Link): Likewise. * modules/sigpipe-die (Link): Likewise. * modules/spawn-pipe (Link): Likewise. * modules/stack (Link): Likewise. * modules/statat (Link): Likewise. * modules/string-desc-quotearg (Link): Likewise. * modules/strsignal (Link): Likewise. * modules/supersede (Link): Likewise. * modules/symlinkat (Link): Likewise. * modules/system-quote (Link): Likewise. * modules/term-style-control (Link): Likewise. * modules/timevar (Link): Likewise. * modules/trim (Link): Likewise. * modules/unicodeio (Link): Likewise. * modules/unlinkat (Link): Likewise. * modules/userspec (Link): Likewise. * modules/utimecmp (Link): Likewise. * modules/utimensat (Link): Likewise. * modules/vc-mtime (Link): Likewise. * modules/verror (Link): Likewise. * modules/version-etc (Link): Likewise. * modules/version-etc-fsf (Link): Likewise. * modules/wait-process (Link): Likewise. * modules/windows-cygpath (Link): Likewise. * modules/xalignalloc (Link): Likewise. * modules/xalloc (Link): Likewise. * modules/xalloc-die (Link): Likewise. * modules/xbinary-io (Link): Likewise. * modules/xconcat-filename (Link): Likewise. * modules/xfreopen (Link): Likewise. * modules/xgetcwd (Link): Likewise. * modules/xgetcwd-lgpl (Link): Likewise. * modules/xgetdomainname (Link): Likewise. * modules/xgetgroups (Link): Likewise. * modules/xgethostname (Link): Likewise. * modules/xhash (Link): Likewise. * modules/xlist (Link): Likewise. * modules/xmalloca (Link): Likewise. * modules/xmap (Link): Likewise. * modules/xmemcoll (Link): Likewise. * modules/xmemdup0 (Link): Likewise. * modules/xomap (Link): Likewise. * modules/xoset (Link): Likewise. * modules/xprintf (Link): Likewise. * modules/xprintf-gnu (Link): Likewise. * modules/xprintf-posix (Link): Likewise. * modules/xreadlink (Link): Likewise. * modules/xreadlinkat (Link): Likewise. * modules/xset (Link): Likewise. * modules/xsetenv (Link): Likewise. * modules/xstdopen (Link): Likewise. * modules/xstrerror (Link): Likewise. * modules/xstriconv (Link): Likewise. * modules/xstring-buffer (Link): Likewise. * modules/xstring-buffer-reversed (Link): Likewise. * modules/xstring-desc (Link): Likewise. * modules/xstrndup (Link): Likewise. * modules/xstrtol-error (Link): Likewise. * modules/xsublist (Link): Likewise. * modules/xvasprintf (Link): Likewise. * modules/xvasprintf-gnu (Link): Likewise. * modules/xvasprintf-posix (Link): Likewise. * modules/yesno (Link): Likewise.
Bruno Haible 6f9a5fab 2025-09-02T00:12:43 uchar-h: Fix compilation error of <cuchar> in C++ mode on macOS 15. * lib/uchar.in.h: In C++ mode, use CXX_HAVE_UCHAR_H instead of HAVE_UCHAR_H. * m4/uchar_h.m4 (gl_UCHAR_H): Set CXX_HAVE_UCHAR_H. * modules/uchar-h (Makefile.am): Substitute CXX_HAVE_UCHAR_H.
Collin Funk 3a3a6353 2025-08-31T14:21:02 crypto/sha3: New module. * modules/crypto/sha3: New file. * lib/sha3-stream.c: New file, based on sha512-stream.c. * lib/sha3.h (sha3_224_stream, sha3_256_stream, sha3_384_stream) (sha3_512_stream): New declarations.
Collin Funk ec500f50 2025-08-31T12:51:14 crypto/sha3-buffer: Add tests. * modules/crypto/sha3-buffer-tests: New file. * tests/test-sha3-224-buffer.c: Likewise. * tests/test-sha3-256-buffer.c: Likewise. * tests/test-sha3-384-buffer.c: Likewise. * tests/test-sha3-512-buffer.c: Likewise. * tests/bench-sha3-224.c: Likewise. * tests/bench-sha3-256.c: Likewise. * tests/bench-sha3-384.c: Likewise. * tests/bench-sha3-512.c: Likewise.
Collin Funk 4cdf7734 2025-08-31T11:43:37 crypto/sha3-buffer: New module. * lib/u64.h (u64getlo, u64not): New functions. * lib/sha3.c: New file, based on lib/sha512.c. * lib/sha3.h: New file, based on lib/sha512.h. * modules/crypto/sha3-buffer: New file.
Paul Eggert a7cc3c03 2025-08-31T07:54:18 u64: avoid theoretical problem with >64-bit int * lib/u64.h: Include limits.h, for INT_MAX. Use uint64_t only if INT_MAX < UINT64_MAX, to avoid undefined behavior on theoretical platforms where adding two uint64_t expressions can have undefined behavior on signed integer overflow.
Bruno Haible 3d4a8bff 2025-08-26T00:02:22 nstrftime tests: Test in the UTF-8 environment on native Windows. Prompted by <https://debbugs.gnu.org/79296>. * tests/test-nstrftime-w32utf8.sh: New file. * tests/test-nstrftime-w32utf8.c: New file. * modules/nstrftime-tests (Files): Add them. Add windows-utf8.rc, windows-utf8.manifest, m4/windows-rc.m4. (configure.ac): Invoke gl_WINDOWS_RC. (Makeile.am): Arrange to build test-nstrftime-w32utf8 and run test-nstrftime-w32utf8.sh.
Bruno Haible 4aa26bff 2025-08-18T15:44:48 sys_stat: Fix namespace pollution on native Windows. * lib/issymlink.h: New file, extracted from lib/sys_stat.in.h. * lib/issymlink.c: Include issymlink.h instead of <sys/stat.h>. * lib/issymlinkat.c: Likewise. * modules/issymlink (Files): Add lib/issymlink.h. (Depends-on): Add extern-inline. (configure.ac): Use gl_MODULE_INDICATOR. (Include): Set to "issymlink.h". * modules/issymlinkat (Files): Add lib/issymlink.h. (Depends-on): Add extern-inline. (configure.ac): Use gl_MODULE_INDICATOR. (Include): Set to "issymlink.h". * lib/sys_stat.in.h: Don't include <errno.h>, <unistd.h>. (_GL_ISSYMLINK_INLINE, _GL_ISSYMLINKAT_INLINE): Remove macros. (issymlink, issymlinkat): Remove functions. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_REQUIRE_DEFAULTS): Don't initialize GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT. * modules/sys_stat-h (Depends-on): Remove extern-inline. (Makefile.am): Don't substitute GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT. * lib/chown.c: Include issymlink.h. * lib/lchown.c: Likewise. * lib/lchmod.c: Likewise. * lib/fchmodat.c: Likewise. * lib/rename.c: Likewise. * lib/renameatu.c: Likewise. * lib/unlink.c: Likewise. * lib/unlinkat.c: Likewise. * lib/utimens.c: Likewise.
Bruno Haible 4890a0c5 2025-08-14T22:34:17 utimens: Use issymlink. * lib/utimens.c (lutimens): Use issymlink instead of readlink. * modules/utimens (Depends-on): Remove readlink. Add issymlink.
Bruno Haible 8f612012 2025-08-14T22:31:48 unlinkat: Use issymlinkat. * lib/unlinkat.c (rpl_unlinkat): Use issymlinkat instead of readlinkat. * modules/unlinkat (Depends-on): Remove readlinkat. Add issymlinkat.
Bruno Haible e71bb18b 2025-08-14T22:30:18 unlink: Use issymlink. * lib/unlink.c (rpl_unlink): Use issymlink instead of readlink. * modules/unlink (Depends-on): Remove readlink. Add issymlink.
Bruno Haible f8b1b162 2025-08-14T22:23:29 renameatu: Use issymlinkat. * lib/renameatu.c (renameatu): Use issymlinkat instead of readlinkat. * modules/renameatu (Depends-on): Remove readlinkat. Add issymlinkat.
Bruno Haible 3dbfcbf5 2025-08-14T22:21:23 rename: Use issymlink. * lib/rename.c (rpl_rename): Use issymlink instead of readlink. * modules/rename (Depends-on): Remove readlink. Add issymlink.
Bruno Haible 2f0b2cce 2025-08-14T22:18:57 fchmodat: Use issymlinkat. * lib/fchmodat.c (fchmodat): Use issymlinkat instead of readlinkat. * modules/fchmodat (Depends-on): Add issymlinkat, openat.
Bruno Haible 2a98a9ae 2025-08-14T22:16:23 lchmod: Use issymlink, issymlinkat. * lib/lchmod.c (lchmod): Use issymlink instead of readlink and issymlinkat instead of readlinkat. * modules/lchmod (Depends-on): Remove readlink. Add issymlink, issymlinkat.
Bruno Haible f478e006 2025-08-14T21:59:20 lchown: Use issymlink. * lib/lchown.c (lchown): Use issymlink instead of readlink. * modules/lchown (Depends-on): Remove readlink. Add issymlink.
Bruno Haible 3cbc197f 2025-08-14T21:54:44 chown: Use issymlink. * lib/chown.c (rpl_chown): Use issymlink instead of readlink. * modules/chown (Depends-on): Add issymlink.
Bruno Haible 16db5fb3 2025-08-14T18:36:00 issymlink, issymlinkat: New modules. * lib/sys_stat.in.h: Invoke _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. Include <errno.h>, <unistd.h>. (_GL_ISSYMLINK_INLINE, _GL_ISSYMLINKAT_INLINE): New macros. (issymlink, issymlinkat): New declarations. * lib/unistd.in.h: Do the #include <fcntl.h>, when needed for O_CLOEXEC, at the end of the file. So that when <fcntl.h> includes <sys/stat.h>, the declarations of readlink() and readlinkat() on native Windows are already present. * lib/issymlink.c: New file. * lib/issymlinkat.c: New file. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_REQUIRE_DEFAULTS): Initialize GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT. * modules/sys_stat-h (Depends-on): Add extern-inline. (Makefile.am): Substitute GNULIB_ISSYMLINK, GNULIB_ISSYMLINKAT. * modules/issymlink: New file. * modules/issymlinkat: New file.
Paul Eggert 64d97a06 2025-08-11T17:22:03 Prefer readlink to lstat+S_ISLNK when easy To test for a symlink, use readlink, not lstat+S_ISLNK, when the lstat is used only for the symlink test. This avoids EOVERFLOW issues. * lib/lchown.c (rpl_lchown) [CHOWN_CHANGE_TIME_BUG]: * lib/rename.c (rpl_rename): [!(_WIN32 && !__CYGWIN__) && (RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG || RENAME_HARD_LINK_BUG)]: * lib/renameatu.c (renameatu): [HAVE_RENAMEAT && RENAME_TRAILING_SLASH_SOURCE_BUG]: * lib/unlink.c (rpl_unlink): * lib/unlinkat.c (rpl_unlinkat): * lib/utimens.c (lutimens) [!HAVE_LUTIMENS]: Prefer readlink to lstat+S_ISLNK. * modules/lchown, modules/rename, modules/unlink, modules/utimens: (Depends-on): Add readlink. * modules/unlinkat (Depends-on): Add fstatat, readlinkat.
Bruno Haible 93a89add 2025-08-10T13:40:48 test-framework-sh: Ensure TESTS_ENVIRONMENT gets augmented in gltests/. * modules/test-framework-sh (Applicability): New section.
Bruno Haible 19b6bc71 2025-08-05T23:16:15 git-merge-changelog: Remove module. It is now available through $ git clone https://git.savannah.gnu.org/git/vc-changelog.git see https://gitweb.git.savannah.gnu.org/gitweb/?p=vc-changelog.git . * lib/git-merge-changelog.c: Remove file. * modules/git-merge-changelog: Remove file. * NEWS: Mention the change.
Bruno Haible 7e5312be 2025-08-05T01:20:58 nlcanon tests: Fix last commit. * tests/init.sh (setup_): Revert last change. * modules/test-framework-sh (Makefile.am): Augment TESTS_ENVIRONMENT here. * modules/nlcanon-tests (Makefile.am): Don't augment TESTS_ENVIRONMENT here.
Bruno Haible c7fd1990 2025-08-04T13:23:54 nlcanon: Add tests. * tests/test-nlcanon.sh: New file. * modules/nlcanon-tests: New file. * tests/init.sh (setup_): Adjust also top_builddir, if set.
Bruno Haible ef6e2fcf 2025-08-04T12:44:14 nlcanon: New module. * build-aux/nlcanon.sh.in: New file, with a function func_tmpdir taken from build-aux/csharpexec.sh.in. * modules/nlcanon: New file.
Paul Eggert 2410984b 2025-08-02T10:25:13 Shorten GCC bug URLs
Paul Eggert 948ba801 2025-08-01T16:01:13 copy-file-range: work around glibc bug 33245 Problem reported by Leah Neukirchen <https://bugs.gnu.org/79139>. * lib/copy-file-range.c: Include sys-limits.h. (copy_file_range) [glibc 2.42 and earlier]: Copy at most SYS_BUFSIZE_MAX bytes. * m4/copy-file-range.m4 (gl_FUNC_COPY_FILE_RANGE): Replace on glibc platforms, as well as on Linux platforms. * modules/copy-file-range (Files): Add lib/sys-limits.h.
Paul Eggert 626f2299 2025-08-01T14:46:51 copy-file-range: tune for more-modern kernels * lib/copy-file-range.c [__linux__ && HAVE_COPY_FILE_RANGE]: Include <linux/version.h>. Include <sys/utsname.h> only for kernel 5.2 and earlier. (CHECK_LINUX_KERNEL_VERSION): New macro. (copy_file_range) [__linux__ && HAVE_COPY_FILE_RANGE]: Call utsname only when built for kernel 5.2 and earlier. (copy_file_range) [!__linux__ && HAVE_COPY_FILE_RANGE]: Use underlying copy_file_range. This doesn’t change behavior since the code is not compiled in this case, but it makes the code a bit cleaner. * modules/copy-file-range (Depends-on): Add bool.
Bruno Haible ca5ebe4b 2025-07-29T22:31:13 nstrftime: Handle non-Gregorian calendars the same way on all platforms. Suggested by Collin Funk. * modules/nstrftime-limited: New file, based on modules/nstrftime. * modules/nstrftime (Depends-on): Add nstrftime-limited. Add localename-unsafe. Remove localename-unsafe-limited. (configure.ac): Invoke gl_MODULE_INDICATOR. (Makefile.am): Don't add nstrftime.c to lib_SOURCES; this would conflict with modules/nstrftime-limited. (Link): Add $(LIBTHREAD). * lib/strftime.c (SUPPORT_NON_GREG_CALENDARS_IN_STRFTIME): Don't force to false if GNULIB_NSTRFTIME is defined. * modules/nstrftime-tests (Makefile.am): Link test-nstrftime, test-nstrftime-?? with $(LIBTHREAD).
Bruno Haible 287e6b88 2025-07-29T16:28:48 git-merge-changelog: Fix upstream/downstream heuristic for "git pull". * lib/git-merge-changelog.c: Suggest to pass %Y as 4th parameter. Include <errno.h>, spawn-pipe.h, wait-process.h, xvasprintf.h, c-ctype.h. (_): New macro. (execute_and_read_line): New function, from lib/javacomp.c. (is_all_hex_digits): New function. (long_options): Moved into 'main'. (usage): Document the --debug option. (main): Accept a --debug option and turn on debugging at runtime instead of compile-time. Accept an optional other_conflict_label parameter. Improve 'downstream' determination using two heuristics. * modules/git-merge-changelog (Depends-on): Add spawn-pipe, wait-process, xvasprintf, c-ctype.
Collin Funk f07c4559 2025-07-21T19:04:09 sys_un-h: Make sure that the 'sys' subdirectory is created. * modules/sys_un-h (Makefile.am): Make the 'sys' subdirectory. Remove @NMD@ that is not applicable to subdirectories.