ChangeLog


Log

Author Commit Date CI Message
Bruno Haible 35a44817 2024-05-17T18:45:53 execinfo: Update doc. * doc/glibc-headers/execinfo.texi: Mention musl libc. * doc/glibc-functions/backtrace.texi: Likewise. * doc/glibc-functions/backtrace_symbols.texi: Likewise. * doc/glibc-functions/backtrace_symbols_fd.texi: Likewise.
Bruno Haible 573ca4af 2024-05-17T15:18:32 tests: Fix dependencies to test-framework-sh. * modules/argp-tests (Depends-on): Add test-framework-sh. * modules/argp-version-etc-tests (Depends-on): Likewise. * modules/dfa-tests (Depends-on): Likewise. * modules/error-tests (Depends-on): Likewise. * modules/readtokens-tests (Depends-on): Likewise. * modules/string-desc-tests (Depends-on): Likewise. * modules/verror-tests (Depends-on): Likewise. * modules/xstdopen-tests (Depends-on): Remove test-framework-sh.
Bruno Haible e36cc17f 2024-05-17T12:58:08 stdbit-h: Fix syntax error. * lib/stdbit.in.h (__gl_stdbit_ctzll) [_MSC_VER]: Fix syntax error.
Bruno Haible 395d9389 2024-05-17T12:09:30 sys_select: Fix compilation error in C++ mode on macOS 13, 14. * lib/sys_socket.in.h (select): Disable _GL_CXXALIASWARN invocation on non-glibc systems.
Bruno Haible 2deaf1ff 2024-05-17T11:36:47 putenv-gnu: Update documentation. * doc/posix-functions/putenv.texi: Refer also to the glibc documentation. Use the usual doc structure.
Collin Funk fe845345 2024-05-17T02:35:10 doc: Update outdated module name. * doc/ld-version-script.texi (LD Version Scripts): Refer to 'lib-symbol-visibility' instead of 'visibility'.
Collin Funk 73541d45 2024-05-16T23:18:16 byteswap: Use __has_builtin portably. Reported by Paul Eggert in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00249.html>. * lib/byteswap.in.h (_GL_BYTESWAP_HAS_BUILTIN_BSWAP16) (_GL_BYTESWAP_HAS_BUILTIN_BSWAP32) (_GL_BYTESWAP_HAS_BUILTIN_BSWAP64): Define using the GCC version or __has_builtin after checking that it is defined. (bswap_16, bswap_32, bswap_64): Use the macros. * modules/byteswap (Depends-on): Add stdbool as a conditional dependency.
Paul Eggert 15cd8edb 2024-05-16T22:40:59 putenv-tests: pacify gcc -Wdiscarded-qualifiers * tests/test-putenv.c (main): Don’t pass a string literal to a function expecting ‘char *’.
Paul Eggert 03ab520e 2024-05-16T22:39:34 alloca-opt-tests: add a ‘volatile’ * tests/test-alloca-opt.c (func) [HAVE_ALLOCA]: Now volatile, to foil whole-program optimization.
Collin Funk c26bdc4c 2024-05-16T20:49:56 byteswap tests: Strengthen tests. * modules/byteswap-tests (Depends-on): Add stdint. * tests/test-byteswap.c (test_bswap_constant, test_bswap_eval_once) (test_bswap_double): New functions. (main): Use them.
Collin Funk 0858943b 2024-05-16T20:37:14 byteswap: Use inline functions instead of macros. * lib/byteswap.c: New file. * lib/byteswap.in.h (bswap_16, bswap_32, bswap_64): Use inline functions instead of macros. * m4/byteswap.m4 (gl_BYTESWAP): Check that bswap functions can be used on double values. * modules/byteswap (Files): Add lib/byteswap.c. (Depends-on): Add extern-inline and stdint as conditional dependencies. (Makefile.am): Add lib/byteswap.c to lib_SOURCES.
Collin Funk 46be8fb6 2024-05-16T18:26:50 gnulib-tool.py: Fix return value when exiting with Ctrl-C. * pygnulib/main.py (main_with_exception_handling): Catch KeyboardInterrupts and exit with a return code of 1.
Collin Funk 4374e4c4 2024-05-16T16:03:48 unsetenv tests: Update module dependencies. * modules/unsetenv-tests (Depends-on): Depend on 'putenv-gnu' instead of the deprecated 'putenv'.
Collin Funk 5d2987e6 2024-05-16T15:56:47 Rename module 'putenv' to 'putenv-gnu'. * modules/putenv-gnu: Renamed from modules/putenv. (Description): Mention the removal of environment variables. * modules/putenv-gnu-tests: Renamed from modules/putenv-tests. * modules/putenv: New file, an indirection to the new module. * doc/posix-functions/putenv.texi: Mention the new module name. * NEWS: Mention the change.
Collin Funk 2cee1154 2024-05-16T01:43:29 putenv: Add tests. * tests/test-putenv.c: New file. * modules/putenv-tests: New file.
Collin Funk 43ca9607 2024-05-15T20:25:38 gnulib-tool.py: Don't print tracebacks when Ctrl-C is pressed. Suggested by Pádraig Brady in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00200.html>. * pygnulib/main.py (cli_exception): New function. (main_with_exception_handling): Use it.
Bruno Haible 1a016b72 2024-05-16T01:23:39 stdbit-h: Add tests. * tests/test-stdbit-h.c: New file. * tests/test-stdbit-h-c++.cc: New file. * modules/stdbit-h-tests: New file. * modules/stdbit-h-c++-tests: New file.
Bruno Haible 182c7eb4 2024-05-16T01:20:08 stdbit-h: Make it work in C++ mode. * lib/stdbit.in.h: Remove extraneous 'extern "C" {' marker.
Bruno Haible f146bac0 2024-05-16T00:45:15 stdbit-h, stdc_*: New modules, part of the stdbit module. * lib/stdbit.in.h (_GL_STDC_*_INLINE): New macros. Enclose function definitions in #if @GL_STDC_*@ conditionals. * lib/stdc_leading_zeros.c: New file. * lib/stdc_leading_ones.c: New file. * lib/stdc_trailing_zeros.c: New file. * lib/stdc_trailing_ones.c: New file. * lib/stdc_first_leading_zero.c: New file. * lib/stdc_first_leading_one.c: New file. * lib/stdc_first_trailing_zero.c: New file. * lib/stdc_first_trailing_one.c: New file. * lib/stdc_count_zeros.c: New file. * lib/stdc_count_ones.c: New file, based on lib/stdbit.c. * lib/stdc_has_single_bit.c: New file. * lib/stdc_bit_width.c: New file. * lib/stdc_bit_floor.c: New file. * lib/stdc_bit_ceil.c: New file. * lib/stdbit.c (__gl_stdbit_popcount_support): Remove variable. * m4/stdbit_h.m4 (gl_STDBIT_H): Initialize GL_STDC_* variables. * modules/stdbit-h: New file, based on modules/stdbit. (Depends-on): Add gen-header. (Makefile.am): Substitute GL_STDC_* variables. * modules/stdc_leading_zeros: New file. * modules/stdc_leading_ones: New file. * modules/stdc_trailing_zeros: New file. * modules/stdc_trailing_ones: New file. * modules/stdc_first_leading_zero: New file. * modules/stdc_first_leading_one: New file. * modules/stdc_first_trailing_zero: New file. * modules/stdc_first_trailing_one: New file. * modules/stdc_count_zeros: New file. * modules/stdc_count_ones: New file. * modules/stdc_has_single_bit: New file. * modules/stdc_bit_width: New file. * modules/stdc_bit_floor: New file. * modules/stdc_bit_ceil: New file. * modules/stdbit: Change to a pure composition module. * modules/stdc_leading_zeros-tests: New file, based on modules/stdbit-tests. * modules/stdc_leading_ones-tests: New file, based on modules/stdbit-tests. * modules/stdc_trailing_zeros-tests: New file, based on modules/stdbit-tests. * modules/stdc_trailing_ones-tests: New file, based on modules/stdbit-tests. * modules/stdc_first_leading_zero-tests: New file, based on modules/stdbit-tests. * modules/stdc_first_leading_one-tests: New file, based on modules/stdbit-tests. * modules/stdc_first_trailing_zero-tests: New file, based on modules/stdbit-tests. * modules/stdc_first_trailing_one-tests: New file, based on modules/stdbit-tests. * modules/stdc_count_zeros-tests: New file, based on modules/stdbit-tests. * modules/stdc_count_ones-tests: New file, based on modules/stdbit-tests. * modules/stdc_has_single_bit-tests: New file, based on modules/stdbit-tests. * modules/stdc_bit_width-tests: New file, based on modules/stdbit-tests. * modules/stdc_bit_floor-tests: New file, based on modules/stdbit-tests. * modules/stdc_bit_ceil-tests: New file, based on modules/stdbit-tests. * modules/stdbit-tests: Remove file. * doc/posix-functions/stdc_leading_zeros.texi: Update. * doc/posix-functions/stdc_leading_ones.texi: Likewise. * doc/posix-functions/stdc_trailing_zeros.texi: Likewise. * doc/posix-functions/stdc_trailing_ones.texi: Likewise. * doc/posix-functions/stdc_first_leading_zero.texi: Likewise. * doc/posix-functions/stdc_first_leading_one.texi: Likewise. * doc/posix-functions/stdc_first_trailing_zero.texi: Likewise. * doc/posix-functions/stdc_first_trailing_one.texi: Likewise. * doc/posix-functions/stdc_count_zeros.texi: Likewise. * doc/posix-functions/stdc_count_ones.texi: Likewise. * doc/posix-functions/stdc_has_single_bit.texi: Likewise. * doc/posix-functions/stdc_bit_width.texi: Likewise. * doc/posix-functions/stdc_bit_floor.texi: Likewise. * doc/posix-functions/stdc_bit_ceil.texi: Likewise.
Paul Eggert bade7610 2024-05-15T15:14:01 stdbit: tweak first_leading for GCC * lib/stdbit.in.h (stdc_first_leading_zero) (stdc_first_leading_one, stdc_first_trailing_zero_uc) (stdc_first_trailing_one_uc): Redo to avoid the need for a conditional branch, at least on x86-64 with GCC 14.
Paul Eggert 4a7ea1b3 2024-05-15T11:21:04 stdbit: tweak for non-GCC non-Clang * lib/stdbit.in.h (__gl_stdbit_clz, __gl_stdbit_clzl) (__gl_stdbit_clzll, __gl_stdbit_ctz, __gl_stdbit_ctzl) (__gl_stdbit_ctzll): Work even if the argument is zero. All callers changed. This should help avoid branches on non-GCC-like platforms.
Bruno Haible ffac7937 2024-05-15T17:05:43 vasnprintf: Avoid a dummy memory allocation. * lib/vasnprintf.c (NOMEM_PTR): New macro. (multiply, divide): Return it instead of NULL in case of memory allocation failure. (scale10_round_decimal_decoded): Update.
Bruno Haible 767b725a 2024-05-15T12:04:42 getusershell tests: Verify the function declarations. * tests/test-getusershell.c: Include signature.h. (getusershell, setusershell, endusershell): Check the signatures. * modules/getusershell-tests (Files): Add tests/signature.h.
Collin Funk 4b65f477 2024-05-15T02:09:26 getusershell: Add tests. * modules/getusershell-tests: New file. * tests/test-getusershell.c: New file.
Collin Funk b2666d32 2024-05-14T23:21:00 gnulib-tool.sh: Don't continue creating testdirs when destdir exists. * gnulib-tool.sh (create-testdir, create-megatestdir): Fail if the destination directory exists instead of creating files and failing to patch test driver.
Paul Eggert 656cf7d4 2024-05-14T07:42:20 stdbit: fix dependency * modules/stdbit (Depends-on): Add extern-inline.
Paul Eggert 03761581 2024-05-14T07:11:13 Fix another ChangeLog typo.
Bruno Haible 3f2814ea 2024-05-14T11:20:15 gnulib-tool.py: Fix formatting of error message in last commit. * pygnulib/main.py (main_with_exception_handling): Use the usual formatting of error messages.
Collin Funk 719ce7d3 2024-05-13T21:36:25 gnulib-tool.py: Don't continue creating testdirs when destdir exists. * pygnulib/GLError.py (GLError.__init__, GLError.__repr__): Add a new error number for destination directories that already exist. * pygnulib/main.py (main_with_exception_handling): Print the message. * pygnulib/GLTestDir.py (GLTestDir.__init__, GLMegaTestdir.__init__): Fail if the destination directory exists instead of creating files and failing to patch test driver.
Paul Eggert 59325e84 2024-05-13T15:32:04 Fix Changelog typo.
Paul Eggert 1b7e82be 2024-05-13T15:21:55 stdbit: redo clzll without lookcup table * lib/stdbit.c (__gl_stdbit_clztab): * lib/stdbit.in.h (__gl_stdbit_clzll): [!_GL_STDBIT_HAS_BUILTIN_CLZ && !_MSC_VER]: Rewrite to avoid the need for a lookup table in memory, and remove the lookup table. Do this by shrinking the table to 64 bits and puttiung in a 64-bit constant. Although this needs another round of shifts, it avoids the need for a multiplication and memory access a la de Bruijn, and is probably a win.
Bruno Haible 59b39732 2024-05-13T23:46:59 stdbit tests: Adhere better to Gnulib naming conventions. * tests/from-glibc/tst-stdc_bit_ceil.c: Renamed from tests/tst-stdc_bit_ceil.c. * tests/from-glibc/tst-stdc_bit_floor.c: Renamed from tests/tst-stdc_bit_floor.c. * tests/from-glibc/tst-stdc_bit_width.c: Renamed from tests/tst-stdc_bit_width.c. * tests/from-glibc/tst-stdc_count_ones.c: Renamed from tests/tst-stdc_count_ones.c. * tests/from-glibc/tst-stdc_count_zeros.c: Renamed from tests/tst-stdc_count_zeros.c. * tests/from-glibc/tst-stdc_first_leading_one.c: Renamed from tests/tst-stdc_first_leading_one.c. * tests/from-glibc/tst-stdc_first_leading_zero.c: Renamed from tests/tst-stdc_first_leading_zero.c. * tests/from-glibc/tst-stdc_first_trailing_one.c: Renamed from tests/tst-stdc_first_trailing_one.c. * tests/from-glibc/tst-stdc_first_trailing_zero.c: Renamed from tests/tst-stdc_first_trailing_zero.c. * tests/from-glibc/tst-stdc_has_single_bit.c: Renamed from tests/tst-stdc_has_single_bit.c. * tests/from-glibc/tst-stdc_leading_ones.c: Renamed from tests/tst-stdc_leading_ones.c. * tests/from-glibc/tst-stdc_leading_zeros.c: Renamed from tests/tst-stdc_leading_zeros.c. * tests/from-glibc/tst-stdc_trailing_ones.c: Renamed from tests/tst-stdc_trailing_ones.c. * tests/from-glibc/tst-stdc_trailing_zeros.c: Renamed from tests/tst-stdc_trailing_zeros.c. * tests/from-glibc/tst-stdbit.h: Renamed from tests/tst-stdbit.h. * tests/from-glibc/support/test-driver.c: Renamed from tests/support/test-driver.c. * modules/stdbit-tests (Files, Makefile.am): Update. * config/srclist.txt: Update.
Bruno Haible d7768ff1 2024-05-13T23:13:15 config: Clarify which destination files have a different basename. * config/srclist.txt: Specify the gnulib-side basename in the third column of a few entries.
Bruno Haible cebf2950 2024-05-13T23:03:04 config: Document the update script better. * config/srclist-update: Improve comments.
Bruno Haible fa8b9c15 2024-05-13T18:41:04 doc: Document our conventions for *.m4 files. Suggested by Paul Eggert in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00156.html>. * doc/gnulib.texi (Autoconf macros): Document the structure of our *.m4 files.
Paul Eggert 9deb8e88 2024-05-13T09:44:01 stdbit: fix typo in MS-Windows port Problem reported by Mattias Engdegård <https://bugs.gnu.org/70898#8>. * lib/stdbit.in.h (__gl_stdbit_popcount_support) [_MSC_VER]: Fix misspelling in decl.
Bruno Haible 1b151519 2024-05-13T17:44:06 doc: Document <stdbit.h> function-like macros. * doc/posix-headers/stdbit.texi: Reference ISO C 23 as the documentation. Update platforms list. * doc/posix-functions/stdc_leading_zeros.texi: New file. * doc/posix-functions/stdc_leading_ones.texi: New file. * doc/posix-functions/stdc_trailing_zeros.texi: New file. * doc/posix-functions/stdc_trailing_ones.texi: New file. * doc/posix-functions/stdc_first_leading_zero.texi: New file. * doc/posix-functions/stdc_first_leading_one.texi: New file. * doc/posix-functions/stdc_first_trailing_zero.texi: New file. * doc/posix-functions/stdc_first_trailing_one.texi: New file. * doc/posix-functions/stdc_count_zeros.texi: New file. * doc/posix-functions/stdc_count_ones.texi: New file. * doc/posix-functions/stdc_has_single_bit.texi: New file. * doc/posix-functions/stdc_bit_width.texi: New file. * doc/posix-functions/stdc_bit_floor.texi: New file. * doc/posix-functions/stdc_bit_ceil.texi: New file. * doc/gnulib.texi (Function Substitutes): Include them all.
Paul Eggert 9768940f 2024-05-13T01:18:53 stdbit: port to theoretical platforms Port to theoretical platforms that C and POSIX allow but are not likely to ever exist. This is mostly just to document the existing source code: when optimizing, the machine code should be largely unchanged even on platforms lacking __builtin_clz etc. * lib/stdbit.in.h: Omit static_assert that checks for 8-bit bits. stdbit-tests checks for this, and omitting the static_assert here removes a module dependency. (__gl_stdbit_clzll): Do not limit word size to 128 bits. (__gl_stdbit_popcount255): Rename from __gl_stdbit_popcount255. All uses changed. Do not limit word size to 255 bits. Correct bugs on odd theoretical platforms where the word size is not a power of 2. * modules/stdbit (Depends-on): Remove assert-h.
Paul Eggert 1ed2e43a 2024-05-13T01:18:53 stdbit-tests: make GNULIB_TEST_STDBIT work standalone * modules/stdbit-tests (GNULIB_TEST_STDBIT): Do not define in config.h, since config.h is conditionally included depending on this macro. Instead, specify -DGNULIB_TEST_STDBIT in the CPPFLAGS of each test.
Simon Josefsson 0c52a761 2024-05-12T17:07:30 maintainer-makefile: Silence announce-gen error with GNULIB_REVISION. * top/maint.mk (gnulib-version): Silence git describe on failure.
Bruno Haible 36f53cb2 2024-05-12T15:58:32 execinfo: Document known bugs. * doc/glibc-functions/backtrace.texi: Mention the various bugs on FreeBSD, NetBSD, OpenBSD. * doc/glibc-functions/backtrace_symbols_fd.texi: Mention the glibc bug.
Bruno Haible 5c5e2eae 2024-05-12T12:29:38 execinfo tests: Strengthen tests. * tests/test-execinfo.c (test_backtrace): Add an argument. Check the return value of backtrace(). Check that backtrace_symbols_fd is defined. Check the return value of backtrace_symbols(). (main): Test also the case of a short buffer. * modules/execinfo-tests (Makefile.am): Verify that LIB_EXECINFO is defined.
Paul Eggert 4312df51 2024-05-11T22:30:50 stdbit: don’t assume -DHAVE_CONFIG_H This is needed for diffutils, which doesn’t define HAVE_CONFIG_H. There needs to be some way for a test shared with glibc to discover whether it should use the Gnulib or the glibc testing framework, and I guess this is it. * modules/stdbit-tests (GNULIB_TEST_STDBIT): Define. * tests/tst-stdbit.h: Use GNULIB_TEST_STDBIT, not HAVE_CONFIG_H.
Collin Funk 6c3614c1 2024-05-11T21:45:12 gnulib-tool.py: Filter out dependencies that cannot be found. Reported by Paul Eggert in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00136.html>. * pygnulib/GLModuleSystem.py (GLModule.getDependenciesWithConditions): Reorder conditionals to avoid duplicate checks. Filter out None from the gathered dependencies when gathering module dependencies. Let GLModuleSystem.find() warn instead of crashing.
Collin Funk 06ff5254 2024-05-11T20:46:12 execinfo: Add tests. * modules/execinfo-tests: New file. * tests/test-execinfo.c (test_backtrace): New function. Simply test that the symbols defined in execinfo.h can be used. (main): Use it.
Bruno Haible c6b8a003 2024-05-12T04:03:27 Continue to use spaces for indentation, not tabs. * lib/strftime.c: Untabify. Correct indentation. * tests/test-posix_memalign.c: Untabify.
Bruno Haible 99b6e70f 2024-05-11T23:21:08 error-h: Avoid namespace pollution on mingw. * lib/error.in.h: Don't include mingw's <error.h>.
Paul Eggert 945d317c 2024-05-11T11:23:34 stdbit: clean up namespace and simplify Fix namespace pollution in substitute stdbit.h. Clean up and simplify some of the non-GCC code, by preferring inline functions to macros and substituting something more straightforward than a de Bruijn hash (possibly faster?). The non-GCC non-C23 substitutes should all compile to branch-free code, if the compiler is good. * lib/stdbit.c (COUNT_LEADING_ZEROS_INLINE) (COUNT_TRAILING_ZEROS_INLINE, COUNT_ONE_BITS_INLINE): Remove. (__gl_stdbit_clztab) [!_GL_STDBIT_HAS_BUILTIN_CLZ && !_MSC_VER]: New constant array. (__gl_stdbit_popcount_support): Adjust to stdbit.in.h changes. * lib/stdbit.in.h: Do not include <limits.h> or <stdlib.h>. Check that bytes are 8 bits. (COUNT_LEADING_ZEROS_INLINE, COUNT_TRAILING_ZEROS_INLINE) (COUNT_ONE_BITS_INLINE, COUNT_LEADING_ZEROS) (count_leading_zeros_32, count_leading_zeros) (count_leading_zeros_l, count_leading_zeros_ll) (COUNT_TRAILING_ZEROS, count_trailing_zeros_32) (count_trailing_zeros, count_trailing_zeros_l) (count_trailing_zeros_ll, COUNT_ONE_BITS, count_one_bits_32) (COUNT_ONE_BITS_GENERIC, count_one_bits, count_one_bits_l) (count_one_bits_ll): Remove, replacing all uses with ... (_GL_STDBIT_HAS_BUILTIN_CLZ) (_GL_STDBIT_HAS_BUILTIN_CTZ, _GL_STDBIT_HAS_BUILTIN_POPCOUNT) (__gl_stdbit_clz, __gl_stdbit_clzl, __gl_stdbit_clzll) (__gl_stdbit_ctz, __gl_stdbit_ctzl, __gl_stdbit_ctzll) (__gl_stdbit_popcount, __gl_stdbit_popcountl, __gl_stdbit_popcountll) (__gl_stdbit_popcount255): ... these new functions and macros. (__popcnt64): Omit unnecessary casts. (__gl_stdbit_popcount_support): Rename from popcount_support and make it a signed char since that’s all we need. (__gl_stdbit_popcount_supported): Rename from popcount_supported. All uses changed. * modules/stdbit (Depends-on): Add assert-h, for static_assert.
Paul Eggert fe62745d 2024-05-10T10:54:43 stdbit: remove most module dependence Remove dependence of stdbit on the modules count-leading-zeros, count-trailing-zeros, and count-one-bits. stdbit is part of C23 and in the long run is more likely to be more portable, so code should start preferring it. * lib/stdbit.c (popcount_support): New var, if needed. * lib/stdbit.in.h: Contain contents of count-leading-zeros.h, count-trailing-zeros.h, and count-one-bits.h instead of including those files. In the long run those files should be stubs that are implemented via stdbit. * modules/stdbit (Depends-on): Do not depend on count-leading-zeros, count-trailing-zeros, count-one-bits.
Paul Eggert 202261b5 2024-05-09T17:41:19 stdbit-tests: new module * config/srclist.txt: Add files containing stdbit test cases shared with glibc. * modules/stdbit-tests: New file. * tests/support/test-driver.c, tests/tst-stdbit.h: New files, copied from glibc with changes. * tests/tst-stdc_bit_ceil.c: * tests/tst-stdc_bit_floor.c, tests/tst-stdc_bit_width.c: * tests/tst-stdc_count_ones.c, tests/tst-stdc_count_zeros.c: * tests/tst-stdc_first_leading_one.c: * tests/tst-stdc_first_leading_zero.c: * tests/tst-stdc_first_trailing_one.c: * tests/tst-stdc_first_trailing_zero.c: * tests/tst-stdc_has_single_bit.c, tests/tst-stdc_leading_ones.c: * tests/tst-stdc_leading_zeros.c, tests/tst-stdc_trailing_ones.c: * tests/tst-stdc_trailing_zeros.c: New files, copied verbatim from glibc.
Paul Eggert 4de6323d 2024-05-09T17:36:10 stdbit: new module * doc/gnulib-tool.texi, doc/gnulib.texi: Mention it. * doc/posix-headers/stdbit.texi, lib/stdbit.c, lib/stdbit.in.h: * m4/stdbit_h.m4, modules/stdbit: New files.
Bruno Haible 9f7f1b92 2024-05-11T14:39:22 doc: Mention module execinfo. * doc/glibc-headers/execinfo.texi: Mention module execinfo. * doc/glibc-functions/backtrace.texi: Likewise. * doc/glibc-functions/backtrace_symbols.texi: Likewise. * doc/glibc-functions/backtrace_symbols_fd.texi: LIkewise.
Bruno Haible 8889ae5e 2024-05-11T14:27:02 doc: Update regarding backtrace functions on *BSD. * doc/glibc-functions/backtrace.texi: Mention in which *BSD releases this function was missing. * doc/glibc-functions/backtrace_symbols.texi: Likewise. * doc/glibc-functions/backtrace_symbols_fd.texi: LIkewise. * doc/glibc-headers/execinfo.texi: Update *BSD versions.
Collin Funk 3db26a28 2024-05-11T00:58:44 doc: Mention backtrace functions supported on BSD. * doc/glibc-functions/backtrace.texi (backtrace): Mention that FreeBSD supports this function from 10.0 onwards. Mention that NetBSD and OpenBSD support this function from 7.0 onwards. * doc/glibc-functions/backtrace_symbols.texi (backtrace_symbols): Likewise. * doc/glibc-functions/backtrace_symbols_fd.texi (backtrace_symbols_fd): Likewise.
Bruno Haible f2632493 2024-05-09T16:30:01 unistr/u8-strstr tests: Avoid test failure with ASAN. * tests/unistr/test-u8-strstr.c (main): Increase timeout to 50 sec. * tests/unistr/test-u16-strstr.c (main): Likewise. * tests/unistr/test-u32-strstr.c (main): Likewise.
Bruno Haible 65bd9795 2024-05-09T15:06:40 free tests: Avoid test failure with ASAN. * tests/test-free.c (main): Skip mmap/munmap based test if ASAN is enabled.
Bruno Haible 148939f9 2024-05-09T14:01:10 explicit_bzero, memset_explicit tests: Avoid test failures with ASAN. * tests/test-explicit_bzero.c (test_heap, test_stack): Define to empty if ASAN is enabled. * tests/test-memset_explicit.c (test_heap, test_stack): Likewise.
Bruno Haible c61c0388 2024-05-09T12:56:55 dprintf-posix, fprintf-posix: Avoid test failures with ASAN. * tests/test-dprintf-posix2.c (main): Skip the test if ASAN is enabled. * tests/test-fprintf-posix3.c (main): Likewise. * tests/test-dprintf-posix2.sh: Update. * tests/test-fprintf-posix3.sh: Likewise.
Bruno Haible 9cb82ab3 2024-05-09T12:20:36 unistdio/*printf: Fix %n handling with module 'printf-with-n-directive'. * m4/libunistring-base.m4 (gl_LIBUNISTRING_VERSION_CMP): Optimize the case of VERSION = 999.9. * modules/unistdio/u8-asnprintf (configure.ac): If module 'printf-with-n-directive' is in use, don't use an installed libunistring for this module. * modules/unistdio/u8-asprintf (configure.ac): Likewise. * modules/unistdio/u8-snprintf (configure.ac): Likewise. * modules/unistdio/u8-sprintf (configure.ac): Likewise. * modules/unistdio/u8-vasnprintf (configure.ac): Likewise. * modules/unistdio/u8-vasprintf (configure.ac): Likewise. * modules/unistdio/u8-vsnprintf (configure.ac): Likewise. * modules/unistdio/u8-vsprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-asnprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-asprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-snprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-sprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-vasnprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-vasprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-vsnprintf (configure.ac): Likewise. * modules/unistdio/u8-u8-vsprintf (configure.ac): Likewise. * modules/unistdio/u16-asnprintf (configure.ac): Likewise. * modules/unistdio/u16-asprintf (configure.ac): Likewise. * modules/unistdio/u16-snprintf (configure.ac): Likewise. * modules/unistdio/u16-sprintf (configure.ac): Likewise. * modules/unistdio/u16-vasnprintf (configure.ac): Likewise. * modules/unistdio/u16-vasprintf (configure.ac): Likewise. * modules/unistdio/u16-vsnprintf (configure.ac): Likewise. * modules/unistdio/u16-vsprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-asnprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-asprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-snprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-sprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-vasnprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-vasprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-vsnprintf (configure.ac): Likewise. * modules/unistdio/u16-u16-vsprintf (configure.ac): Likewise. * modules/unistdio/u32-asnprintf (configure.ac): Likewise. * modules/unistdio/u32-asprintf (configure.ac): Likewise. * modules/unistdio/u32-snprintf (configure.ac): Likewise. * modules/unistdio/u32-sprintf (configure.ac): Likewise. * modules/unistdio/u32-vasnprintf (configure.ac): Likewise. * modules/unistdio/u32-vasprintf (configure.ac): Likewise. * modules/unistdio/u32-vsnprintf (configure.ac): Likewise. * modules/unistdio/u32-vsprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-asnprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-asprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-snprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-sprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-vasnprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-vasprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-vsnprintf (configure.ac): Likewise. * modules/unistdio/u32-u32-vsprintf (configure.ac): Likewise. * modules/unistdio/ulc-asnprintf (configure.ac): Likewise. * modules/unistdio/ulc-asprintf (configure.ac): Likewise. * modules/unistdio/ulc-fprintf (configure.ac): Likewise. * modules/unistdio/ulc-snprintf (configure.ac): Likewise. * modules/unistdio/ulc-sprintf (configure.ac): Likewise. * modules/unistdio/ulc-vasnprintf (configure.ac): Likewise. * modules/unistdio/ulc-vasprintf (configure.ac): Likewise. * modules/unistdio/ulc-vfprintf (configure.ac): Likewise. * modules/unistdio/ulc-vsnprintf (configure.ac): Likewise. * modules/unistdio/ulc-vsprintf (configure.ac): Likewise.
Collin Funk ee4be398 2024-05-08T18:55:51 ftello: Prefer stdckdint to intprops. * lib/ftello.c (ftello): Include stdckdint.h instead of intprops.h. Prefer ckd_add to INT_ADD_OK. * modules/ftello (Depends-on): Depend on stdckdint instead of intprops.
Bruno Haible b74259a7 2024-05-09T01:41:52 sigsegv, c-stack tests: Avoid test failures with ASAN. * tests/test-sigsegv-catch-stackoverflow1.c (HAVE_STACK_OVERFLOW_RECOVERY): Undefine if ASAN is enabled. * tests/test-sigsegv-catch-stackoverflow2.c (HAVE_STACK_OVERFLOW_RECOVERY): Likewise. * tests/test-c-stack.c (main): Skip the test if ASAN is enabled.
Bruno Haible d4b836cb 2024-05-09T01:25:15 argp: Fix test failure with clang's ASAN. Reported in <https://lists.gnu.org/archive/html/bug-gnulib/2023-12/msg00035.html>. * m4/argp.m4 (gl_ARGP): Rename argp_parse to rpl_argp_parse.
Bruno Haible 07e4eeaf 2024-05-08T11:11:12 gnulib-tool.py: Make --megatest behaviour more similar to shell impl. * pygnulib/main.py (main) [megatest]: Remove space from the testdir name.
Bruno Haible 06287e49 2024-05-08T10:55:43 gnulib-tool: In --megatestdir mode, stop when there is an error. * gnulib-tool.sh (megatest): Fail when one of the 'configure' or 'make' steps fails. * pygnulib/main.py (main): Likewise.
Collin Funk 17b859fb 2024-05-08T01:24:09 gnulib-tool.py: Fix behavior of --test when a subprocess fails. Reported by Bruno Haible in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00101.html>. * pygnulib/main.py (main): Use sp.run with check=True so that an exception is thrown when a process fails. Simply exit if an exception occurs.
Collin Funk 0b46cf28 2024-05-07T21:47:17 base32, base64: Prefer stdckdint to intprops. * lib/base32.c (base32_encode_alloc): Include stdckdint.h. Prefer ckd_mul to INT_MULTIPLY_OK. * lib/base64.c (base64_encode_alloc): Likewise. * modules/base32 (Depends-on): Add stdckdint. * modules/base64 (Depends-on): Likewise.
Collin Funk e91650b1 2024-05-07T17:10:23 gnulib-tool.py: Handle module dependencies that cannot be found. * pygnulib/GLModuleSystem.py (GLModule.getDependenciesWithoutConditions): Filter out None from the module dependencies. An appropriate warning will already be printed by GLModuleSystem.find().
Paul Eggert 4121ae7a 2024-05-07T09:19:17 nstrftime: use clearer code for padding This also works around GCC bug 114965 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114965>. * lib/strftime.c (enum pad_style): New type. (width_add, my_strftime, __strftime_internal): Use it instead of checking the raw chars. * tests/test-nstrftime.h (T): Test for the GCC bug.
Simon Josefsson aacceb6e 2024-05-06T15:01:10 maintainer-makefile: Prohibit BSD4.3/SysV u_char etc types. * top/maint.mk (sc_unsigned_char, sc_unsigned_short) (sc_unsigned_int, sc_unsigned_long): Add.
Simon Josefsson 2adbe3be 2024-05-06T14:56:08 inet-ntop, inet-pton: Avoid obsolete u_char type. * lib/inet_pton.c (inet_pton6): Use unsigned char instead of u_char. * lib/inet_ntop.c: Doc fix.
Bruno Haible 655328ba 2024-05-05T16:30:10 gnulib-tool.py: Regenerate aclocal.m4 before using 'autoconf -t ...'. Reported by Paul Eggert in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00065.html>. * pygnulib/GLImport.py (GLImport): New field m4dirs. (GLImport.__init__): Accept an additional m4dirs argument. (GLImport.execute): Regenerate aclocal.m4 before creating the library Makefile. * pygnulib/main.py (main): Pass the guessed_m4dirs to GLImport.
Collin Funk 987535a1 2024-05-04T23:46:02 gnulib-tool: Ignore autom4te.cache when using GNULIB_TOOL_IMPL=sh+py. Reported by Paul Eggert in: <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00061.html>. * gnulib-tool: Don't compare the autom4te.cache directory since requests are not sorted in Autoconf version 2.71 and below.
Bruno Haible fde88b71 2024-05-04T16:36:06 readutmp, boot-time: Work around a Cygwin 3.5.3 bug. Reported by Ken Brown <kbrown@cornell.edu> in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00035.html>. * lib/boot-time-aux.h (get_windows_boot_time): On Cygwin, ignore pagefile.sys if it appears to be a directory, and use another file as a fallback.
Collin Funk 284c0ad5 2024-05-04T05:17:45 Fix ChangeLog entry for previous commit.
Collin Funk b86d31ad 2024-05-03T17:26:18 gnulib-tool.py: Fix an undefined function name. * pygnulib/main.py (main_with_exception_handling): Use the tempfile module prefix when calling mkdtemp(). Use the 'glpy' prefix for the temporary directory that exists for the entirety of the program.
Simon Josefsson 6213c5bd 2024-05-03T08:44:03 maint.mk: Don't fail on ~/.indent.pro, reported by Collin Funk. * top/maint.mk (indent_args): Use --ignore-profile.
Collin Funk cae0e724 2024-05-02T16:57:13 gnulib-tool.sh: Fix program name in error message. * gnulib-tool.sh: Use 'gnulib-tool' instead of 'gnulib' as the program name in the error message.
Collin Funk 0f6c664f 2024-05-02T14:22:14 DEPENDENCIES: Add Cygwin as supported platform. * DEPENDENCIES: Mention Cygwin as a supported platform for building Windows binaries.
Bruno Haible 8d42dedb 2024-05-02T20:10:14 doc: Add appendix about Gnulib history. * doc/gnulib-history.texi: New file. * doc/gnulib.texi: Include it.
Collin Funk 3169fd03 2024-05-02T00:49:58 gnulib-tool.py: Don't leave temporary directories on exit. * pygnulib/main.py (main_with_exception_handling): Use tempfile.TemporaryDirectory as a context manager so it is removed before the program exits. (main): Expect a temporary directory to be passed as an argument. * pygnulib/GLConfig.py (GLConfig.__init__): Accept an optional temporary directory parameter instead of creating one. * pygnulib/GLImport.py (GLImport.__init__): Don't remove the cache's temporary directory since it doesn't create one anymore. (GLImport.execute): Don't remove the temporary directory explicitly. It is handled by the usage of a context manager. * pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute): Likewise.
Collin Funk adc6d632 2024-05-01T21:26:34 gnulib-tool.py: Quote file names passed to 'patch'. * pygnulib/GLTestDir.py (_patch_test_driver): Import shlex and cleanup unused imports. Use shlex.quote() on the file names passed to 'patch'. * pygnulib/GLFileSystem.py (GLFileSystem.lookup): Likewise. Perform redirection using sp.call() arguments instead of using the shell.
Bruno Haible 89358f24 2024-05-02T00:52:26 readutmp, boot-time: Improve for some Cygwin installations. Reported by Ken Brown <kbrown@cornell.edu> in <https://lists.gnu.org/archive/html/bug-gnulib/2024-05/msg00008.html>. * lib/boot-time-aux.h (get_windows_boot_time): Use /proc/cygdrive/ instead of /cygdrive/.
Bruno Haible 3bf9b747 2024-05-02T00:10:21 stddef: A better workaround against GCC bug 114870. * lib/stddef.in.h: If STDDEF_NOT_IDEMPOTENT is 1, disable the special invocation convention. * m4/stddef_h.m4 (gl_STDDEF_H): Set STDDEF_NOT_IDEMPOTENT. (gl_STDDEF_H_DEFAULTS): Initialize STDDEF_NOT_IDEMPOTENT. * modules/stddef (Makefile.am): Substitute STDDEF_NOT_IDEMPOTENT.
Bruno Haible 82770ee1 2024-05-01T23:10:51 stddef: Fix <stddef.h> behaviour on Cygwin (regression 2024-04-27). Reported by Markus Mützel <markus.muetzel@gmx.de> in <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00522.html>. * lib/stddef.in.h: Don't test _@GUARD_PREFIX@_STDDEF_H. Fix comments.
Bruno Haible b3daf2b0 2024-05-01T23:07:14 doc: Reference a gcc bug. * doc/posix-headers/stddef.texi: Reference a gcc bug.
Bruno Haible ffba6ac7 2024-05-01T12:25:18 sprintf-posix, snprintf-posix tests: Add comment. Suggested by Collin Funk in <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00546.html>. * tests/test-sprintf-posix.h (test_function): Add comment about known failures.
Collin Funk ecdab13f 2024-05-01T02:21:43 gnulib-tool.py: Fix mistake in previous commit. * pygnulib/GLModuleSystem.py (GLModuleSystem.exists) (GLModuleSystem.find): Rename 'module' argument to 'module_name' so it is clear they are not a GLModule object. Treat them as such.
Collin Funk ffde9905 2024-05-01T01:12:18 gnulib-tool.py: Use the GLModule's name variable directly. * pygnulib/GLModuleSystem.py (GLModule.getName): Remove function. (GLModule.__str__, GLModule.__repr__, GLModule.isNonTests) (GLModule.repeatModuleInTests, GLModule.getDependenciesRecursively) (GLModule.getShellFunc, GLModule.getShellVar) (GLModule.getConditionalName, GLModule.getApplicability) (GLModule.getDependencies, GLModule.getAutomakeSnippet_Unconditional) (GLModule.getLicense, GLModuleSystem.find) (GLModuleTable.transitive_closure): Use the GLModule's name instance variable instead of using str() or removed getName() function. * pygnulib/GLEmiter.py (GLEmiter.autoconfSnippet) (GLEmiter.preEarlyMacros, GLEmiter.lib_Makefile_am) (GLEmiter.tests_Makefile_am): Likewise. * pygnulib/GLImport.py (GLImport.gnulib_comp, GLImport.prepare): Likewise. * pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute): Likewise.
Paul Eggert 368b0f4f 2024-04-30T19:36:43 intprops: document fix for GCC bug 68193 * lib/intprops-internal.h (_GL__GENERIC_BOGUS): GCC bug 68193 is fixed in GCC 14. This is just for documentation, as _GL__GENERIC_BOGUS is not consulted in GCC 14.
Bruno Haible b00a9678 2024-04-30T13:35:50 *printf: Don't invoke gl_PRINTF_DIRECTIVE_N when it's not needed. * m4/dprintf-posix.m4 (gl_FUNC_DPRINTF_IS_POSIX): Don't require gl_PRINTF_DIRECTIVE_N if gl_PRINTF_SUPPORT_N_DIRECTIVE is not defined. * m4/fprintf-posix.m4 (gl_FUNC_FPRINTF_IS_POSIX): Likewise. * m4/snprintf-posix.m4 (gl_FUNC_SNPRINTF_IS_POSIX): Likewise. * m4/sprintf-posix.m4 (gl_FUNC_SPRINTF_IS_POSIX): Likewise. * m4/vasnprintf-posix.m4 (gl_FUNC_VASNPRINTF_IS_POSIX): Likewise. * m4/vasprintf-posix.m4 (gl_FUNC_VASPRINTF_IS_POSIX): Likewise. * m4/vdprintf-posix.m4 (gl_FUNC_VDPRINTF_IS_POSIX): Likewise. * m4/vfprintf-posix.m4 (gl_FUNC_VFPRINTF_IS_POSIX): Likewise. * m4/vsnprintf-posix.m4 (gl_FUNC_VSNPRINTF_IS_POSIX): Likewise. * m4/vsprintf-posix.m4 (gl_FUNC_VSPRINTF_IS_POSIX): Likewise. * m4/obstack-printf-posix.m4 (gl_FUNC_OBSTACK_PRINTF_IS_POSIX): Likewise.
Bruno Haible 704ccd7b 2024-04-30T13:14:31 *printf: Avoid a dialog during 'configure' with MSVC in debug mode. Suggested by Paul Harris <harris.pc@gmail.com> in <https://lists.gnu.org/archive/html/bug-gettext/2024-04/msg00005.html>. * m4/printf.m4 (gl_PRINTF_DIRECTIVE_N): In the test program, include <crtdbg.h> and disable the MSVC reporting for assertion failures.
Collin Funk 134f6b8a 2024-04-30T01:09:55 gnulib-tool.py: Remove remaining unused instance variables. * pygnulib/GLModuleSystem.py (GLModule.__init__) (GLModuleTable.__init__): Remove the unused GLFileSystem variable. These classes perform lookups with a GLModuleSystem. * pygnulib/GLTestDir.py (GLTestDir.__init__): Remove the unused GLFileAssistant variable. The transformations it performs are not needed in testdirs.
Collin Funk 20061b49 2024-04-29T22:20:31 gnulib-tool.py: Add type hints to classes. * pygnulib/*.py: Add type hints for all instance and class variables. * pygnulib/GLMakefileTable.py (GLMakefileTable.__getitem__): Fix return type hint since the dictionary has str values.
Collin Funk afca3c77 2024-04-29T22:15:56 gnulib-tool.py: Emit libtests in testdirs generated Makefile.am. Reported by Bruno Haible in <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00463.html>. * pygnulib/GLTestDir.py (GLTestDir.execute): Modify the GLEmiter's config variable instead of the GLTestDir's so that it can be accessed when emitting the Makefile.am.
Collin Funk 431b5849 2024-04-28T15:52:27 doc: Update macro list in gnulib-cache.m4 documentation. * doc/gnulib-tool.texi (Modified imports): Add missing macros from the sed invocation in func_import of gnulib-tool.sh.
Collin Funk ef81d219 2024-04-28T04:43:39 doc: Mention AC_CONFIG_MACRO_DIRS in configure.ac. Document the following gnulib-tool change: 2021-12-19 Bruno Haible <bruno@clisp.org> gnulib-tool: Don't insist on ACLOCAL_AMFLAGS. * doc/gnulib-tool.texi (Initial import): Update the example gnulib-tool invocation. Document the use of AC_CONFIG_MACRO_DIRS as an alternative to ACLOCAL_AMFLAGS.
Bruno Haible 92d80242 2024-04-28T11:29:27 bootstrap: Support checking out a recent GNULIB_REVISION, part 2. Reported by Markus Mützel <markus.muetzel@gmx.de> in <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00507.html>. * top/bootstrap-funclib.sh (prepare_GNULIB_SRCDIR): If using a submodule and the 'git checkout' command fails, fetch the newer commits and then retry it. * build-aux/bootstrap: Regenerated.
Bruno Haible 6cb75b5e 2024-04-27T20:33:59 gnulib-tool: Simplify the Python version test. Suggested by Pádraig Brady in <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00469.html>. * gnulib-tool: Use Python's sys.version_info, not --version. * gnulib-tool.py: Use the same version test here. Use --version only to produce a specific error message.
Paul Eggert b2b3e3b7 2024-04-27T16:07:16 maint: be more precise and vague about GCC 14 In commentary, be specific about which particular GCC 14 prerelease is meant when this matters, and don’t say “GCC 14” otherwise. Prompted by a remark by Sam James in: https://lists.gnu.org/r/bug-gnulib/2024-04/msg00484.html
Collin Funk dba810f6 2024-04-27T15:01:24 gnulib-tool.py: Preserve module ordering in --create-megatestdir. * pygnulib/GLTestDir.py (GLMegaTestDir.execute): Use a separate set to remove duplicates from the original list without sorting.