]> Savannah Git Hosting - gnulib.git/log
gnulib.git
4 years agocanonicalize: fix AIX test failures
Paul Eggert [Mon, 14 Dec 2020 01:16:01 +0000 (17:16 -0800)]
canonicalize: fix AIX test failures

Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00109.html
* lib/canonicalize.c (canonicalize_filename_mode):
When testing a file name ending in '/', use stat rather than
readlink, so that it does the right thing on AIX.
* modules/canonicalize (Depends-on): Add readlink, to pull in the
recent changes in the Gnulib readlink module.

4 years agoAssume readlink/readlinkat ERANGE fix
Paul Eggert [Mon, 14 Dec 2020 00:56:10 +0000 (16:56 -0800)]
Assume readlink/readlinkat ERANGE fix

* lib/areadlink-with-size.c (areadlink_with_size):
* lib/areadlinkat-with-size.c (areadlinkat_with_size):
* lib/careadlinkat.c (readlink_stk):
Do not worry about readlink or readlinkat failing with errno == ERANGE,
since the Gnulib readlink and readlinkat modules now fix that.

4 years agogetcwd: port to AIX
Paul Eggert [Mon, 14 Dec 2020 00:51:58 +0000 (16:51 -0800)]
getcwd: port to AIX

* lib/getcwd.c [!_LIBC]: Undef stat64 before #defining it,
in case our sys/stat.h #defined a function macro with the same name.

4 years agoreadlink, readlinkat: add ERANGE portability
Paul Eggert [Mon, 14 Dec 2020 00:48:26 +0000 (16:48 -0800)]
readlink, readlinkat: add ERANGE portability

Fix some portability issues with Gnulib's readlink and readlinkat,
notably mostly working around the ERANGE problem in AIX and HP-UX.
* doc/posix-functions/readlink.texi:
* doc/posix-functions/readlinkat.texi:
ERANGE problem is mostly fixed now.  Mention AIX problem with
trailing / and EINVAL.  Lessen differences between these two files.
* lib/readlink.c (rpl_readlink):
* lib/readlinkat.c (rpl_readlinkat):
If stat ("FILE/", ...) reports EOVERFLOW, treat FILE/ as an
existing directory.  Mostly work around READLINK_TRUNCATE BUG.
Lessen spurious differences between the readlink and readlinkat code.
* lib/readlinkat.c (rpl_readlinkat):
Fix bug where stat was used where fstatat was intended.
* m4/readlink.m4 (gl_FUNC_READLINK):
Rename gl_cv_func_readlink_works to gl_cv_func_readlink_trailing_slash
to identify readlink problems more precisely.  All uses changed.
Guess no on AIX or HP-UX for this variable.
Add check for whether readlink truncates results,
and define new macro READLINK_TRUCATE_BUG accordingly.
* m4/readlinkat.m4 (gl_FUNC_READLINKAT):
Also check gl_cv_func_readlink_trailing_slash when deciding
whether to replace readlinkat.
* modules/readlinkat (Depends-on): Most dependencies are also
needed if replacing readlinkat.  fstatat is different, as it
is needed only if replacing an existing readlinkat.

4 years agospawn-pipe: Fix hanging processes on Windows (regression 2020-11-30).
Bruno Haible [Sun, 13 Dec 2020 20:45:55 +0000 (21:45 +0100)]
spawn-pipe: Fix hanging processes on Windows (regression 2020-11-30).

* lib/spawn-pipe.c (create_pipe): After spawning the subprocess, close
the stdin_handle and/or stdout_handle.

4 years agoFix gnulib-tool error when some modules occur in tests/.
Bruno Haible [Sat, 12 Dec 2020 23:28:20 +0000 (00:28 +0100)]
Fix gnulib-tool error when some modules occur in tests/.

* doc/gnulib.texi (Specification): Update statistics.
(Autoconf macros): Don't suggest to use AC_LIBOBJ in a .m4 file.
(Using AC_LIBOBJ): New section.
* check-AC_LIBOBJ: New file.
* modules/fnmatch-gnu (Files): Add lib/fnmatch.c.
* modules/fopen-gnu (Files): Add lib/fopen.c.
* modules/memmem (Files): Add lib/memmem.c.
* modules/renameat (Files): Add lib/at-func2.c.
* modules/strcasestr (Files): Add lib/strcasestr.c.
* modules/strstr (Files): Add lib/strstr.c.

4 years agosh-quote, execute, spawn-pipe, etc.: Make better use of 'const'.
Bruno Haible [Sat, 12 Dec 2020 03:18:54 +0000 (04:18 +0100)]
sh-quote, execute, spawn-pipe, etc.: Make better use of 'const'.

* lib/sh-quote.h (shell_quote_argv): Does not need write access to the
elements of argv.
* lib/sh-quote.c (shell_quote_argv): Likewise.
* lib/windows-spawn.h (prepare_spawn): Add 'const' the argument type and
the return type.
* lib/windows-spawn.c (prepare_spawn): Likewise.
* lib/os2-spawn.h (prepare_spawn): Likewise.
* lib/os2-spawn.c (prepare_spawn): Likewise.
* lib/execute.h (execute): Does not need write access to the elements of
prog_argv.
* lib/execute.c (execute): Likewise.
* lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi):
Likewise.
* lib/spawn-pipe.c (create_pipe, create_pipe_bidi, create_pipe_in,
create_pipe_out): Likewise.
* lib/pipe-filter.h (pipe_filter_ii_execute, pipe_filter_gi_create):
Likewise.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): Likewise.
* lib/pipe-filter-gi.c (pipe_filter_gi_create): Likewise.
* lib/javaexec.h (execute_fn): Does not need write access to the
elements of prog_argv.
* lib/javaexec.c (execute_java_class): Update variable types and remove
casts to 'char *'.
* lib/csharpexec.h (execute_fn): Does not need write access to the
elements of prog_argv.
* lib/csharpexec.c (execute_csharp_using_mono,
execute_csharp_using_sscli): Update variable types and remove casts to
'char *'.
* lib/javacomp.c (compile_using_envjavac, compile_using_gcj,
compile_using_javac, compile_using_jikes, is_envjavac_gcj,
is_envjavac_gcj43, is_gcj_present, is_gcj_43, is_javac_present,
is_jikes_present): Update variable types and remove casts to 'char *'.
* lib/javaversion.c (execute_and_read_line): Does not need write access
to the elements of prog_argv.
* lib/csharpcomp.c (compile_csharp_using_mono,
compile_csharp_using_sscli): Update variable types and remove casts to
'char *'.
* tests/test-sh-quote.c (main): Update variable types and remove casts
to 'char *'.
* tests/test-execute-main.c (main): Update variable types and remove
casts to 'char *'.
* tests/test-spawn-pipe-main.c (test_pipe): Update variable types and
remove casts to 'char *'.
* NEWS: Mention the changes.

4 years agoexecute-tests: Fix compilation error with MSVC.
Bruno Haible [Sat, 12 Dec 2020 02:55:48 +0000 (03:55 +0100)]
execute-tests: Fix compilation error with MSVC.

* tests/test-execute-child.c (is_device): With _fstat, use
'struct _stat', not 'struct stat'.

4 years agovararrays: just use 2.70
Paul Eggert [Sat, 12 Dec 2020 01:35:59 +0000 (17:35 -0800)]
vararrays: just use 2.70

* m4/vararrays.m4 (AC_C_VARARRAYS): Do not override Autoconf 2.70
and later, since Autoconf 2.70 matches Gnulib now.

4 years agosys_types: just use 2.70
Paul Eggert [Sat, 12 Dec 2020 01:34:53 +0000 (17:34 -0800)]
sys_types: just use 2.70

* m4/sys_types_h.m4 (AC_HEADER_MAJOR):
Reindent to match Autoconf sources.
Use Autoconf 2.70 as a prerequisite, not 2.69c.

4 years agostdint: port to Autoconf 2.70
Paul Eggert [Sat, 12 Dec 2020 01:33:36 +0000 (17:33 -0800)]
stdint: port to Autoconf 2.70

* m4/stdint.m4 (gl_STDINT_H): Check for inttypes.h and sys/types.h
instead of assuming that AC_INCLUDES_DEFAULT does it.
The old code relied on AC_INCLUDES_DEFAULT being called
and setting ac_cv_header_inttypes_h and ac_cv_header_sys_types_h,
but this does not occur in Autoconf 2.70.

4 years agopid_t.m4: just use 2.70
Paul Eggert [Fri, 11 Dec 2020 23:52:22 +0000 (15:52 -0800)]
pid_t.m4: just use 2.70

* m4/pid_t.m4 (AC_TYPE_PID_T):
Use Autoconf 2.70 as a prerequisite, not 2.69c.

4 years agolargefile: just use 2.70
Paul Eggert [Fri, 11 Dec 2020 23:51:27 +0000 (15:51 -0800)]
largefile: just use 2.70

* m4/largefile.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES):
Use Autoconf 2.70 as a prerequisite, not 2.69c.

4 years agoAC_C_RESTRICT: update from Autoconf
Paul Eggert [Fri, 11 Dec 2020 23:50:34 +0000 (15:50 -0800)]
AC_C_RESTRICT: update from Autoconf

* m4/gnulib-common.m4 (gl_PROG_CC_C99): Use Autoconf 2.70
as a prerequisite, not 2.69c, since 2.70 is now out.
(AC_C_RESTRICT): Define only for 2.70 or earlier.
Try __restrict__ before __restrict.

4 years agoextensions: update from Autoconf
Paul Eggert [Fri, 11 Dec 2020 23:47:24 +0000 (15:47 -0800)]
extensions: update from Autoconf

* m4/extensions.m4 (AC_CHECK_INCLUDES_DEFAULT):
Provide a default implementation for Autoconf 2.69 or earlier.
(AC_USE_SYSTEM_EXTENSIONS): Copy from Autoconf git.  Define only
if Autoconf 2.70 or earlier, since 2.70.1 or later should be OK.

4 years agoalloca: update from Autoconf
Paul Eggert [Fri, 11 Dec 2020 23:46:17 +0000 (15:46 -0800)]
alloca: update from Autoconf

* m4/alloca.m4 (gl_PREREQ_ALLOCA):
Trivial update to match Autoconf 2.70.

4 years agomemchr: Work around memory overrun bug on AIX 7.2.
Bruno Haible [Fri, 11 Dec 2020 11:14:03 +0000 (12:14 +0100)]
memchr: Work around memory overrun bug on AIX 7.2.

* m4/memchr.m4 (gl_FUNC_MEMCHR): Test against AIX 7.2 bug.
* doc/posix-functions/memchr.texi: Mention the AIX bug.

4 years agoexecute-tests: Fix compilation error on AIX in 32-bit mode.
Bruno Haible [Fri, 11 Dec 2020 10:47:30 +0000 (11:47 +0100)]
execute-tests: Fix compilation error on AIX in 32-bit mode.

* tests/test-execute-child.c: In order to get the original definition of
fstat, don't use '#undef fstat' and '#undef stat'. Instead, arrange to
include the system's <sys/stat.h> and use it before including other
header files.

4 years agowindows-spawn: Relicense under LGPLv2+.
Bruno Haible [Thu, 10 Dec 2020 22:49:28 +0000 (23:49 +0100)]
windows-spawn: Relicense under LGPLv2+.

* modules/windows-spawn (License): Change to LGPLv2+.

4 years agoexecute, spawn-pipe: Fix memory leak on native Windows.
Bruno Haible [Thu, 10 Dec 2020 22:43:20 +0000 (23:43 +0100)]
execute, spawn-pipe: Fix memory leak on native Windows.

* lib/windows-spawn.h (prepare_spawn): Add a second parameter.
* lib/windows-spawn.c: Don't include xalloc.h.
(quoted_arg_length, quoted_arg_string): New functions, extracted from
prepare_spawn.
(prepare_spawn): Use malloc instead of XNMALLOC. Allocate memory for all
elements of *new_argv together.
* modules/windows-spawn (Depends-on): Remove xalloc. Add malloc-posix.
* lib/os2-spawn.h (prepare_spawn): Add a second parameter.
* lib/os2-spawn.c: Don't include xalloc.h.
(prepare_spawn): Use malloc instead of XNMALLOC. Allocate memory for all
elements of *new_argv together.
* lib/execute.c: Include xalloc.h.
(execute): Check return value of prepare_spawn. Free the memory
allocated by prepare_spawn.
* modules/execute (Depends-on): Add xalloc-die.
* lib/spawn-pipe.c: Include xalloc.h.
(create_pipe): Check return value of prepare_spawn. Free the memory
allocated by prepare_spawn.
* modules/spawn-pipe (Depends-on): Add xalloc-die.

4 years agofindprog-in: Relicense under LGPLv2+.
Bruno Haible [Thu, 10 Dec 2020 20:47:39 +0000 (21:47 +0100)]
findprog-in: Relicense under LGPLv2+.

Paul Smith's approval is in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00072.html>.

* modules/findprog-in (License): Change to LGPLv2+.

4 years agofindprog-in: Don't exit upon out-of-memory.
Bruno Haible [Thu, 10 Dec 2020 20:32:54 +0000 (21:32 +0100)]
findprog-in: Don't exit upon out-of-memory.

* lib/findprog.h (find_in_given_path): Document ENOMEM as possible error
code.
* lib/findprog-in.c: Don't include xalloc.h.
(find_in_given_path): Call concatenated_filename, not
xconcatenated_filename. Call strdup, not xstrdup. Upon out-of-memory,
return NULL with errno set.
* modules/findprog-in (Depends-on): Remove xconcat-filename, xalloc. Add
concat-filename, strdup-posix, malloc-posix.

4 years agofmaf: Work around a bug on FreeBSD 12.2/arm.
Bruno Haible [Wed, 9 Dec 2020 23:15:42 +0000 (00:15 +0100)]
fmaf: Work around a bug on FreeBSD 12.2/arm.

* m4/fmaf.m4 (gl_FUNC_FMAF_WORKS): Add one more test.
* doc/posix-functions/fmaf.texi: Mention the FreeBSD bug.

4 years agothreadlib: Fix test-fstrcmp failure on FreeBSD 11.
Bruno Haible [Wed, 9 Dec 2020 17:51:40 +0000 (18:51 +0100)]
threadlib: Fix test-fstrcmp failure on FreeBSD 11.

* m4/threadlib.m4 (gl_THREADLIB_BODY): When weak symbols are not present
on FreeBSD, define PTHREAD_IN_USE_DETECTION_HARD.
* lib/glthread/threadlib.c: Include <errno.h>.
(glthread_in_use): For FreeBSD, provide an alternative implementation
that uses pthread_key_create.

4 years agomath C++ tests: Fix compilation error in with clang >= 7 on FreeBSD.
Bruno Haible [Wed, 9 Dec 2020 17:08:18 +0000 (18:08 +0100)]
math C++ tests: Fix compilation error in with clang >= 7 on FreeBSD.

* lib/math.in.h (isnan): For clang >= 7 on FreeBSD, declare 'rpl_isnan',
not 'isnan'.

4 years agostd-gnu11: Make compatible with Autoconf 2.70.
Bruno Haible [Wed, 9 Dec 2020 03:06:40 +0000 (04:06 +0100)]
std-gnu11: Make compatible with Autoconf 2.70.

* m4/std-gnu11.m4: Disable the entire file if Autoconf >= 2.70 is in
use.

4 years agoargp: Avoid undefined behaviour when invoking qsort().
Bruno Haible [Tue, 8 Dec 2020 20:28:18 +0000 (21:28 +0100)]
argp: Avoid undefined behaviour when invoking qsort().

This fixes a test-argp-2.sh test failure on macOS and FreeBSD.

Reported by Jeffrey Walton <noloader@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-03/msg00085.html>.

* lib/argp-help.c (group_cmp): Remove third argument.
(hol_sibling_cluster_cmp, hol_cousin_cluster_cmp): New functions, based
upon hol_cluster_cmp.
(hol_cluster_cmp): Use hol_cousin_cluster_cmp.
(hol_entry_cmp): Rewritten to implement a total order.

4 years agoargp: Improve comments.
Bruno Haible [Tue, 8 Dec 2020 18:54:27 +0000 (19:54 +0100)]
argp: Improve comments.

* lib/argp-help.c: Add sectioning comments. Write NULL to designate a
null pointer.
(struct hol_entry): Fix comment regarding sort order of group.
(hol_entry_short_iterate, hol_entry_long_iterate): Add comment.
(until_short, canon_doc_option, hol_entry_qcmp): Improve comment.
(hol_cluster_is_child, argp_hol): Move functions.
(HOL_ENTRY_PTRCMP): Remove unused macro.

4 years agoargp: Don't pass invalid arguments to isspace() and isalnum().
Bruno Haible [Tue, 8 Dec 2020 18:21:03 +0000 (19:21 +0100)]
argp: Don't pass invalid arguments to isspace() and isalnum().

* lib/argp-help.c (canon_doc_option): Cast character to 'unsigned int'
before passing it to isspace() or isalnum().

4 years agoargp: Don't rely on undefined behaviour of _tolower().
Bruno Haible [Tue, 8 Dec 2020 18:02:02 +0000 (19:02 +0100)]
argp: Don't rely on undefined behaviour of _tolower().

Patch by Eric Blake
<https://lists.gnu.org/archive/html/bug-gnulib/2009-09/msg00287.html>.

* lib/argp-help.c (hol_entry_cmp): Don't use _tolower on values that are
not upper-case.  Pass correct range to tolower.

4 years agounicodeio: Fix wrong result on FreeBSD.
Bruno Haible [Mon, 7 Dec 2020 20:13:54 +0000 (21:13 +0100)]
unicodeio: Fix wrong result on FreeBSD.

* lib/unicodeio.c (unicode_to_mb): Handle question mark fallback
characters on all platforms.

4 years agoget-rusage-data tests: Avoid test failure on FreeBSD/x86_64.
Bruno Haible [Mon, 7 Dec 2020 19:57:47 +0000 (20:57 +0100)]
get-rusage-data tests: Avoid test failure on FreeBSD/x86_64.

* tests/test-get-rusage-data.c (main): Don't expect a strict increase on
FreeBSD systems.

4 years agoget-rusage-data: Fix link error on FreeBSD 12.2/arm64.
Bruno Haible [Mon, 7 Dec 2020 18:43:06 +0000 (19:43 +0100)]
get-rusage-data: Fix link error on FreeBSD 12.2/arm64.

* modules/get-rusage-data (configure.ac): Test whether sbrk exists.
* lib/get-rusage-data.c (get_rusage_data_via_setrlimit): Define
trivially of sbrk is not available.
* doc/glibc-functions/sbrk.texi: Mention that the function does not
exist in FreeBSD 12.2/arm64.
* doc/glibc-functions/brk.texi: Likewise.

4 years agoCorrect interaction between gl_ANSI_CXX and AC_PROG_CXX.
Bruno Haible [Mon, 7 Dec 2020 13:05:09 +0000 (14:05 +0100)]
Correct interaction between gl_ANSI_CXX and AC_PROG_CXX.

Suggested by Zack Weinberg in
<https://savannah.gnu.org/support/?110294>.

* m4/ansi-c++.m4 (gl_ANSI_CXX): Mark AC_PROG_CXX as provided.
* modules/uchar-c++-tests: Revert the workaround from 2020-08-18.

4 years agoTweak the Windows oldnames workaround.
Bruno Haible [Mon, 7 Dec 2020 12:50:53 +0000 (13:50 +0100)]
Tweak the Windows oldnames workaround.

Reported by Daniel R. Hurtmans <Daniel.Hurtmans@ulb.ac.be> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00073.html>.

* lib/unistd.in.h: On native Windows, include <io.h> and <direct.h>
always.
(getcwd): Use _GL_CXXALIAS_MDA_CAST.
* lib/stdlib.in.h (putenv): Likewise.

4 years agodoc: fix flat address space discussion
Paul Eggert [Sun, 6 Dec 2020 18:17:39 +0000 (10:17 -0800)]
doc: fix flat address space discussion

* doc/gnulib-readme.texi (Other portability assumptions):
Move the all-bits-zero assumption outside the flat address space
section, since the two issues are independent.

4 years agodoc: document -static-libubsan more
Paul Eggert [Sun, 6 Dec 2020 18:03:37 +0000 (10:03 -0800)]
doc: document -static-libubsan more

* doc/gnulib-readme.texi (High Quality): Document pros and cons of
-static-libubsan a bit more.  Mostly cons.

4 years agodoc: Add more details regarding the undefined behaviour sanitizer.
Bruno Haible [Sun, 6 Dec 2020 16:59:45 +0000 (17:59 +0100)]
doc: Add more details regarding the undefined behaviour sanitizer.

* doc/gnulib-readme.texi (High Quality): Describe
-fsanitize-undefined-trap-on-error better.

4 years agoDo the Windows oldnames workaround through the C++ GNULIB_NAMESPACE.
Bruno Haible [Sun, 6 Dec 2020 15:43:36 +0000 (16:43 +0100)]
Do the Windows oldnames workaround through the C++ GNULIB_NAMESPACE.

Reported by Daniel R. Hurtmans <Daniel.Hurtmans@ulb.ac.be> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00029.html>.

* lib/c++defs.h (_GL_CXXALIAS_MDA_CAST): New macro.
* lib/fcntl.in.h (creat, open):  In C++ mode, when GNULIB_NAMESPACE is
defined: 1. Define a symbol in this namespace. 2. Don't redirect using
a preprocessor #define.
* lib/math.in.h (j0, j1, jn, y0, y1, yn): Likewise.
* lib/search.in.h (lfind, lsearch): Likewise.
* lib/stdio.in.h (fcloseall, fdopen, fileno, getw, putw, tempnam):
Likewise.
* lib/stdlib.in.h (ecvt, fcvt, gcvt, mktemp, putenv): Likewise.
* lib/string.in.h (memccpy, strdup): Likewise.
* lib/sys_stat.in.h (chmod, umask): Likewise.
* lib/time.in.h (tzset): Likewise.
* lib/unistd.in.h (access, chdir, close, dup, dup2, execl, execle,
execlp, execv, execve, execvp, execvpe, getcwd, getpid, isatty, lseek,
read, rmdir, swab, unlink, write): Likewise.
* lib/utime.in.h (utime): Likewise.
* lib/wchar.in.h (wcsdup): Likewise.
* m4/stdio_h.m4 (gl_STDIO_H_DEFAULTS): Initialize HAVE_DECL_FCLOSEALL.
(gl_STDIO_H): Set HAVE_DECL_FCLOSEALL.
* modules/stdio (Makefile.am): Substitute HAVE_DECL_FCLOSEALL.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_ECVT,
HAVE_DECL_FCVT, HAVE_DECL_GCVT.
(gl_STDLIB_H): Set HAVE_DECL_ECVT, HAVE_DECL_FCVT, HAVE_DECL_GCVT.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_ECVT,
HAVE_DECL_FCVT, HAVE_DECL_GCVT.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize HAVE_DECL_EXECVPE.
(gl_UNISTD_H): Set HAVE_DECL_EXECVPE.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_EXECVPE.
* m4/wchar_h.m4 (gl_WCHAR_H_DEFAULTS): Initialize HAVE_DECL_WCSDUP.
(gl_WCHAR_H): Set HAVE_DECL_WCSDUP.
* modules/wchar (Makefile.am): Substitute HAVE_DECL_WCSDUP.

4 years agodoc: Mention some missing function declarations.
Bruno Haible [Sun, 6 Dec 2020 14:51:41 +0000 (15:51 +0100)]
doc: Mention some missing function declarations.

* doc/glibc-functions/execvpe.texi: Mention the missing declaration on
AIX.
* doc/glibc-functions/fcloseall.texi: Mention the missing declaration on
FreeBSD.
* doc/pastposix-functions/ecvt.texi: Mention the missing declaration on
Cygwin.
* doc/pastposix-functions/fcvt.texi: Likewise.
* doc/pastposix-functions/gcvt.texi: Likewise.

4 years agodoc: Tweak example.
Bruno Haible [Sun, 6 Dec 2020 11:49:58 +0000 (12:49 +0100)]
doc: Tweak example.

* doc/intprops.texi (Checking Integer Overflow): Use 'printf', not
'print'.

4 years agofilenamecat-tests: Use idx_t for nonnegative ptrdiff_t variables.
Bruno Haible [Sun, 6 Dec 2020 11:31:15 +0000 (12:31 +0100)]
filenamecat-tests: Use idx_t for nonnegative ptrdiff_t variables.

* tests/test-filenamecat.c: Include idx.h.
(main): Mark prefixlen as nonnegative.
* modules/filenamecat-tests (Depends-on): Add idx.

4 years agotime_rz: Use idx_t for nonnegative ptrdiff_t variables.
Bruno Haible [Sun, 6 Dec 2020 11:31:13 +0000 (12:31 +0100)]
time_rz: Use idx_t for nonnegative ptrdiff_t variables.

* lib/time_rz.c: Include idx.h.
(save_abbr): Mark zone_size as nonnegative.
* modules/time_rz (Depends-on): Add idx.

4 years agoparse-datetime: Use idx_t for nonnegative ptrdiff_t variables.
Bruno Haible [Sun, 6 Dec 2020 11:31:11 +0000 (12:31 +0100)]
parse-datetime: Use idx_t for nonnegative ptrdiff_t variables.

* lib/parse-datetime.y: Include idx.h.
(textint): Mark digits as nonnegative.
(parser_control): Mark dates_seen, days_seen, local_zones_seen,
dsts_seen, times_seen, zones_seen as nonnegative.
(lookup_word): Mark wordlen as nonnegative.
(yylex): Mark count as nonnegative.
(parse_datetime2): Mark tzsize as nonnegative.
* modules/parse-datetime (Depends-on): Add idx.

4 years agofnmatch: Use idx_t for nonnegative ptrdiff_t variables.
Bruno Haible [Sun, 6 Dec 2020 11:31:08 +0000 (12:31 +0100)]
fnmatch: Use idx_t for nonnegative ptrdiff_t variables.

* lib/fnmatch.c: Include idx.h. In glibc, define idx_t directly.
* lib/fnmatch_loop.c (EXT): Mark slen, new_used, plensize as
nonnegative.
* modules/fnmatch (Depends-on): Add idx.

4 years agoc-stack: Use idx_t for nonnegative ptrdiff_t variables.
Bruno Haible [Sun, 6 Dec 2020 11:31:06 +0000 (12:31 +0100)]
c-stack: Use idx_t for nonnegative ptrdiff_t variables.

* lib/c-stack.c: Include idx.h.
(die): Mark buflen as nonnegative.
* modules/c-stack (Depends-on): Add idx.

4 years agobackupfile: Use idx_t for nonnegative ptrdiff_t variables.
Bruno Haible [Sun, 6 Dec 2020 11:30:42 +0000 (12:30 +0100)]
backupfile: Use idx_t for nonnegative ptrdiff_t variables.

* lib/backupfile.c: Include idx.h.
(numbered_backup): Mark base_offset as nonnegative.
(backupfile_internal): Likewise.
* modules/backup-rename (Depends-on): Add idx.
* modules/backupfile (Depends-on): Likewise.

4 years agodoc: fix curved quotes issue
Paul Eggert [Sun, 6 Dec 2020 01:33:29 +0000 (17:33 -0800)]
doc: fix curved quotes issue

* doc/gnulib.texi: Set txicodequoteundirected and
txicodequotebacktick so that ` and ' in examples do not generate
curved single quotes that do the wrong thing when cut and pasted.

4 years agodoc: mention static and dynamic checking
Paul Eggert [Sun, 6 Dec 2020 01:31:43 +0000 (17:31 -0800)]
doc: mention static and dynamic checking

* doc/gnulib-readme.texi (High Quality): Add a bit of advice
for static and dynamic checking.

4 years agointprops: Add INT_ADD_OK etc.
Paul Eggert [Sat, 5 Dec 2020 23:54:22 +0000 (15:54 -0800)]
intprops: Add INT_ADD_OK etc.

* doc/intprops.texi (Checking Integer Overflow): New section.
* lib/intprops.h: From a suggestion by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2020-12/msg00051.html
(SAFE_INT_ADD, SAFE_INT_SUBTRACT, SAFE_INT_MULTIPLY): New macros.

4 years agodoc: move exotic platfroms to Target Platforms
Paul Eggert [Sat, 5 Dec 2020 21:10:28 +0000 (13:10 -0800)]
doc: move exotic platfroms to Target Platforms

* doc/gnulib-intro.texi (Supported Platforms)
(Formerly Supported Platforms, Unsupported Platforms):
New subsections, split off from Target Platforms.
(Unsupported Platforms): Move the exotic-platform stuff here ...
* doc/gnulib-readme.texi (Exotic platforms): ... from this removed
section.

4 years agodoc: minor rewording for IBM i
Paul Eggert [Sat, 5 Dec 2020 19:42:28 +0000 (11:42 -0800)]
doc: minor rewording for IBM i

4 years agodoc: mention intptr_t etc. and IBM i
Paul Eggert [Sat, 5 Dec 2020 19:27:13 +0000 (11:27 -0800)]
doc: mention intptr_t etc. and IBM i

* doc/gnulib-readme.texi (Other portability assumptions):
Mention intptr_t and uintptr_t, and that arithmetic on them
works in the usual way.
(Exotic platforms): New section, containing material from
the old 'Integer Portability' section.  Also mention IBM i.
* doc/intprops.texi (Wraparound Arithmetic):
Say that the macros work on unsigned integers too.
(Integer Portability): Remove.

4 years agoutime: Fix a test failure on macOS 10.13.
Bruno Haible [Sat, 5 Dec 2020 01:51:06 +0000 (02:51 +0100)]
utime: Fix a test failure on macOS 10.13.

* lib/utime.c (utime): Fix mistake in last commit.

4 years agoutime: Fix a test failure on macOS 10.13.
Bruno Haible [Fri, 4 Dec 2020 23:17:02 +0000 (00:17 +0100)]
utime: Fix a test failure on macOS 10.13.

Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.

* m4/utime.m4 (gl_FUNC_UTIME): Test whether utime handles trailing
slashes on files.
* lib/utime.c (utime): Add alternative implementation for Unix
platforms.
* modules/utime (Depends-on): Add stat.
* doc/posix-functions/utime.texi: Mention the macOS 10.13 bug.
* doc/posix-functions/lstat.texi: Mention that macOS 10.13 also has the
trailing-slash bug.
* doc/posix-functions/open.texi: Likewise.
* doc/posix-functions/stat.texi: Likewise.
* doc/posix-functions/symlink.texi: Likewise.

4 years agointprops: update doc and mention Unisys
Paul Eggert [Fri, 4 Dec 2020 18:44:51 +0000 (10:44 -0800)]
intprops: update doc and mention Unisys

* doc/gnulib-readme.texi (Other portability assumptions):
Also mention ptrdiff_t when talking about widths and overflow.
* doc/intprops.texi (Integer Properties): Summarize new section.
(Arithmetic Type Properties): Document that EXPR_SIGNED no longer
evaluates its argument.
(Integer Bounds): Fix typo.
(Wraparound Arithmetic): Remove obsolete comment about efficiency.
Document that the _WRAPV macros now support pointers to unsigned
integers.
(Integer Range Overflow): Update SEI CERT citation.
(Integer Portability): New subsection, which mentions
the oddball Unisys platforms as non-Gnulib targets.

4 years agoidx: Clarify that idx_t always behaves like a signed type.
Bruno Haible [Fri, 4 Dec 2020 02:19:47 +0000 (03:19 +0100)]
idx: Clarify that idx_t always behaves like a signed type.

Suggested by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00034.html>.

* lib/idx.h: Clarify that idx_t always behaves like a signed type.
Don't test UNSIGNED_IDX_T.

4 years agoidx: New module.
Bruno Haible [Thu, 3 Dec 2020 21:56:22 +0000 (22:56 +0100)]
idx: New module.

* lib/idx.h: New file.
* modules/idx: New file.
* lib/canonicalize-lgpl.c: Include idx.h. Use idx_t instead of
ptrdiff_t.
* lib/canonicalize.c: Likewise.
* modules/canonicalize-lgpl (Depends-on): Add idx.
* modules/canonicalize (Depends-on): Likewise.

4 years agofprintf-posix-tests: Avoid a test failure on macOS 10.13.
Bruno Haible [Thu, 3 Dec 2020 20:00:35 +0000 (21:00 +0100)]
fprintf-posix-tests: Avoid a test failure on macOS 10.13.

Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.

* tests/test-fprintf-posix3.c: Skip the test on macOS.
(main): Return a different exit code at each point. Allow 100 KB extra
memory consumption.
* tests/test-fprintf-posix3.sh: Update. Remove the "get_rusage_as()
doesn't work" diagnostic.

4 years agocanonicalize: refactor can_mode flag
Paul Eggert [Wed, 2 Dec 2020 22:25:43 +0000 (14:25 -0800)]
canonicalize: refactor can_mode flag

* lib/canonicalize.c (MULTIPLE_BITS_SET): Remove, replacing with ...
(multiple_bits_set): ... this new static function.  Uses changed.
(canonicalize_filename_mode): Refactor for clarity to avoid
modifying the CAN_MODE argument.

4 years agocanonicalize: prefer signed integer types
Paul Eggert [Wed, 2 Dec 2020 22:25:43 +0000 (14:25 -0800)]
canonicalize: prefer signed integer types

* lib/canonicalize.c: Include stddef.h, for ptrdiff_t.
(seen_triple, canonicalize_filename_mode): Prefer signed to
unsigned types where either will do, as they avoid some glitches
in comparisons and can trap on overflow when debugging.

4 years agocanonicalize: fix most of another EOVERFLOW issue
Paul Eggert [Wed, 2 Dec 2020 22:25:42 +0000 (14:25 -0800)]
canonicalize: fix most of another EOVERFLOW issue

* lib/canonicalize.c (canonicalize_filename_mode):
Do not call stat if fewer than 20 symlinks have been traversed.
This avoids EOVERFLOW failure in the common case where there
are not that many symlinks, while continuing to catch loops
(or fail due to EOVERFLOW) in the unusual case when there
are many symlinks to traverse.

4 years agocanonicalize: do not assume symlinks have st_ino
Paul Eggert [Wed, 2 Dec 2020 22:25:42 +0000 (14:25 -0800)]
canonicalize: do not assume symlinks have st_ino

* lib/canonicalize.c (canonicalize_filename_mode):
When checking for loops, use st_dev and st_ino from the parent
directory not from the symlink, as pre-2017 POSIX says these
members are not reliable for symlinks.  Couple this with START
(the remaining file name to be resolved), not NAME (the whole file
name with START as its suffix).
* modules/canonicalize (Depends-on): Depend on stat, not lstat.

4 years agocanonicalize: fix EOVERFLOW bug
Paul Eggert [Wed, 2 Dec 2020 22:25:41 +0000 (14:25 -0800)]
canonicalize: fix EOVERFLOW bug

* lib/canonicalize.c (canonicalize_filename_mode):
When testing whether a directory entry is a symbolic link, or a
directory or other, do not use lstat or stat or
areadlink_with_size.  Just use areadlink, as this suffices and it
avoids the EOVERFLOW problem that lstat and stat have.
* modules/canonicalize (Depends-on): Depend on areadlink instead
of areadlink-with-size and stat.

4 years agocanonicalize-lgpl: fix EOVERFLOW bug
Paul Eggert [Wed, 2 Dec 2020 22:25:41 +0000 (14:25 -0800)]
canonicalize-lgpl: fix EOVERFLOW bug

* lib/canonicalize-lgpl.c: Do not include <sys/stat.h>.
(__realpath): Do not use lstat.  Just use readlink, as this
suffices and it avoids the EOVERFLOW problem that lstat has.
* modules/canonicalize-lgpl (Depends-on): Remove lstat, sys_stat.

4 years agostrsignal-tests: Fix test failure on macOS 10.13.
Bruno Haible [Wed, 2 Dec 2020 21:30:10 +0000 (22:30 +0100)]
strsignal-tests: Fix test failure on macOS 10.13.

Reported by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.

* tests/test-strsignal.c (ASSERT_DESCRIPTION): Allow the actual result
to be longer than the expected result.

4 years agoFix compilation errors in test-math-c++.cc on FreeBSD 12.2/arm64.
Bruno Haible [Wed, 2 Dec 2020 20:15:21 +0000 (21:15 +0100)]
Fix compilation errors in test-math-c++.cc on FreeBSD 12.2/arm64.

* lib/math.in.h (_GL_INCLUDING_MATH_H): New macro, to work around
recursive self-include problem on FreeBSD 12.2 in C++ mode.

4 years agospawn-pipe: Allow caller to specify directory for the subprocess.
Bruno Haible [Wed, 2 Dec 2020 16:52:00 +0000 (17:52 +0100)]
spawn-pipe: Allow caller to specify directory for the subprocess.

* lib/spawn-pipe.h (create_pipe_out, create_pipe_in, create_pipe_bidi):
Add directory argument.
* lib/spawn-pipe.c: Include canonicalize.h, filename.h, findprog.h.
(create_pipe): Add directory argument. If specified, resolve the program
file name and make it absolute, first. Pass the directory to spawnpvech
and posix_spawn_file_actions_addchdir.
(create_pipe_bidi, create_pipe_in, create_pipe_out): Add directory
argument.
* modules/spawn-pipe (Depends-on): Add canonicalize, filename,
findprog-in, posix_spawn, posix_spawn_file_actions_addchdir.
* tests/test-spawn-pipe-main.c (test_pipe): Update.
* NEWS: Mention the change.
* lib/csharpcomp.c (compile_csharp_using_mono,
compile_csharp_using_sscli): Update.
* lib/javacomp.c (is_envjavac_gcj, is_envjavac_gcj43, is_gcj_present,
is_gcj_43): Update.
* lib/javaversion.c (execute_and_read_line): Update.
* lib/pipe-filter-gi.c (pipe_filter_gi_create): Update.
* lib/pipe-filter-ii.c (pipe_filter_ii_execute): Update.

4 years agoexecute: Allow caller to specify directory for the subprocess.
Bruno Haible [Wed, 2 Dec 2020 16:44:04 +0000 (17:44 +0100)]
execute: Allow caller to specify directory for the subprocess.

* lib/execute.h (execute): Add directory argument.
* lib/execute.c: Include canonicalize.h, filename.h, findprog.h.
(execute): Add directory argument. If specified, resolve the program
file name and make it absolute, first. Pass the directory to spawnpvech
and posix_spawn_file_actions_addchdir.
* modules/execute (Depends-on): Add canonicalize, filename, findprog-in,
posix_spawn, posix_spawn_file_actions_addchdir.
* tests/test-execute-main.c: Add test for passing a directory.
* tests/test-execute-child.c: Likewise.
* tests/test-execute.sh: Update.
* modules/execute-tests (Depends-on): Add mkdir.
* NEWS: Mention the change.
* lib/csharpcomp.c (compile_csharp_using_sscli): Update.
* lib/csharpexec.c (execute_csharp_using_mono,
execute_csharp_using_sscli): Update.
* lib/javacomp.c (compile_using_envjavac, compile_using_gcj,
compile_using_javac, compile_using_jikes, is_javac_present,
is_jikes_present): Update.
* lib/javaexec.c (execute_java_class): Update.

4 years agoautoupdate
Karl Berry [Wed, 2 Dec 2020 15:38:49 +0000 (07:38 -0800)]
autoupdate

4 years agovma-iter: Add support for macOS11/arm64.
Bruno Haible [Tue, 1 Dec 2020 18:57:17 +0000 (19:57 +0100)]
vma-iter: Add support for macOS11/arm64.

Patch suggested by Hill Ma <maahiuzeon@gmail.com> in
<https://gitlab.com/gnu-clisp/clisp/-/issues/27>
and by Martin Storsjö <martin@martin.st> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00003.html>.

* lib/vma-iter.c (vma_iterate): On arm64, use 64-bit type definitions.

4 years agospawn-pipe: Fix handling of OS/2 kLIBC.
Bruno Haible [Tue, 1 Dec 2020 18:32:53 +0000 (19:32 +0100)]
spawn-pipe: Fix handling of OS/2 kLIBC.

Reported by KO Myung-Hun <komh78@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-12/msg00005.html>.

* modules/spawn-pipe (configure.ac): Use the common idiom for
recognizing the OS/2 operating system.

4 years agoexecute: Fix uninitialized use of errno.
Bruno Haible [Tue, 1 Dec 2020 02:59:57 +0000 (03:59 +0100)]
execute: Fix uninitialized use of errno.

* lib/execute.c (execute): Preserve errno across several system calls.

4 years agoaccess tests: Fix test failure on native Windows.
Bruno Haible [Mon, 30 Nov 2020 22:32:36 +0000 (23:32 +0100)]
access tests: Fix test failure on native Windows.

* tests/test-access.c (main): Change permissions of f2 file before
attempting to remove it.

4 years agofaccessat: link with $(LIB_EACCESS)
Paul Eggert [Mon, 30 Nov 2020 18:45:47 +0000 (10:45 -0800)]
faccessat: link with $(LIB_EACCESS)

* modules/faccessat (Link:): Add $(LIB_EACCESS), since this
module depends on euidaccess.

4 years agoexecute, spawn-pipe: Make multithread-safe on native Windows.
Bruno Haible [Mon, 30 Nov 2020 16:58:57 +0000 (17:58 +0100)]
execute, spawn-pipe: Make multithread-safe on native Windows.

* lib/windows-spawn.h: Include <stdint.h>, <windows.h>.
(dup_safer_noinherit, undup_safer_noinherit): Remove declarations.
(spawnpvech): New declaration.
* lib/windows-spawn.c: Include <stdio.h>, <process.h>, findprog.h.
Don't include <unistd.h>, cloexec.h, error.h, gettext.h.
(_): Remove macro.
(dup_noinherit, fd_safer_noinherit, dup_safer_noinherit,
undup_safer_noinherit): Remove functions.
(spawnpvech): New function.
* modules/windows-spawn (Depends-on): Add findprog-in, stdint. Remove
cloexec, dup2, error, gettext-h.
* lib/execute.c: Include msvc-nothrow.h.
(execute) [WIN32]: Use _get_osfhandle, spawnpvech instead of _spawnvpe.
* lib/spawn-pipe.c: Include msvc-nothrow.h.
(create_pipe) [WIN32]: Use _get_osfhandle, DuplicateHandle, spawnpvech
instead of _spawnvpe.
* modules/execute (Depends-on): Add msvc-nothrow.
* modules/spawn-pipe (Depends-on): Likewise.

4 years agoexecute, spawn-pipe: Improve documentation.
Bruno Haible [Mon, 30 Nov 2020 02:01:22 +0000 (03:01 +0100)]
execute, spawn-pipe: Improve documentation.

* lib/execute.h: Describe progname, prog_path, prog_argv.
* lib/spawn-pipe.h: Likewise.

4 years agoexecute tests: Add more tests.
Bruno Haible [Mon, 30 Nov 2020 13:37:03 +0000 (14:37 +0100)]
execute tests: Add more tests.

* tests/test-execute-main.c: Add tests for reading, writing, isatty on
inherited file descriptors >= 3.
* tests/test-execute-child.c: Likewise.
* tests/test-execute.sh: Update.

4 years agohavelib: Fix for non-ELF platforms (regression 2019-11-17).
Bruno Haible [Mon, 30 Nov 2020 07:35:59 +0000 (08:35 +0100)]
havelib: Fix for non-ELF platforms (regression 2019-11-17).

Reported by comex <comexk@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00188.html>.

* m4/lib-prefix.m4 (AC_LIB_PREPARE_MULTILIB): On non-ELF platforms,
don't expect an ELF header.

4 years agobitset: use integer_length in table implementation
Akim Demaille [Sun, 29 Nov 2020 16:09:47 +0000 (17:09 +0100)]
bitset: use integer_length in table implementation

* lib/bitset/table.c (tbitset_list_reverse): Use
BITSET_FOR_EACH_BIT_REVERSE.

4 years agobitset: use integer_length in list implementation
Akim Demaille [Sun, 29 Nov 2020 16:04:14 +0000 (17:04 +0100)]
bitset: use integer_length in list implementation

* lib/bitset/list.c (lbitset_list_reverse): Use
BITSET_FOR_EACH_BIT_REVERSE.

4 years agobitset: use integer_length in vector implementation
Akim Demaille [Sun, 29 Nov 2020 14:55:35 +0000 (15:55 +0100)]
bitset: use integer_length in vector implementation

* lib/bitset/array.c (vbitset_list_reverse): Use
BITSET_FOR_EACH_BIT_REVERSE.

4 years agobitset: use integer_length in array implementation
Akim Demaille [Sun, 22 Nov 2020 15:46:47 +0000 (16:46 +0100)]
bitset: use integer_length in array implementation

* modules/bitset (Depends-on): Add integer_length_l.
* lib/bitset/base.h (bitset_fls_, BITSET_FOR_EACH_BIT_REVERSE): New.
* lib/bitset/array.c (abitset_list_reverse): Use it.

4 years agobitset: style: use consistent names
Akim Demaille [Sun, 29 Nov 2020 14:59:22 +0000 (15:59 +0100)]
bitset: style: use consistent names

* bitset/list.c (lbitset_list_reverse): Rename 'bcount' as 'bitcnt',
and 'boffset' as 'bitoff', for consistency with the other
implementations.
* bitset/table.c (tbitset_list_reverse): Likewise.

4 years agobitset: style: sort header
Akim Demaille [Sun, 22 Nov 2020 15:37:37 +0000 (16:37 +0100)]
bitset: style: sort header

* lib/bitset/base.h (bitset_ffs): Rename as...
(bitset_ffs_): this.
(bitset_ffs_, BITSET_FOR_EACH_BIT): Move to better places.

4 years agobitset: tests: check BITSET_FOR_EACH_REVERSE
Akim Demaille [Sat, 21 Nov 2020 13:11:34 +0000 (14:11 +0100)]
bitset: tests: check BITSET_FOR_EACH_REVERSE

* tests/test-bitset.c (compare, check_zero, check_one_bit, check_ones):
Check BITSET_FOR_EACH_REVERSE.

4 years agospawn-pipe tests: Fix test failure with MSVC.
Bruno Haible [Sun, 29 Nov 2020 22:14:56 +0000 (23:14 +0100)]
spawn-pipe tests: Fix test failure with MSVC.

* tests/test-spawn-pipe-child.c: Include <stdint.h>.
(gl_msvc_invalid_parameter_handler): New function.
(main): Set a global invalid-parameter handler.
* modules/spawn-pipe-tests (Depends-on): Add msvc-inval, stdint.

4 years agoexecute: Add tests.
Bruno Haible [Sun, 29 Nov 2020 20:27:57 +0000 (21:27 +0100)]
execute: Add tests.

* tests/test-execute.sh: New file.
* tests/test-execute-main.c: New file.
* tests/test-execute-child.c: New file.
* modules/execute-tests: New file.

4 years agofcntl: Work around NetBSD bug with F_DUPFD_CLOEXEC.
Bruno Haible [Sun, 29 Nov 2020 20:13:33 +0000 (21:13 +0100)]
fcntl: Work around NetBSD bug with F_DUPFD_CLOEXEC.

* m4/fcntl.m4 (gl_FUNC_FCNTL): Test whether F_DUPFD_CLOEXEC actually
works.
* lib/fcntl.c (rpl_fcntl_DUPFD_CLOEXEC): On NetBSD, use the same
fallback implementation as on Haiku.
* tests/test-fcntl.c (main): Add a test whether F_DUPFD_CLOEXEC is
effective.
* doc/posix-functions/fcntl.texi: Mention the NetBSD bug.

4 years agospawn-pipe: Fix build on OS/2 kLIBC (regression 2020-11-28).
Bruno Haible [Sun, 29 Nov 2020 17:37:33 +0000 (18:37 +0100)]
spawn-pipe: Fix build on OS/2 kLIBC (regression 2020-11-28).

* lib/os2-spawn.h: New file, based on lib/windows-spawn.h.
* lib/os2-spawn.c: New file, based on lib/windows-spawn.c.
* lib/spawn-pipe.c: On OS/2 kLIBC, include "os2-spawn.h".
* lib/windows-spawn.c: Remove modifications for kLIBC.
* modules/spawn-pipe (Files): Add the new files.
(configure.ac): Arrange to compile os2-spawn.c on OS/2.

4 years agoasyncsafe-spin: Fix compilation error with GCC on 32-bit SPARC.
Bruno Haible [Sat, 28 Nov 2020 11:04:47 +0000 (12:04 +0100)]
asyncsafe-spin: Fix compilation error with GCC on 32-bit SPARC.

Reported by Paul Eggert in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00066.html>.

* m4/sparcv8+.m4: New file.
* modules/sparcv8+: New file.
* modules/asyncsafe-spin (Depends-on): Add sparcv8+.

4 years agoasyncsafe-spin: Fix build error with GCC on 32-bit SPARC.
Bruno Haible [Sat, 28 Nov 2020 11:03:36 +0000 (12:03 +0100)]
asyncsafe-spin: Fix build error with GCC on 32-bit SPARC.

* lib/asyncsafe-spin.c: Don't use GCC >= 4.1 primitives on SPARC.

4 years agowindows-spawn: New module.
Bruno Haible [Sat, 28 Nov 2020 09:46:23 +0000 (10:46 +0100)]
windows-spawn: New module.

* lib/windows-spawn.h: Renamed from lib/w32spawn.h. Remove
implementations.
* lib/windows-spawn.c: Renamed from lib/w32spawn.h.
* modules/windows-spawn: New file.
* lib/execute.c: Include "windows-spawn.h" instead of "w32spawn.h".
* lib/spawn-pipe.c: Likewise.
* modules/execute (Files): Remove lib/w32spawn.h.
(Depends-on): Add windows-spawn. Remove cloexec, msvc-nothrow, strpbrk,
xalloc.
(Makefile.am): Remove w32spawn.h from lib_SOURCES.
* modules/spawn-pipe (Files): Remove lib/w32spawn.h.
(Depends-on): Add windows-spawn. Remove cloexec, msvc-nothrow, strpbrk,
xalloc.
(Makefile.am): Remove w32spawn.h from lib_SOURCES.

4 years agossfmalloc tests: Port to macOS 11.
Bruno Haible [Fri, 27 Nov 2020 19:56:19 +0000 (20:56 +0100)]
ssfmalloc tests: Port to macOS 11.

* tests/test-ssfmalloc.c (PAGESIZE_MAX): Set to 16384, not 8192.

4 years agoFix dependencies of modules that use '_exit' on native Windows.
Bruno Haible [Thu, 26 Nov 2020 21:13:20 +0000 (22:13 +0100)]
Fix dependencies of modules that use '_exit' on native Windows.

Reported by Jim Meyering in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00159.html>.

* modules/_Exit (Depends-on): Add unistd.
* modules/closein (Depends-on): Likewise.
* modules/closeout (Depends-on): Likewise.
* modules/forkpty (Depends-on): Likewise.
* modules/posix_spawn-internal (Depends-on): Likewise.
* modules/savewd (Depends-on): Likewise.
* modules/stat-time-tests (Depends-on): Likewise.

4 years agoraise-tests: Fix compilation error on MSVC (regression 2020-11-25).
Bruno Haible [Thu, 26 Nov 2020 16:06:46 +0000 (17:06 +0100)]
raise-tests: Fix compilation error on MSVC (regression 2020-11-25).

* modules/raise-tests (Depends-on): Add unistd.
* doc/posix-functions/_exit.texi: Mention the 'unistd' module.

4 years agosetlocale-tests: do not trigger gcc's -Wanalyzer-possible-null-argument
Jim Meyering [Thu, 26 Nov 2020 02:21:25 +0000 (18:21 -0800)]
setlocale-tests: do not trigger gcc's -Wanalyzer-possible-null-argument

* tests/test-setlocale1.c (main): Assert that each strcmp argument is
non-NULL, since we don't bother handing strdup failure.

4 years agoraise-tests: avoid GCC 11's new exit-from-signal-handler warning
Jim Meyering [Thu, 26 Nov 2020 02:06:36 +0000 (18:06 -0800)]
raise-tests: avoid GCC 11's new exit-from-signal-handler warning

gcc's -Wanalyzer-unsafe-call-within-signal-handler exposed this.
* tests/test-raise.c: Include unistd.h.
(handler): Use _exit, not exit.

4 years agoautoupdate
Karl Berry [Wed, 25 Nov 2020 16:44:49 +0000 (08:44 -0800)]
autoupdate

4 years agoUse the correct printf format attribute for mingw.
Bruno Haible [Tue, 24 Nov 2020 00:32:51 +0000 (01:32 +0100)]
Use the correct printf format attribute for mingw.

Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-11/msg00133.html>.

* modules/vfprintf-posix (configure.ac): Define GNULIB_VFPRINTF_POSIX.
* modules/vprintf-posix (configure.ac): Define GNULIB_VPRINTF_POSIX.

* lib/stdio.in.h (_GL_ATTRIBUTE_SPEC_PRINTF_STANDARD,
_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM): New macros.
(_GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD): Renamed from
_GL_ATTRIBUTE_FORMAT_PRINTF. Use _GL_ATTRIBUTE_SPEC_PRINTF_STANDARD.
(_GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM): Use
_GL_ATTRIBUTE_SPEC_PRINTF_SYSTEM.

* modules/vasnprintf (Depends-on): Add stdio.
* lib/vasnprintf.h: Include <stdio.h>.
(asnprintf, vasnprintf): Use the standard printf format attribute.

* modules/xvasprintf (Depends-on): Add stdio.
* lib/xvasprintf.h: Include <stdio.h>.
(xasprintf, xvasprintf): Use the standard printf format attribute.

* modules/xprintf (Depends-on): List stdio first.
* lib/xprintf.h (xprintf, xvprintf): Use a printf format attribute that
depends on GNULIB_VPRINTF_POSIX.
(xfprintf, xvfprintf): Use a printf format attribute that depends on
GNULIB_VFPRINTF_POSIX.

* modules/c-vasnprintf (Depends-on): Add stdio.
* lib/c-vasnprintf.h: Include <stdio.h>.
(c_vasnprintf): Use the standard printf format attribute.

* modules/c-vasprintf (Depends-on): Add stdio.
* lib/c-vasprintf.h: Include <stdio.h>.
(c_asprintf, c_vasprintf): Use the standard printf format attribute.

* modules/c-vsnprintf (Depends-on): Add stdio.
* lib/c-vsnprintf.h: Include <stdio.h>.
(c_vsnprintf): Use the standard printf format attribute.

* modules/c-snprintf (Depends-on): Add stdio.
* lib/c-snprintf.h: Include <stdio.h>.
(c_snprintf): Use the standard printf format attribute.

* modules/c-xvasprintf (Depends-on): Add stdio.
* lib/c-xvasprintf.h: Include <stdio.h>.
(c_xasprintf, c_xvasprintf): Use the standard printf format attribute.

* modules/error (Depends-on): Depend on stdio always.
* lib/error.h: Include <stdio.h>.
(_GL_ATTRIBUTE_SPEC_PRINTF): Remove macro.
(error, error_at_line): Use a printf format attribute that depends on
GNULIB_VFPRINTF_POSIX.
* lib/error.c (_GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD): Renamed from
_GL_ATTRIBUTE_FORMAT_PRINTF.

* modules/verror (Depends-on): Add stdio.
* lib/verror.h: Include <stdio.h>. Don't include "error.h".
(verror, verror_at_line): Use the standard printf format attribute.
* lib/verror.c: Include "error.h".

* modules/argp (Depends-on): Add stdio.
* lib/argp.h (argp_error, __argp_error, argp_failure, __argp_failure):
Use a printf format attribute that depends on GNULIB_VFPRINTF_POSIX.

* modules/libtextstyle-optional (Depends-on): Add stdio.
* lib/textstyle.in.h (ostream_printf, ostream_vprintf): Use the standard
printf format attribute.

* tests/test-nonblocking-misc.h (dbgfprintf): Use the standard printf
format attribute.