|
abd86e80
|
2025-10-17T16:45:30
|
|
savedir: Add tests.
* tests/test-savedir.c: New file.
* modules/savedir-tests: Likewise.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
a3e20644
|
2025-09-28T13:30:15
|
|
xsetenv: Revert the previous change.
* modules/xsetenv (Description): Restore the description of unsetenv.
|
|
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.
|
|
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.
|
|
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.
|
|
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).
|
|
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@.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
c663bd17
|
2025-09-16T15:07:55
|
|
pagealign_alloc tests: Fix link error.
* modules/pagealign_alloc-tests (Makefile.am): Link
bench-pagealign_alloc with $(LIBINTL).
|
|
2bad49a5
|
2025-09-15T12:44:49
|
|
cpu-supports: relicense under LGPL
* modules/cpu-supports: Relicense under LGPL
to match the crc-x86_64 module.
|
|
06f481da
|
2025-09-15T08:32:29
|
|
pagealign_alloc tests: Fix link error.
* modules/pagealign_alloc-tests (Makefile.am): Link test-pagealign_alloc
with $(LIBINTL).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
7f1f5680
|
2025-09-10T23:08:38
|
|
getprogname: Remove support for IRIX.
* lib/getprogname.c: Remove code for IRIX.
* modules/getprogname (Depends-on): Likewise.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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@.
|
|
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.
|
|
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.
|
|
eae5c3f1
|
2025-09-02T15:48:04
|
|
getlogin tests: Fix link error on musl libc.
* modules/getlogin-tests (Makefile.am): Link test-getlogin with
$(LIBINTL).
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
93a89add
|
2025-08-10T13:40:48
|
|
test-framework-sh: Ensure TESTS_ENVIRONMENT gets augmented in gltests/.
* modules/test-framework-sh (Applicability): New section.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
2410984b
|
2025-08-02T10:25:13
|
|
Shorten GCC bug URLs
|
|
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.
|
|
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.
|
|
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).
|
|
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.
|
|
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.
|