noreturn tests: Avoid test failure on Solaris 10/x86 with cc

2021-01-18 Thread Bruno Haible
On Solaris 10/x86 (32-bit) with cc, I see this test failure: FAIL test-noreturn (exit status: 76) This patch fixes it. 2021-01-18 Bruno Haible noreturn tests: Avoid test failure on Solaris 10/x86 with cc. * tests/test-noreturn.c (main): Return 0. diff --git a/tests/test-n

Re: immutable: Implement on native Windows

2021-01-18 Thread Gisle Vanem
Bruno Haible wrote: The 'immutable' module, so far, worked only on platforms with mmap() and mprotect(). With this patch, it also works on native Windows. ... + if (!CloseHandle (h)) +{ + UnmapViewOfFile (mem_w); + UnmapViewOfFile (mem_r); + CloseHandle (h); + return

[PATCH 2/7] yield: Fix linkage to threadlib on OS/2 kLIBC

2021-01-18 Thread KO Myung-Hun
* lib/sched_yield.c (sched_yield) [OS/2 kLIBC]: New. * modules/yield (Depends-on): Add sched_yield. --- lib/sched_yield.c | 13 + modules/yield | 1 + 2 files changed, 14 insertions(+) diff --git a/lib/sched_yield.c b/lib/sched_yield.c index 0a0ff3c9c..880711405 100644 --- a/lib/

[PATCH 7/7] spawn-pipe: Fix SIGSEGV on OS/2 kLIBC

2021-01-18 Thread KO Myung-Hun
* lib/spawn-pipe.c [OS/2 kLIBC]: Check directory correctly if it means a current directory. --- lib/spawn-pipe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/spawn-pipe.c b/lib/spawn-pipe.c index 641e9216f..0fe86ffe2 100644 --- a/lib/spawn-pipe.c +++ b/lib/spawn-pipe.c @

[PATCH 5/7] zerosize-ptr: Fix compilation on OS/2 kLIBC

2021-01-18 Thread KO Myung-Hun
OS/2 kLIBC has and mprotect() but not mmap(). As a result, it's not enough to test with HAVE_SYS_MMAN_H and HAVE_MPROTECT. It's necessary to test with HAVE_MMAP on OS/2 kLIBC. * tests/zerosize-ptr.h [OS/2 kLIBC]: Test with HAVE_MMAP, too. (zerosize_ptr) [OS/2 kLIBC]: Likewise. --- tests/zerosize

[PATCH 6/7] dirent: Redefine dirfd macro as a rpl function always

2021-01-18 Thread KO Myung-Hun
On OS/2 kLIBC, dirfd is defined as a macro not a function. Because of this, dirfd is not redefined as rpl function in C++ mode. As a result, the following error occurs: - ./../gllib/dirent.h:689:1: error: 'dirfd' was not declared in this scope; did you mean 'gnulib::dirfd'? 689 | _GL_CXXALI

[PATCH 4/7] stdlib: putenv() needs a cast on OS/2 kLIBC

2021-01-18 Thread KO Myung-Hun
On OS/2 kLIBC, the first parameter of putenv () is `const char *string' not `char *string'. * lib/stdlib.in.h: Use _GL_CXXALIAS_SYS_CAST() for putenv(). --- lib/stdlib.in.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index 49fc44e14..a0

[PATCH 3/7] stddef: Fix compilation for max_align_t on OS/2 kLIBC

2021-01-18 Thread KO Myung-Hun
On OS/2 kLIBC, `max_align_t' is defined only in C++ mode. * lib/stddef.in.h [OS/2 kLIBC]: Include in C++ mode. --- lib/stddef.in.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/stddef.in.h b/lib/stddef.in.h index 77147e9bc..c415cbb85 100644 --- a/lib/stddef.in.h +++ b

[PATCH 1/7] spawn: Use special invocation for on OS/2 kLIBC

2021-01-18 Thread KO Myung-Hun
On OS/2 kLIBC, includes . Then -> -> -> are included by GNULIB. In this situation, `struct sched_param' is not yet defined. * lib/spawn.in.h: Use special invocation to include properly on OS/2 kLIBC. --- lib/spawn.in.h | 22 -- 1 file changed, 20 insertions(+), 2 deletio

Re: Cygwin bugs for which Gnulib adds workarounds

2021-01-18 Thread Ken Brown
Hi Bruno, On 1/18/2021 4:39 AM, Bruno Haible wrote: Hi Ken, Thank you for having a look at the canonicalize problem (on which I'm not yet convinced that it's a bug in Cygwin - it could also be a problem on Gnulib's side). OK, I'll hold off on trying to fix it. The simple-minded fix I had in

Cygwin bugs for which Gnulib adds workarounds

2021-01-18 Thread Bruno Haible
Hi Ken, Thank you for having a look at the canonicalize problem (on which I'm not yet convinced that it's a bug in Cygwin - it could also be a problem on Gnulib's side). When I look at the config.cache file on Cygwin 2.9, and in particular the *_works variable whose value is 'no', I see a number

Re: immutable string type

2021-01-18 Thread Bruno Haible
Tim Rühsen wrote on 2019-12-29: > >> As a more general approach, a function that switches already allocated > >> memory into read-only memory would be handy. Like in > >> - m = malloc() > >> - initialize m with some data > >> - if in debug mode: call memmap_readonly(m) - from this point on 'm' i

uninorm tests: Fix compilation error on Cygwin

2021-01-18 Thread Bruno Haible
When compiling a testdir for all of Gnulib, on Cygwin, with libunistring preinstalled, I get compilation errors such as: In file included from ../../gltests/uninorm/test-nfc.c:21:0: /usr/local/cygwin64/include/uninorm.h:130:21: error: initializer element is not constant #define UNINORM_NFC (&uni