lib

Branch


Log

Author Commit Date CI Message
Paul Eggert 39540147 2025-10-23T23:10:44 doc: allow for _FORTIFY_SOURCE = 3 Problem reported by Basil L. Contovounesios in: https://lists.gnu.org/r/bug-gnulib/2025-10/msg00068.html
Bruno Haible e1d73817 2025-10-23T16:14:15 stdioext: Add support for OpenBSD >= 7.8. * lib/stdio-impl.h (fp_): Separate definitions for OpenBSD from those for Android. Add definition for OpenBSD >= 7.8. * lib/fflush.c (clear_ungetc_buffer, disable_seek_optimization, update_fpos_cache, rpl_fflush): Don't test for __OpenBSD__, since OpenBSD <= 7.7 is covered by the __sferror test and OpenBSD >= 7.8 does not need the workarounds. * lib/fseeko.c (fseeko): Likewise. * lib/fpurge.c (fpurge): Likewise.
Bruno Haible 3813b2c4 2025-10-23T16:06:22 stdioext: Revert unneeded changes in 2025-07-20 commit. * lib/fpending.c (__fpending): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __fpending. * lib/freadahead.c (freadahead): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __freadahead. * lib/freading.c (freading): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __freading. * lib/freadptr.c (freadptr): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __freadptr. * lib/freadseek.c (freadptrinc): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __freadptrinc. * lib/fseterr.c (fseterr): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __fseterr. * lib/fwriting.c (fwriting): Don't test for __OpenBSD__, since OpenBSD >= 7.6 already has __fwriting.
Bruno Haible 3e61e314 2025-10-21T09:47:13 fts: Attempt to silence Coverity Scan. * lib/fts.c (fts_safe_changedir): Add an assertion.
Bruno Haible 2c58a43a 2025-10-21T09:40:46 glob: Fix a memory leak. Found by Coverity. * lib/glob.c (__glob): Add scratch_buffer_free invocation, to match scratch_buffer_init invocation.
Collin Funk 9be0da9b 2025-10-14T18:30:47 getdelim: Avoid the symbol __getdelim with ASAN (regr. 2025-10-13). * lib/stdio.in.h (rpl_getdelim) [__GLIBC__ >= 2 && !__ADDRESS_SANITIZER__]: Don't define to __getdelim so that ___interceptor_getdelim doesn't override our symbol.
Collin Funk f1a18f6f 2025-10-10T22:34:19 glob: Prevent a stack overflow with many slashes. * lib/glob.c (__glob): Strip trailing slashes before making the recursive call. * m4/glob.m4 (gl_GLOB): Check for the glibc bug. * doc/posix-functions/glob.texi: Mention the bug.
Bruno Haible b028dcc8 2025-10-13T12:41:39 getline: Fix compilation error in C++ mode (regression 2025-10-10). * lib/stdio.in.h (getdelim): On glibc, define __getdelim instead of rpl_getdelim. (getline): In C++ mode, define getline as an inline function instead of as a macro. * lib/getdelim.c (getdelim): On glibc, don't test whether fp is NULL.
Bruno Haible 5124e917 2025-10-08T14:10:13 stdcountof-h: Add support for string literal arguments in C++ mode. Reported by Alejandro Colomar <alx@kernel.org> in <https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00010.html>. * lib/stdcountof.in.h (_gl_array_type_test): Add a partial instantiation for string literals.
Bruno Haible 6d64a315 2025-10-04T04:21:50 localename-unsafe: Fix handling of yue-Hans locale on macOS. Reported by Grisha Levit <grishalevit@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnulib/2025-10/msg00002.html>. * lib/localename-unsafe.c (langtag_entry): Adjust array dimensions of elements.
Bruno Haible 3f2b934a 2025-10-03T21:50:13 unistr, unigbrk: Fix compilation error in C++ mode (regr. 2025-02-09). Reported by Ryan Carsten Schmidt <gnulib@ryandesign.com> at <https://savannah.gnu.org/bugs/?67576>. * lib/unistr.in.h (u*_check, u*_chr, u*_next, u*_prev, u*_strchr, u*_strrchr, u*_strpbrk, u*_strstr): Define C++ templates outside of 'extern "C"' block. * lib/unigbrk.in.h (u*_grapheme_next, u*_grapheme_prev): Likewise.
Karl Berry 7eeb8077 2025-09-25T07:44:28 autoupdate
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 e3fb6645 2025-09-23T21:44:46 gen-uni-tables: Fix compilation error (regression 2025-09-17). * lib/gen-uni-tables.c (streq, memeq): Move definitions before their first use.
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.
Paul Eggert 0b099a20 2025-09-21T18:56:18 fchownat: fix recently introduced flag typo Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2025-09/msg00282.html * lib/fchownat.c (rpl_fchownat): Fix typo by passing our flag to fstatat.
Bruno Haible 7b85c2a8 2025-09-21T20:40:43 lchown: Fix compilation error on macOS (regression today). * lib/lchown.c: Include stat-time.h.
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 8ebd5a9a 2025-09-20T15:49:50 nl_langinfo: Work around nl_langinfo multithread-safety bug on macOS 26. * m4/nl_langinfo.m4 (gl_FUNC_NL_LANGINFO): Set NL_LANGINFO_MTSAFE to 0 on macOS. * lib/nl_langinfo.c (ITEMS): Define appropriately on macOS. * doc/posix-functions/nl_langinfo.texi: Document the macOS bug.
Paul Eggert ad4d97cb 2025-09-20T00:31:08 fchownat: fix unlikely EOVERFLOW bug * lib/fchownat.c (rpl_fchownat) [CHOWN_TRAILING_SLASH_BUG]: Do the right thing if fstatat fails with EOVERFLOW. This matters only on obsolete platforms like Solaris 9, but it’s easy to do it right. Simplify neighboring code.
Bruno Haible dc1dc563 2025-09-20T00:03:51 stringeq: Fix use in C++ mode. * lib/string.in.h (memeq, streq): Define with "C" linkage.
Pádraig Brady 9d7a6e01 2025-09-18T14:33:49 localcharset: fix macOS build * lib/localcharset.c: s/ostreq/streq/ typo.
Pádraig Brady 395bd7a7 2025-09-17T19:09:54 cpu-supports: support checks on any architecture * lib/cpu-supports.h (gcc_feature_to_glibc_hwcap): Define the map for all architectures, because for example one can build and detect and run x86_64 intrinsics in code built with -m32. This should not add runtime overhead, as mentioned previously the map resolves at compile time with standard optimizations.
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 9bc29cb1 2025-09-17T18:28:35 Add copyright notices. * lib/string.c: Add copyright notice. Use <string.h>, not "string.h".
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.
Bruno Haible c172e838 2025-09-16T22:04:46 strerror_r-posix: Fix truncation code (regression today). * lib/strerror_r.c (strerror_r): Fix use of snprintf again.
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.
Paul Eggert 9b534211 2025-09-16T09:14:38 mcel: document that errno is unspecified
Bruno Haible bbd69592 2025-09-16T16:51:55 strerror_r: Ensure a trailing NUL when truncating. * lib/strerror_r.c (strerror_r): Fix use of snprintf.
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 d3bcecb9 2025-09-14T18:29:29 gettext-h: Avoid warning with gcc < 4.2. Reported by Orgad Shaneh <orgads@gmail.com> in <https://lists.gnu.org/archive/html/bug-gnulib/2025-09/msg00183.html>. * lib/gettext.h (gettext, dgettext, dcgettext): Don't use attribute __gnu_inline__ with gcc < 4.2.
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 bcc735c1 2025-09-14T00:25:21 pagealign_alloc: Don't waste large amounts of memory (regr. 2025-09-10). * lib/pagealign_alloc.c (get_default_impl): Choose a default that does not waste large amounts of memory.
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 8bca9f3c 2025-09-13T22:36:06 pagealign_alloc: Fix crashes (regression 2025-09-11). * lib/pagealign_alloc.c (pagealign_alloc, pagealign_free): Add missing 'break' statements. For PA_IMPL_VIRTUAL_ALLOC, don't use new_memnode and get_memnode.
Paul Eggert 226b0092 2025-09-13T13:01:00 endian: port to Solaris 11.4 and macOS 15 Problem reported by Bruno Haible in: https://lists.gnu.org/r/bug-gnulib/2025-09/msg00174.html * lib/byteswap.in.h (_GL_BYTESWAP_INLINE): Define before including stdint.h. * lib/endian.in.h (bswap_16, bswap_32, bswap_64): Declare as _GL_BYTESWAP_INLINE rather than as extern. Conditionalize these decls with _GL_BYTESWAP_INLINE rather than with _GL_BYTESWAP_H.
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 978871e5 2025-09-13T01:44:53 pagealign_alloc: Improve documentation. Suggested by Paul Eggert. * lib/pagealign_alloc.h: Document that this module is not multithread- safe.
Bruno Haible d5d4cd09 2025-09-13T01:31:23 vma-iter: Improve on OpenBSD. * lib/vma-iter.c (vma_iterate_bsd): Call sysctl() in a loop, not just once. (vma_iterate) [__OpenBSD__]: Don't return the interval that ends at 0.
Paul Eggert 875d0f9b 2025-09-11T12:49:07 endian: port to gcc 4.1 + glibc 2.4 Problem reported by Orgad Shaneh in: https://lists.gnu.org/r/bug-gnulib/2025-09/msg00128.html * lib/endian.in.h (bswap_16, bswap_32, bswap_64) [_GL_BYTESWAP_H]: Declare before using.
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 ef6d228c 2025-09-11T14:38:39 pagealign_alloc, vma-prot tests: Fix use of HAVE_MMAP (regr. yesterday). * m4/mmap-anon.m4 (gl_FUNC_MMAP_ANON): Test for sys/mman.h. Use ac_cv_header_sys_mman_h instead of gl_have_mmap. * lib/pagealign_alloc.c: Test HAVE_SYS_MMAN_H instead of HAVE_MMAP. * tests/test-vma-prot.c: Likewise.
Paul Eggert 7c96b402 2025-09-10T18:23:58 pagealign_alloc: prefer posix_memalign Problem reported by Harry Sintonen in: https://lists.gnu.org/r/bug-gnulib/2025-09/msg00108.html * lib/pagealign_alloc.c (info_t, memnode_t, struct memnode_s) (memnode_table, new_memnode, get_memnode): Omit if HAVE_POSIX_MEMALIGN, even if HAVE_MMAP. (pagealign_alloc, pagealign_free): Prefer posix_memalign to mmap.
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 4a717d60 2025-09-10T23:18:43 wctype-h: Remove support for IRIX. * lib/wctype.in.h (iswalnum, iswalpha, iswblank, iswcntrl, iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace, iswupper, iswxdigit, towlower, towupper): Remove workaround for IRIX.
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 cef2f733 2025-09-10T23:18:37 unicodeio: Remove support for IRIX. * lib/unicodeio.c (unicode_to_mb): Remove code for IRIX.
Bruno Haible 8af4228d 2025-09-10T23:18:34 threads-h: Remove support for IRIX. * lib/threads.in.h (TSS_DTOR_ITERATIONS): Assume that PTHREAD_DESTRUCTOR_ITERATIONS is defined.
Bruno Haible cef883c1 2025-09-10T23:18:29 thread: Remove support for IRIX. * lib/glthread/thread.h: Remove code for IRIX.
Bruno Haible 010ee7ea 2025-09-10T23:17:33 sys_select-h: Remove support for IRIX. * lib/sys_select.in.h: Remove code for IRIX.
Bruno Haible 54e5964d 2025-09-10T23:17:04 sysexits-h: Remove support for IRIX. * lib/sysexits.in.h: Remove code for IRIX.
Bruno Haible 9b957bac 2025-09-10T23:16:48 strtof, strtod, strtold: Remove support for IRIX. * lib/strtod.c (minus_zero): Remove code for IRIX.
Bruno Haible 2963ad92 2025-09-10T23:16:45 strerror_r: Remove support for IRIX. * lib/strerror_r.c: Remove code for IRIX. (strerror_r): Assume that strerror() returns non-NULL.
Bruno Haible 9a8406fa 2025-09-10T23:16:34 stdio-h: Remove support for IRIX. * lib/stdio.in.h (_PRINTF_NAN_LEN_MAX): Remove code for IRIX.
Bruno Haible ce194445 2025-09-10T23:16:28 stdint-h: Remove support for IRIX. * lib/stdint.in.h: Don't define __STDINT_H__.
Bruno Haible 4140da0c 2025-09-10T23:15:59 sigabbrev_np, sigdescr_np: Remove support for IRIX. * lib/sigabbrev_np.c (sigabbrev_np): Remove cases for SIGCKPT, SIGPTINTR, SIGPTRESCHED, SIGRESTART, SIGUME. * lib/sigdescr_np.c (sigdescr_np): Likewise.
Bruno Haible 677a07cb 2025-09-10T23:14:22 pthread_sigmask: Remove support for IRIX. * lib/pthread_sigmask.c: Remove workaround for PTHREAD_SIGMASK_UNBLOCK_BUG. * m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Remove test against IRIX bug.
Bruno Haible 96201bf2 2025-09-10T23:13:29 physmem: Remove support for IRIX. * lib/physmem.c: Remove code for IRIX. * m4/physmem.m4 (gl_PHYSMEM): Don't test for <sys/sysmp.h> and sysmp.
Bruno Haible 6a577981 2025-09-10T23:13:17 passfd: Remove support for IRIX. * lib/passfd.c (sendfd, recvfd): Remove code for IRIX.
Bruno Haible d0fdb109 2025-09-10T23:13:08 openpty: Remove support for IRIX. * lib/openpty.c (openpty): Remove code for IRIX. * m4/pty.m4 (gl_FUNC_OPENPTY): Don't test for _getpty.
Bruno Haible c90fbdf7 2025-09-10T23:12:33 nproc: Remove support for IRIX. * lib/nproc.c: Remove code for IRIX. * m4/nproc.m4 (gl_PREREQ_NPROC): Don't test for <sys/sysmp.h> and sysmp.
Bruno Haible b9b5e75e 2025-09-10T23:11:28 mountlist: Remove support for IRIX. * m4/mountlist.m4 (gl_MOUNTLIST): Update description of MOUNTED_GETMNTENT1. * lib/mountlist.c (ME_DUMMY_0): Don't test for file system type "ignore".
Bruno Haible 14b639ff 2025-09-10T23:10:08 localcharset: Remove support for IRIX. * lib/localcharset.h: Update comments. * lib/localcharset.c (alias_table): Remove entries for IRIX.
Bruno Haible 46a67c2d 2025-09-10T23:09:05 jit/cache: Remove support for IRIX. * lib/jit/cache.h: Remove code for IRIX.
Bruno Haible 1790ef25 2025-09-10T23:08:42 intprops, stdckdint-h: Remove support for IRIX. * lib/intprops-internal.h (_GL_INT_NEGATE_CONVERT): Remove macro. (_GL_EXPR_SIGNED, _GL_INT_MAXIMUM): Use _GL_INT_CONVERT instead. * lib/intprops.h (_GL_DIVIDE_OVERFLOW, _GL_REMAINDER_OVERFLOW): Likewise.
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 01858c91 2025-09-10T23:08:36 getloadavg: Remove support for IRIX. * lib/getloadavg.c: Remove code for IRIX.
Bruno Haible e299bbfe 2025-09-10T23:08:30 get_ppid_of, get_progname_of: Remove support for IRIX. * lib/get_ppid_of.c: Remove code for IRIX. * lib/get_progname_of.c: Likewise.
Bruno Haible 2e379ef2 2025-09-10T23:08:03 get-rusage-data: Remove support for IRIX. * lib/get-rusage-data.c (get_rusage_data): Remove code for IRIX.
Bruno Haible 4bac092b 2025-09-10T23:06:48 fcntl: Remove support for IRIX. * lib/fcntl.c (fcntl): Remove F_OPLKACK, F_OPLKREG cases.
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 b84cb94f 2025-09-10T23:04:32 Remove support for IRIX regarding sigaltstack. * m4/sigaltstack.m4 (SV_SIGALTSTACK): Assume that ss_sp is the start address, not the end address, of the alternate stack area. * lib/sigsegv.c: Remove code for IRIX. (stackoverflow_install_handler): Ignore SIGALTSTACK_SS_REVERSED. * lib/sigsegv.in.h: Remove code for IRIX.
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 c09cd4c9 2025-09-10T23:01:42 nan: Remove support for IRIX. * lib/nan.h (NaNl): Remove code for IRIX.
Bruno Haible 38a6bfb4 2025-09-10T23:01:27 log1pl: Remove support for IRIX. * m4/log1pl.m4 (gl_FUNC_LOG1PL_WORKS): Remove IRIX <float.h> workaround. * lib/log1pl.c (log1pl): Remove code for IRIX.
Bruno Haible 539e56c3 2025-09-10T23:01:23 log1p: Remove support for IRIX. * lib/log1p.c (log1p): Remove code for IRIX.
Bruno Haible 3661cbe3 2025-09-10T23:01:20 log10l: Remove support for IRIX. * m4/log10l.m4 (gl_FUNC_LOG10L_WORKS): Remove IRIX <float.h> workaround. * lib/log10l.c (log10l): Remove code for IRIX.
Bruno Haible db5d0269 2025-09-10T23:00:16 isnan*, isnan*-nolibm: Remove support for IRIX. * m4/isnanf.m4 (gl_ISNANF_WORKS): Remove test for isnanf (NaN ()). * m4/isnanl.m4 (gl_FUNC_ISNANL_WORKS): Simplify test program. * lib/isnanf-nolibm.h (isnanf): Remove code for IRIX. * lib/isnan.c (FUNC): Remove code for IRIX.
Bruno Haible c434544e 2025-09-10T22:58:03 ceil, rint, round, trunc, *-ieee: Remove support for IRIX. * m4/minus-zero.m4 (gl_FLOAT_MINUS_ZERO_CODE, gl_DOUBLE_MINUS_ZERO_CODE, gl_LONG_DOUBLE_MINUS_ZERO_CODE): Remove code for IRIX cc. * lib/ceil.c (MINUS_ZERO): Likewise. * lib/rint.c (MINUS_ZERO): Likewise. * lib/round.c (MINUS_ZERO): Likewise. * lib/trunc.c (MINUS_ZERO): Likewise.
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.
Bruno Haible 72a55752 2025-09-10T22:53:20 errno-iter, strerrorname_np: Remove support for IRIX. * lib/errno-iter.c (errno_iterate): Remove cases for EBADFILT, EBADRSPEC, EBADTSPEC, EBDHDL, EBUFSIZE, ECANTEXTENT, ECELLDOWN, ECKPT, ECLOCKCPU, ECONTROLLER, EDELAY, EDESTROYED, EDIRCORRUPTED, EDISJOINT, EEMPTY, EENDOFMINOR, EENQUEUED, EFSCORRUPTED, EGROUPLOOP, EINIT, EINVALMODE, EINVALSTATE, EINVALTIME, EIORESID, EJOINED, ELOGINLIM, EMEMRETRY, EMIGRATED, EMIGRATING, EMUSTRUN, ENFSREMOTE, ENOATTACH, ENOBWD, ENOEXIST, ENOINTRGROUP, ENOLIMFILE, ENOLOGIN, ENOMESSAGE, ENOPROC, ENOSERVICE, ENOTCONTROLLER, ENOTENQUEUED, ENOTJOINED, ENOTSTOPPED, EREMDEV, EWRONGFS. * lib/strerrorname_np.c (strerrorname_np): Likewise. * tests/test-strerrorname_np.c (main): Likewise.
Bruno Haible 552641c5 2025-09-10T22:52:31 acl-permissions, file-has-acl: Remove support for IRIX. * lib/acl-internal.h (MODE_INSIDE_ACL): Remove code for IRIX. * lib/acl-internal.c (acl_access_nontrivial): Likewise. * lib/acl_entries.c (acl_entries): Likewise. * lib/file-has-acl.c: Update comments. * lib/get-permissions.c: Likewise. * lib/set-permissions.c: Likewise. * m4/acl.m4 (gl_FUNC_ACL): Likewise. * doc/acl-resources.txt: Remove info about IRIX.
Paul Eggert 3aca7203 2025-09-10T09:22:17 regex: pacify gcc 15.2 * config/srclist.txt: Stop listing lib/regex.c. * lib/regex.c: Also ignore -Wswitch-enum. Needed for gcc 15.2.1 20250808 (Red Hat 15.2.1-1) x86-64.
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.
Paul Eggert 2b2bcdbc 2025-09-09T09:44:55 gettext-h: support overriding "gnulib" This is for GNU Diffutils, which is still using the old way of also translating Gnulib’s msgids. * lib/gettext.h (GNULIB_TEXT_DOMAIN): New macro. * lib/argmatch.c, lib/bitset/stats.c, lib/c-stack.c: * lib/clean-temp-simple.c, lib/clean-temp-simple.c, lib/clean-temp.c: * lib/closein.c, lib/closeout.c, lib/copy-acl.c, lib/copy-file.c: * lib/csharpcomp.c, lib/csharpexec.c, lib/cygpath.c, lib/dfa.c: * lib/error.c, lib/execute.c, lib/gai_strerror.c, lib/getaddrinfo.c: * lib/getopt.c, lib/javacomp.c, lib/javaexec.c, lib/javaversion.c: * lib/mkdir-p.c, lib/obstack.c, lib/openat-die.c, lib/os2-spawn.c: * lib/pagealign_alloc.c, lib/parse-datetime.y, lib/pipe-filter-gi.c: * lib/pipe-filter-ii.c, lib/quotearg.c, lib/rpmatch.c, lib/set-acl.c: * lib/sigpipe-die.c, lib/spawn-pipe.c, lib/strsignal.c, lib/timevar.c: * lib/unicodeio.c, lib/userspec.c, lib/vc-mtime.c, lib/version-etc.c: * lib/wait-process.c, lib/windows-cygpath.c, lib/xalloc-die.c: * lib/xbinary-io.c, lib/xfreopen.c, lib/xmemcoll.c, lib/xprintf.c: * lib/xsetenv.c, lib/xstdopen.c, lib/xstrerror.c, lib/xstrtol-error.c: (_): Use GNULIB_TEXT_DOMAIN instead of "gnulib" when calling dgettext. * lib/argmatch.h (ARGMATCH_DEFINE_GROUP): * lib/file-type.c (file_type): * lib/regex_internal.h (gettext) [HAVE_LIBINTL_H & ENABLE_NLS & !_LIBC]: * lib/xstrtol-error.c (xstrtol_error): Likewise.
Bruno Haible 19adc7a2 2025-09-09T12:50:18 Remove support for OSF/1. * all-modules: Update comments. * build-aux/install-reloc: Likewise. * gnulib-tool: Likewise. * gnulib-tool.py: Likewise. * gnulib-tool.sh: Likewise. * lib/calloc.c: Likewise. * lib/euidaccess.c: Likewise. * lib/fbufmode.c: Likewise. * lib/fflush.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/fwritable.c: Likewise. * lib/fwriting.c: Likewise. * lib/get-permissions.c: Likewise. * lib/get-rusage-as.c: Likewise. * lib/getdomainname.c: Likewise. * lib/getpass.c: Likewise. * lib/glthread/spin.c: Likewise. * lib/idpriv-drop.c: Likewise. * lib/idpriv-droptemp.c: Likewise. * lib/log10l.c: Likewise. * lib/login_tty.c: Likewise. * lib/minmax.h: Likewise. * lib/mountlist.c: Likewise. * lib/netdb.in.h: Likewise. * lib/nproc.c: Likewise. * lib/passfd.c: Likewise. * lib/posix_openpt.c: Likewise. * lib/resource-ext.h: Likewise. * lib/safe-read.h: Likewise. * lib/safe-write.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/string.in.h: Likewise. * lib/sys-limits.h: Likewise. * lib/termcap.h: Likewise. * lib/terminfo.h: Likewise. * lib/ttyname_r.c: Likewise. * lib/vasnprintf.c: Likewise. * lib/wait-process.c: Likewise. * m4/fmal.m4: Likewise. * m4/getdomainname.m4: Likewise. * m4/getopt.m4: Likewise. * m4/hypot.m4: Likewise. * m4/hypotf.m4: Likewise. * m4/hypotl.m4: Likewise. * m4/iconv.m4: Likewise. * m4/iconv_open-utf.m4: Likewise. * m4/imaxabs.m4: Likewise. * m4/imaxdiv.m4: Likewise. * m4/largefile.m4: Likewise. * m4/link-follow.m4: Likewise. * m4/locale-fr.m4: Likewise. * m4/locale-ja.m4: Likewise. * m4/locale_h.m4: Likewise. * m4/lock.m4: Likewise. * m4/log10l.m4: Likewise. * m4/mkstemp.m4: Likewise. * m4/mmap-anon.m4: Likewise. * m4/modf.m4: Likewise. * m4/modff.m4: Likewise. * m4/modfl.m4: Likewise. * m4/semaphore.m4: Likewise. * m4/socklen.m4: Likewise. * m4/strerror_r.m4: Likewise. * m4/terminfo.m4: Likewise. * m4/wcwidth.m4: Likewise. * posix-modules: Likewise. * tests/havelib/README: Likewise. * tests/init.sh: Likewise. * tests/socket-client.h: Likewise. * tests/socket-server.h: Likewise. * tests/test-echo.sh: Likewise. * tests/test-nonblocking-socket.h: Likewise. * tests/test-strtod.h: Likewise. * tests/test-strtof.h: Likewise.
Bruno Haible a1bd68ea 2025-09-09T12:49:21 wcsrtombs: Remove support for OSF/1. * m4/wcsrtombs.m4 (gl_WCSRTOMBS_TERMINATION): Remove macro. (gl_FUNC_WCSRTOMBS): Don't invoke it. Don't define WCSRTOMBS_TERMINATION_BUG. (gl_WCSRTOMBS_NULL): Remove cross-compilation guess for OSF/1. * lib/wcsrtombs.c: Ignore WCSRTOMBS_TERMINATION_BUG.
Bruno Haible 97b0beb2 2025-09-09T12:49:14 vma-iter: Remove support for OSF/1. * lib/vma-iter.h (VMA_ITERATE_SUPPORTED): Don't define on OSF/1. * lib/vma-iter.c: Remove code for OSF/1.
Bruno Haible fbe8fa47 2025-09-09T12:49:11 unistd-h: Remove support for OSF/1. * lib/unistd.in.h: Remove code for OSF/1.
Bruno Haible 590ace74 2025-09-09T12:47:55 sys_select-h: Remove support for OSF/1. * m4/sys_select_h.m4 (gl_SYS_SELECT_H): Don't test against OSF/1 bug. * lib/sys_select.in.h: Remove code for OSF/1.
Bruno Haible 75144467 2025-09-09T12:47:21 signal-h: Remove support for OSF/1. * lib/signal.in.h: Remove code for OSF/1.