Re: new module abort-debug

2024-05-17 Thread Bruno Haible
Oops, this caused two link errors in a testdir of all modules: gcc -ftrapv -Wno-error -g -O2 -L/media/develdata/devel/inst-x86_64-64/lib -rdynamic -o test-execute-child test-execute-child.o -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm /usr/bin/ld: test-execute-child.o: in function `main':

getusershell tests: Fail if empty lines are returned.

2024-05-17 Thread Collin Funk
Hi Bruno, I setup an Alpine VM and looked into the getusershell () failure you reported earlier. On alpine the default /etc/shells: # valid login shells /bin/sh /bin/ash /bin/bash Fails because of the comment as I explained earlier. When adding a few blank lines before the comment and an

unistd: Fix compilation error with MSVC in C++ mode

2024-05-17 Thread Bruno Haible
In a testdir created through ./gnulib-tool --create-testdir --dir=../testdir1 --single-configure --with-c++-tests stdbit on MSVC 14 I see a compilation error: /home/bruno/msvc/compile cl -nologo -DHAVE_CONFIG_H -I. -I../../gltests -I.. -DGNULIB_STRICT_CHECKING=1 -DIN_GNULIB_TESTS=1 -I.

Re: [PATCH] byteswap: port better to limited platforms

2024-05-17 Thread Collin Funk
On 5/17/24 3:49 PM, Paul Eggert wrote: > POSIX does not require uint64_t, and the C standard > does not require uint16_t or uint32_t either, so port > to platforms that lack these types. The POSIX limitation > is the only significant one in practice. I ran into this > issue when updating Emacs,

stdbit-h: Fix compilation error with MSVC in C++ mode

2024-05-17 Thread Bruno Haible
In a testdir on MSVC 14, I see these compilation errors: /home/bruno/msvc/compile cl -nologo -DHAVE_CONFIG_H -I. -I../../gltests -I.. -DGNULIB_STRICT_CHECKING=1 -DIN_GNULIB_TESTS=1 -I. -I../../gltests -I.. -I../../gltests/.. -I../gllib -I../../gltests/../gllib -D_WIN32_WINNT=_WIN32_WINNT_WIN7

Re: [PATCH] byteswap: port better to limited platforms

2024-05-17 Thread Collin Funk
On 5/17/24 4:51 PM, Bruno Haible wrote: > I think this produces wrong code with gcc 4.4.7 and older. See: > > -- foo.c -- > unsigned long long x = 0xff00; > --- > > $ gcc -Wall -S

Re: [PATCH] byteswap: port better to limited platforms

2024-05-17 Thread Bruno Haible
Paul Eggert wrote: > -#else > - return x) & 0xff00ull) >> 56) > - | (((x) & 0x00ffull) >> 40) > - | (((x) & 0xff00ull) >> 24) > - | (((x) & 0x00ffull) >> 8) > - | (((x) & 0xff00ull) << 8) > -

Re: tests: Mark tests that fail on NetBSD as expected failures

2024-05-17 Thread Bruno Haible
Collin Funk wrote: > Perhaps it is worth mentioning somewhere that XFAIL > may refer to an actual bug that needs investigation? Well, you know it now: All XFAIL are potential bugs, and need investigation if the platform is considered important. :) Bruno

[PATCH] byteswap: port better to limited platforms

2024-05-17 Thread Paul Eggert
POSIX does not require uint64_t, and the C standard does not require uint16_t or uint32_t either, so port to platforms that lack these types. The POSIX limitation is the only significant one in practice. I ran into this issue when updating Emacs, which still ports to platforms lacking 64-bit

Re: tests: Mark tests that fail on NetBSD as expected failures

2024-05-17 Thread Collin Funk
On 5/17/24 2:10 PM, Bruno Haible wrote: > Since I don't have time to investigate them and, OTOH, I don't want that > the NetBSD test failures mark the entire continuous integration run as > "failed", here are patches to mark them as expected failures. Seems reasonable. Perhaps it is worth

stdbit-h: Fix leading-zeros/ones functions on 64-bit MSVC

2024-05-17 Thread Bruno Haible
On MSVC 14 in 64-bit mode, in a testdir of the modules stdbit count-leading-zeros count-one-bits count-trailing-zeros ffs ffsl ffsll I see these 7 test failures: FAIL: test-stdc_bit_ceil.exe FAIL: test-stdc_bit_floor.exe FAIL: test-stdc_bit_width.exe PASS: test-stdc_count_ones.exe PASS:

getusershell tests: Fix link error on MSVC

2024-05-17 Thread Bruno Haible
On MSVC, I see this link error: /home/bruno/msvc/compile cl -nologo -MD -L/usr/local/msvc32/lib -o test-getusershell.exe test-getusershell.obj libtests.a ../gllib/libgnu.a libtests.a ../gllib/libgnu.a libtests.a cl : Command line warning D9024 : unrecognized source file type 'libtests.a',

tests: Mark tests that fail on NetBSD as expected failures

2024-05-17 Thread Bruno Haible
On NetBSD 9.0 and 10.0, I always see the same tests fail: FAIL: test-dup3 === ../../gltests/test-dup3.c:113: assertion 'dup3 (fd, fd, o_flags) == -1' failed FAIL test-dup3 (exit status: 134) FAIL: test-fdutimensat == ../../gltests/test-utimens.h:75: assertion

new module abort-debug

2024-05-17 Thread Bruno Haible
When a unit test fails, we call abort(), because - this allows finding the failure spot a posteriori with a core dump, - it works fine in the debugger, even if the debugger cannot put a breakpoint on, say, the function exit(). However, when running a unit test in a continuous integration

Re: volatile-by-default

2024-05-17 Thread Bruno Haible
Paul Eggert wrote: > In my weaker moments I sometimes think we should declare every test-case > variable volatile, along the lines of the "volatile-by-default" approach > for Java. See: > > Liu L, Millstein T, Musuvathi M. Safe-by-default concurrency for modern > programming languages. ACM

Re: byteswap: Use inline functions instead of macros.

2024-05-17 Thread Paul Eggert
On 2024-05-16 23:25, Collin Funk wrote: Hi Paul, On 5/16/24 10:16 PM, Paul Eggert wrote: +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))\ + || (defined __has_builtin && __has_builtin (__builtin_bswap32)) Unfortunately this usage is not portable, not for

Re: [PATCH 1/2] alloca-opt-tests: add a ‘volatile’

2024-05-17 Thread Paul Eggert
On 2024-05-17 02:48, Bruno Haible wrote: -flto was buggy for a long time. Is whole-program optimization working fine for you? If so, which compiler version, binutils version, and compiler options can you recommend? No, I merely found that problem by program inspection. Like you, I've had

execinfo: Update doc

2024-05-17 Thread Bruno Haible
musl libc does not have the backtrace* functions. It's worth mentioning. (I don't know why https://github.com/ronchaine/libexecinfo has been archived.) Ideally we should document musl libc portability, like we do for all other platforms. This would be about 2-3 days of work; not in my plans for

Re: [PATCH] getusershell: Add tests.

2024-05-17 Thread Collin Funk
On 5/17/24 6:45 AM, Bruno Haible wrote: >> It also looks like musl will return empty lines (getline () with >> length 1), which I believe is incorrect from the FreeBSD man page >> description. > > So, once you have a musl libc VM yourself, you are ready for reporting > your first musl libc bug.

Re: [PATCH] getusershell: Add tests.

2024-05-17 Thread Bruno Haible
Hi Collin, > I remember you saying a few days ago saying that "every function is > worth testing", so here is more evidence. :) :-) > It appears that musl doesn't check for comments which explains that > failure [2]. > > It also looks like musl will return empty lines (getline () with > length

Re: [PATCH] getusershell: Add tests.

2024-05-17 Thread Collin Funk
Hi Bruno, On 5/17/24 5:59 AM, Bruno Haible wrote: > The test fails on Alpine Linux. > > > FAIL: test-getusershell > === > > ../../gltests/test-getusershell.c:53: assertion 'ptr[0] != '#'' failed > Aborted (core dumped) > FAIL test-getusershell (exit status: 134) Hahaha, I

tests: Fix dependencies to test-framework-sh

2024-05-17 Thread Bruno Haible
A test module should depend on 'test-framework-sh' if and only if the test uses tests/init.sh. 2024-05-17 Bruno Haible tests: Fix dependencies to test-framework-sh. * modules/argp-tests (Depends-on): Add test-framework-sh. * modules/argp-version-etc-tests

Re: [PATCH] getusershell: Add tests.

2024-05-17 Thread Bruno Haible
Hi Collin, > + getusershell: Add tests. > + * modules/getusershell-tests: New file. > + * tests/test-getusershell.c: New file. The test fails on Alpine Linux. FAIL: test-getusershell === ../../gltests/test-getusershell.c:53: assertion 'ptr[0] != '#'' failed

stdbit-h: Fix syntax error

2024-05-17 Thread Bruno Haible
On MSVC, I see this compilation error: /home/bruno/msvc/compile cl -nologo -DHAVE_CONFIG_H -I. -I../../gllib -I.. -DGNULIB_STRICT_CHECKING=1 -D_WIN32_WINNT=_WIN32_WINNT_WIN7 -I/usr/local/msvc64/include -MD -c -o stdbit.obj `cygpath -w '../../gllib/stdbit.c'` stdbit.c .\stdbit.h(252): error

Re: doc: Mention gnulib putenv module?

2024-05-17 Thread Collin Funk
On 5/17/24 2:38 AM, Bruno Haible wrote: > Now we can use the usual doc structure. > > > 2024-05-17 Bruno Haible > > putenv-gnu: Update documentation. > * doc/posix-functions/putenv.texi: Refer also to the glibc > documentation. Use the usual doc structure. Looks good.

sys_select: Fix compilation error in C++ mode on macOS 13, 14

2024-05-17 Thread Bruno Haible
On macOS 13 and 14 I'm seeing this compilation error: ../gllib/sys/select.h:822:19: error: declaration of 'select' has a different language linkage _GL_CXXALIASWARN (select); ^ This patch should fix it. 2024-05-17 Bruno Haible sys_select: Fix compilation error in

Re: [PATCH 1/2] alloca-opt-tests: add a ‘volatile’

2024-05-17 Thread Bruno Haible
Hi Paul, > Now volatile, to foil whole-program optimization. -flto was buggy for a long time. Is whole-program optimization working fine for you? If so, which compiler version, binutils version, and compiler options can you recommend? Bruno

Re: byteswap: Use inline functions instead of macros.

2024-05-17 Thread Bruno Haible
Collin Funk asked: > I'm assuming that _GL_[module-name]_(rest-of-macro) can be assumed > safe? Yes, such a macro name is safe. Bruno

Re: gnulib-tool Python tracebacks after control-C

2024-05-17 Thread Bruno Haible
Collin Funk wrote: > Ah, interesting. I think in English it would mostly depend on the > context. "Interruption" means you are stopping something from > progressing, but I don't think the word itself describes if it is > temporary or not. "Stop" more strongly indicates a permanent halting > of the

Re: doc: Mention gnulib putenv module?

2024-05-17 Thread Bruno Haible
Collin Funk wrote: > Done in the two attached patches. Now we can use the usual doc structure. 2024-05-17 Bruno Haible putenv-gnu: Update documentation. * doc/posix-functions/putenv.texi: Refer also to the glibc documentation. Use the usual doc structure. diff --git

doc: Update outdated module name.

2024-05-17 Thread Collin Funk
In the NEWS file: 2009-04-01 visibility Renamed to lib-symbol-visibility. The commit that did this missed a reference to 'visibility' in the documentation. This patch fixes it. CollinFrom fe8453457c44194354bea89347f713562f67aae2 Mon Sep 17 00:00:00 2001 From: Collin Funk Date: Fri,

Re: byteswap: Use inline functions instead of macros.

2024-05-17 Thread Collin Funk
Hi Paul, On 5/16/24 10:16 PM, Paul Eggert wrote: >> +#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))\ >> + || (defined __has_builtin && __has_builtin (__builtin_bswap32)) > > Unfortunately this usage is not portable, not for __has_builtin or for any of > the other