]> Savannah Git Hosting - gnulib.git/log
gnulib.git
2 years agoAvoid clang warnings regarding [[__nodiscard__]].
Bruno Haible [Sat, 28 Jan 2023 10:52:40 +0000 (11:52 +0100)]
Avoid clang warnings regarding [[__nodiscard__]].

* m4/gnulib-common.m4 (gl_COMMON_BODY): For clang, in C++ mode, ignore
the __has_c_attribute value and define _GL_ATTRIBUTE_NODISCARD to
__attribute__ ((__warn_unused_result__)), not [[__nodiscard__]].

2 years agoAvoid clang warnings regarding [[__maybe_unused__]].
Bruno Haible [Sat, 28 Jan 2023 08:33:12 +0000 (09:33 +0100)]
Avoid clang warnings regarding [[__maybe_unused__]].

* m4/gnulib-common.m4 (gl_COMMON_BODY): For clang versions ≥ 6, < 10,
in C++ mode, ignore the __has_c_attribute value and define
_GL_ATTRIBUTE_MAYBE_UNUSED to __attribute__ ((__unused__)), not
[[__maybe_unused__]].

2 years agostddef: Fix test-stddef compilation error on FreeBSD 12/x86.
Bruno Haible [Fri, 27 Jan 2023 19:35:59 +0000 (20:35 +0100)]
stddef: Fix test-stddef compilation error on FreeBSD 12/x86.

* m4/stddef_h.m4 (gl_STDDEF_H): When testing for good max_align_t, use
an ISO C compliant definition of _Alignof.

2 years agoKeep config.h idempotent.
Bruno Haible [Wed, 25 Jan 2023 13:36:20 +0000 (14:36 +0100)]
Keep config.h idempotent.

* m4/gnulib-common.m4 (gl_COMMON_BODY): Add double-inclusion guards to
the definitions of the macros _GL_ATTRIBUTE_ALLOC_SIZE,
_GL_ATTRIBUTE_ALWAYS_INLINE, _GL_ATTRIBUTE_ARTIFICIAL,
_GL_ATTRIBUTE_COLD, _GL_ATTRIBUTE_CONST, _GL_ATTRIBUTE_DEALLOC,
_GL_ATTRIBUTE_DEPRECATED, _GL_ATTRIBUTE_ERROR, _GL_ATTRIBUTE_WARNING,
_GL_ATTRIBUTE_EXTERNALLY_VISIBLE, _GL_ATTRIBUTE_FALLTHROUGH,
_GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_LEAF, _GL_ATTRIBUTE_MALLOC,
_GL_ATTRIBUTE_MAY_ALIAS, _GL_ATTRIBUTE_MAYBE_UNUSED,
_GL_ATTRIBUTE_NODISCARD, _GL_ATTRIBUTE_NOINLINE, _GL_ATTRIBUTE_NONNULL,
_GL_ATTRIBUTE_NONSTRING, _GL_ATTRIBUTE_NOTHROW, _GL_ATTRIBUTE_PACKED,
_GL_ATTRIBUTE_PURE, _GL_ATTRIBUTE_RETURNS_NONNULL,
_GL_ATTRIBUTE_SENTINEL, _GL_ATTRIBUTE_UNUSED, _GL_UNUSED_LABEL.

2 years agovasnprintf: Fix compilation error on Android NDK r26b.
Bruno Haible [Wed, 25 Jan 2023 08:53:21 +0000 (09:53 +0100)]
vasnprintf: Fix compilation error on Android NDK r26b.

Reported by Po Lu <luangruo@yahoo.com>.

* lib/vasnprintf.c: Include <wchar.h>.

2 years agothreadlib: Fix support for Solaris 9 and older.
Nick Bowler [Wed, 25 Jan 2023 08:38:00 +0000 (09:38 +0100)]
threadlib: Fix support for Solaris 9 and older.

* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Allow case patterns to survive
m4 processing by using changequote.

2 years agoautoupdate
Karl Berry [Sun, 22 Jan 2023 16:29:03 +0000 (08:29 -0800)]
autoupdate

2 years agostdalign: Fix a compilation error on FreeBSD 12.0.
Bruno Haible [Tue, 24 Jan 2023 12:36:11 +0000 (13:36 +0100)]
stdalign: Fix a compilation error on FreeBSD 12.0.

* lib/stdalign.in.h (_Alignof): In C mode, prefer __builtin_offsetof
over offsetof when possible, since __builtin_offsetof works also when
<stddef.h> has not been fully included yet.
* m4/stdalign.m4 (gl_STDALIGN_H): Likewise.

2 years agosigsegv, vma-iter: port to Solaris 10
Paul Eggert [Sun, 22 Jan 2023 06:49:04 +0000 (00:49 -0600)]
sigsegv, vma-iter: port to Solaris 10

On this platform, <sys/types.h> does not define off_t if neither
_LP64 nor _FILE_OFFSET_BITS is defined, which can happen if we
of doing stdbool, since config.h now includes <stdbool.h>, and
Solaris 10 <stdbool.h> includes <sys/feature_tests.h> which
arranges for _FILE_OFFSET_BITS to always be defined (if only to 32),
which <sys/types.h> assumes.
* lib/stackvma.c, lib/vma-iter.c (_FILE_OFFSET_BITS) [__sun && !_LP64]:
Define to 32 instead of leaving undefined.

2 years agosnippet/_Noreturn: work around Clang _Noreturn bug
Paul Eggert [Fri, 20 Jan 2023 03:39:03 +0000 (19:39 -0800)]
snippet/_Noreturn: work around Clang _Noreturn bug

This is a bigger-hammer workaround for the clang _Noreturn issue
fix for dfa.c on 2023-01-01.  Unfortunately, it causes 270
-Wreturn-type and -Wsometimes-uninitialized warnings when building
bleeding-edge GNU Emacs from Git on Fedora 37 with plain
‘./configure && make’.  So the workaround is enabled only if you
compile with -D_GL_WORK_AROUND_LLVM_BUG_59792.
* lib/_Noreturn.h (_Noreturn):
* m4/gnulib-common.m4 (gl_COMMON_BODY):
and if _GL_WORK_AROUND_LLVM_BUG_59792 is defined.

2 years agoexecute tests: Avoid test failure with GNU make 4.4.
Bruno Haible [Tue, 17 Jan 2023 21:13:36 +0000 (22:13 +0100)]
execute tests: Avoid test failure with GNU make 4.4.

Reported by Eric Blake in
<https://lists.gnu.org/archive/html/bug-gnulib/2023-01/msg00157.html>.

* tests/test-execute-main.c (main): Reset the SIGPIPE handler to
default on all platforms.

2 years agofflush: Tweak last commit.
Bruno Haible [Tue, 17 Jan 2023 19:17:27 +0000 (20:17 +0100)]
fflush: Tweak last commit.

* lib/stdio-impl.h (fp_): Make the last change work also with newer
Android NDKs and _FILE_OFFSET_BITS=64.

2 years agofflush: Fix a buffer overrun on 32-bit Android.
Bruno Haible [Tue, 17 Jan 2023 18:16:29 +0000 (19:16 +0100)]
fflush: Fix a buffer overrun on 32-bit Android.

* lib/stdio-impl.h (fp_): On Android, change the type of _offset to
'long'.
* lib/fflush.c (update_fpos_cache): On Android, update a 'long', not an
'fpos_t'.

2 years agoexecute tests: Avoid test failure on Android.
Bruno Haible [Tue, 17 Jan 2023 14:15:57 +0000 (15:15 +0100)]
execute tests: Avoid test failure on Android.

* tests/test-execute-main.c (main): Reset the SIGPIPE handler to
default.

2 years agoautoupdate
Karl Berry [Mon, 16 Jan 2023 16:54:54 +0000 (08:54 -0800)]
autoupdate

2 years agofpending: Fix compilation error with NDK ≥ r14b and Android API < 23.
Bruno Haible [Sun, 15 Jan 2023 10:10:09 +0000 (11:10 +0100)]
fpending: Fix compilation error with NDK ≥ r14b and Android API < 23.

Report and patch by Po Lu <luangruo@yahoo.com>.

* lib/fpending.c (__fpending) [__ANDROID__]: Use the fp_ macro.

2 years agotest-framework-sh: work around AIX 7.2 diff bugs
Paul Eggert [Sun, 15 Jan 2023 00:47:41 +0000 (16:47 -0800)]
test-framework-sh: work around AIX 7.2 diff bugs

* tests/init.sh (compare_dev_null_): Run diff in the C locale.
AIX 7.2 diff messes up in UTF-8 locales; for example,
‘printf '\360\220\200\200\n' | diff - /dev/null’ incorrectly
outputs nothing and exits with status 0 when LC_ALL=en_US.UTF-8.

2 years agoverify: work around xlclang 16.1 compiler bug
Paul Eggert [Fri, 13 Jan 2023 22:32:11 +0000 (14:32 -0800)]
verify: work around xlclang 16.1 compiler bug

Problem reported by Bruno Haible in:
https://lists.gnu.org/r/grep-devel/2023-01/msg00003.html
* lib/verify.h (_GL_HAS_BUILTIN_TRAP, _GL_HAS_BUILTIN_UNREACHABLE):
Define to 0 if compiler advertises itself as clang before version 5.
xlclang 16.1 advertises itself as 4.0.1 and this patch works
around what appears to be a compiler bug when compiling dfa.c in
bleeding-edge grep.

2 years agoassert-h: fix configure comment-out
Paul Eggert [Fri, 13 Jan 2023 19:57:35 +0000 (11:57 -0800)]
assert-h: fix configure comment-out

* m4/assert_h.m4 (gl_ASSERT_H): Also break apart "#undef
static_assert" with /**/.  Problem discovered with xlclang 16.1,
though it does not directly affect xlclang 16.1.

2 years agoFix link errors on Android 4.3.
Bruno Haible [Wed, 11 Jan 2023 09:50:41 +0000 (10:50 +0100)]
Fix link errors on Android 4.3.

* lib/asyncsafe-spin.c: Don't use the GCC >= 4.1 builtins on Android,
when building with GCC.
* lib/pthread-spin.c: Likewise.
* lib/simple-atomic.c: Likewise.

2 years agomemset_explicit tests: Fix signature check.
Bruno Haible [Tue, 10 Jan 2023 11:19:42 +0000 (12:19 +0100)]
memset_explicit tests: Fix signature check.

* tests/test-memset_explicit.c: Fix return type in signature check.

2 years agothreads-h: Improve portability.
Bruno Haible [Mon, 9 Jan 2023 20:31:52 +0000 (21:31 +0100)]
threads-h: Improve portability.

* lib/threads.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE when possible.
* modules/threads-h (Makefile.am): Substitute
INCLUDE_NEXT_AS_FIRST_DIRECTIVE and NEXT_AS_FIRST_DIRECTIVE_THREADS_H.

2 years agomalloc-h: Improve portability.
Bruno Haible [Mon, 9 Jan 2023 20:18:20 +0000 (21:18 +0100)]
malloc-h: Improve portability.

* lib/malloc.in.h: Use INCLUDE_NEXT_AS_FIRST_DIRECTIVE when possible.
* modules/malloc-h (Makefile.am): Substitute
INCLUDE_NEXT_AS_FIRST_DIRECTIVE and NEXT_AS_FIRST_DIRECTIVE_MALLOC_H.

2 years agoautoupdate
Karl Berry [Sat, 7 Jan 2023 16:25:56 +0000 (08:25 -0800)]
autoupdate

2 years agocopy-file, supersede: Fix link-time requirements.
Bruno Haible [Thu, 5 Jan 2023 10:26:04 +0000 (11:26 +0100)]
copy-file, supersede: Fix link-time requirements.

* modules/copy-file (Link): Add $(LIB_ACL).
* modules/supersede (Link): Likewise.

2 years agoautoupdate
Karl Berry [Wed, 4 Jan 2023 16:36:46 +0000 (08:36 -0800)]
autoupdate

2 years agosigsegv: Fix compilation error on Android 4.3.
Bruno Haible [Mon, 2 Jan 2023 15:57:31 +0000 (16:57 +0100)]
sigsegv: Fix compilation error on Android 4.3.

* lib/sigsegv.in.h: For Android, don't include <ucontext.h> and don't
reference ucontext_t.
* lib/sigsegv.c (SIGSEGV_FAULT_): For Android, use a plain POSIX fault
handler (cf. libsigsegv/src/fault-posix.h).

2 years agodfa: work around Clang 15 bug
Paul Eggert [Mon, 2 Jan 2023 06:06:10 +0000 (22:06 -0800)]
dfa: work around Clang 15 bug

Problem reported by Kenton Groombridge in:
https://lists.gnu.org/archive/html/bug-gawk/2022-12/msg00010.html
On x86-64, Clang 15 gets confused by a call (X ? dfaerror :
dfawarn) (Y) and generates the wrong code, presumably because
dfaerror is _Noreturn and dfawarn is not.
* lib/dfa.c (parse_bracket_exp): Reword to have one call for
dfaerror, the other for dfawarn.

2 years agomaint: run 'make update-copyright'
Simon Josefsson [Sun, 1 Jan 2023 00:14:21 +0000 (01:14 +0100)]
maint: run 'make update-copyright'

2 years agoassert-h: port static_assert to strict C99
Paul Eggert [Wed, 28 Dec 2022 22:15:43 +0000 (14:15 -0800)]
assert-h: port static_assert to strict C99

* lib/verify.h (_GL_VERIFY): Port MSVC hack back to C99.
Problem found when testing bleeding-edge gzip on IBM XL C for AIX,
V12.1 (5765-J02, 5725-C72), which complained ‘"malloca.c", line
42.56: 1506-041 (E) The invocation of macro _Static_assert
contains fewer arguments than are required by the macro
definition.’  This diagnostic is valid because C99 requires
that if you #define _Static_assert(R, ...) you must call
_Static_assert with at least two arguments.  I found a similar
problem with Sun C 5.9 SunOS_sparc Patch 124867-12 2009/11/22.

2 years agofile-has-acl: fix recently-introduced NFSv4 bug
Paul Eggert [Wed, 28 Dec 2022 04:00:58 +0000 (20:00 -0800)]
file-has-acl: fix recently-introduced NFSv4 bug

* lib/file-has-acl.c (acl_nfs4_nontrivial): Fix off-by-one
error when rounding WHOLEN up to next multiple of 4.
Pacify GCC 12.2.1 -Wcast-align.

2 years agofdatasync: fix comment
Paul Eggert [Tue, 27 Dec 2022 19:49:59 +0000 (11:49 -0800)]
fdatasync: fix comment

2 years agoAdd --pull, --gen options to build-aux/bootstrap
Paul Eggert [Tue, 27 Dec 2022 16:15:38 +0000 (08:15 -0800)]
Add --pull, --gen options to build-aux/bootstrap

This supports a single bootstrap script with --pull and --gen
options, as an alternative to separate autogen.sh and autopull.sh
and bootstrap-funclib.sh auxiliary files.
* top/bootstrap: With --version, also output library version.
Support update of package that has only the bootstrap script,
and not the other three files.

2 years agoSupport packages with just 'bootstrap'
Paul Eggert [Tue, 27 Dec 2022 16:15:38 +0000 (08:15 -0800)]
Support packages with just 'bootstrap'

* top/bootstrap: With --version, also output library version.
Support update of package that has only the bootstrap script,
and not the other three files.
* top/bootstrap-funclib.sh (scriptlibversion): Rename
from scriptversion.  All uses changed.  This way we
can distinguish script from script library versions.
(upgrade_bootstrap): If the package currently has only
the bootstrap script, just update that.

2 years agoBootstrap with functions, not scripts
Paul Eggert [Tue, 27 Dec 2022 16:15:37 +0000 (08:15 -0800)]
Bootstrap with functions, not scripts

* top/bootstrap: Use autopull and autogen functions, not
shell scripts.  This lets build-aux/bootstrap become a
standalone script.  It does not change the behavior of
top/bootstrap, except for minor rewording of disagnostics.

2 years agoMake autopull a shell function too
Paul Eggert [Tue, 27 Dec 2022 16:15:37 +0000 (08:15 -0800)]
Make autopull a shell function too

This does not change behavior.  It is helpful for future changes.
* top/autopull.sh: Call autopull to do the actual work.
(usage, download_po_files, update_po_files):
Move to top/bootstrap-funclib.sh.
* top/bootstrap-funclib.sh (autopull_usage): Rename from ‘usage’.
(autopull): New function, containing the top level of the
old top/autopull.sh.

2 years agoMake autogen a shell function too
Paul Eggert [Tue, 27 Dec 2022 16:15:37 +0000 (08:15 -0800)]
Make autogen a shell function too

This does not change behavior.  It is helpful for future changes.
* top/autogen.sh: Call autogen to do the actual work.
(usage, version_controlled_file, gitignore_entries, insert_if_absent):
(insert_vc_ignore, symlink_to_dir): Move to top/bootstrap-funclib.sh.
* top/bootstrap-funclib.sh (autogen_usage): Rename from ‘usage’.
(autogen): New function, containing the top level of the
old top/autogen.sh.

2 years agoMove scriptversion= lines up in scripts
Paul Eggert [Tue, 27 Dec 2022 16:15:37 +0000 (08:15 -0800)]
Move scriptversion= lines up in scripts

By default they need to be in the first 8 lines to be updated.

2 years agoFix compilation errors in C++ mode on Solaris 11 OpenIndiana.
Bruno Haible [Tue, 27 Dec 2022 10:21:45 +0000 (11:21 +0100)]
Fix compilation errors in C++ mode on Solaris 11 OpenIndiana.

* m4/gnulib-common.m4 (gl_COMMON_BODY): In _GL_ATTRIBUTE_DEALLOC_FREE,
with GNU C++, cast the 'free' function.
* lib/string.in.h (_GL_ATTRIBUTE_DEALLOC_FREE): With GNU C++, cast the
'free' function.
* lib/wchar.in.h (_GL_ATTRIBUTE_DEALLOC_FREE): Likewise.

2 years agostdnoreturn: Mark as deprecated, not obsolete. (Regression 2022-12-24.)
Bruno Haible [Tue, 27 Dec 2022 10:13:05 +0000 (11:13 +0100)]
stdnoreturn: Mark as deprecated, not obsolete. (Regression 2022-12-24.)

* modules/stdnoreturn (Status): Remove.
(Notice): Say that it is deprecated, not obsolete.
* doc/noreturn.texi: Fix a typo.

2 years agostdbool-c99: fix typo
Paul Eggert [Mon, 26 Dec 2022 18:17:17 +0000 (10:17 -0800)]
stdbool-c99: fix typo

Reported against Autoconf by Todd C. Miller in:
https://lists.gnu.org/r/autoconf/2022-12/msg00001.html
* m4/stdbool.m4 (AC_CHECK_HEADER_STDBOOL): Sync from Autoconf master.

2 years agoctime: Mark as deprecated, not obsolete. (Regression 2022-12-21.)
Bruno Haible [Mon, 26 Dec 2022 17:12:45 +0000 (18:12 +0100)]
ctime: Mark as deprecated, not obsolete. (Regression 2022-12-21.)

* modules/ctime (Status): Remove.
(Notice): Say that it is deprecated, not obsolete.

2 years agolargefile: sync from Autoconf master
Paul Eggert [Sun, 25 Dec 2022 19:41:57 +0000 (11:41 -0800)]
largefile: sync from Autoconf master

* m4/largefile.m4 (gl_SET_LARGEFILE_SOURCE): Test whether
AC_SYS_YEAR2038 is defined when this macro is defined, not when it
is used, as we now define AC_SYS_YEAR2038 later.
(_AC_SYS_LARGEFILE_MACRO_VALUE): Remove.
(_AC_SYS_YEAR2038_TEST_CODE, _AC_SYS_YEAR2038_OPTIONS)
(_AC_SYS_YEAR2038_PROBE, _AC_SYS_YEAR2038_ENABLE)
(_AC_SYS_YEAR2038_OPT_IN, AC_SYS_YEAR2038)
(_AC_SYS_LARGEFILE_TEST_CODE, _AC_SYS_LARGEFILE_OPTIONS)
(_AC_SYS_LARGEFILE_PROBE, _AC_SYS_LARGEFILE_ENABLE): New macros.
(AC_SYS_LARGEFILE): Use them.
* m4/year2038.m4: Remove.  All mentions removed.
* modules/largefile, modules/year2038 (configure.ac-early):
Do not require gl_YEAR2038_EARLY.
* modules/year2038 (Depends-on): Depend on largefile.
(configure.ac): Require AC_SYS_YEAR2038, not gl_YEAR2038.

2 years agoextensions: enable some C23 Annex F functions
Paul Eggert [Sun, 25 Dec 2022 07:39:41 +0000 (23:39 -0800)]
extensions: enable some C23 Annex F functions

* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
Also define __STDC_WANT_IEC_60559_EXT__, for C23 Annex F
functions like totalorder.  This syncs from Autoconf master.

2 years agostdnoreturn: deprecate
Paul Eggert [Sat, 24 Dec 2022 09:29:29 +0000 (01:29 -0800)]
stdnoreturn: deprecate

C23 says <stdnoreturn.h> is obsolescent, so deprecate the
stdnoreturn module.  I don't think it was being used anyway
as it had too many problems.
* modules/stdnoreturn: Mark as obsolete.

2 years agodoc: C2x → C23
Paul Eggert [Sat, 24 Dec 2022 08:10:23 +0000 (00:10 -0800)]
doc: C2x → C23

2 years agofile-has-acl: improve recent NFSv4 support
Paul Eggert [Fri, 23 Dec 2022 23:18:29 +0000 (15:18 -0800)]
file-has-acl: improve recent NFSv4 support

This fixes a link failure with emacsclient on GNU/Linux.  This
program wants file_has_acl but none of the other ACL primitives,
so it doesn’t link acl-internal.o; this way it doesn’t need to
link with -lacl.  While I was at it I reviewed the recent changes,
fixed some unlikely overflow bugs, and adjusted to GNU style.
* doc/acl-nfsv4.txt: Remove.  Its contents are now in a
comment in lib/file-has-acl.c.
* lib/acl-internal.c, lib/acl-internal.h: Move recent changes
relating to acl_nfs4_nontrivial to lib/file-has-acl.c, so that
there is no trouble linking programs that need only file_has_acl.
* lib/file-has-acl.c (acl_nfs4_nontrivial): Move here from
lib/acl-internal.c, so that we needn't link -lacl in
programs that want only file_has_acl, such as emacsclient.
Do not assume a char buffer is aligned for uint32_t.
Check more carefully for buffer read overrun.
Allow up to 6 ACEs, since other code does; but check
that they’re distinct.  Avoid integer overflow.
Use memcmp rather than strncmp to compare memory blocks.
(file_has_acl): Preserve initial errno instead of setting to 0.
Allocate a bit more room for trivial ACL buffer.
Use EINVAL for botchedk NFSv4 ACLs (which shouldn’t happen).

2 years agoposix_spawnp-tests: fix filename typo
Paul Eggert [Fri, 23 Dec 2022 05:19:34 +0000 (21:19 -0800)]
posix_spawnp-tests: fix filename typo

Problem reported for GNU m4 by Mitchell Dorrell in:
https://lists.gnu.org/r/bug-m4/2022-12/msg00000.html
* tests/test-posix_spawnp-script.c (DATA_FILENAME):
Fix typo in file name that caused race with
test-posix_spawn-script.c.

2 years agofile-has-acl: Basic support for checking NFSv4 ACLs in Linux.
Ondrej Valousek [Fri, 2 Dec 2022 12:40:19 +0000 (13:40 +0100)]
file-has-acl: Basic support for checking NFSv4 ACLs in Linux.

* lib/acl-internal.h (acl_nfs4_nontrivial): New declaration.
* lib/acl-internal.c (acl_nfs4_nontrivial): New function.
* lib/file-has-acl.c: Include <arpa/inet.h>.
(XATTR_NAME_NFSV4_ACL, TRIVIAL_NFS4_ACL_MAX_LENGTH): New macros.
(file_has_acl): Test for NFSv4 ACLs.
* doc/acl-nfsv4.txt: New file.

2 years agoPort __has_c_attribute to strict C23
Paul Eggert [Thu, 22 Dec 2022 05:45:18 +0000 (21:45 -0800)]
Port __has_c_attribute to strict C23

* m4/gnulib-common.m4 (_GL_HAS_C_ATTRIBUTE): Remove, as C23 says
behavior is undefined if __has_c_attribute appears anywhere other
than at the top level of an #if or #ifdef.  All uses replaced by
wordier invocations of __has_c_attribute.

2 years agoasctime, ctime: deprecate
Paul Eggert [Wed, 21 Dec 2022 21:25:39 +0000 (13:25 -0800)]
asctime, ctime: deprecate

C23 deprecates asctime and ctime, so deprecate them in Gnulib too.
* NEWS, doc/posix-functions/asctime.texi:
* doc/posix-functions/ctime.texi: Mention this.
* lib/time.in.h (ctime): Deprecate any ctime replacement.
* modules/ctime: Now obsolete.

2 years agoautoupdate
Karl Berry [Tue, 20 Dec 2022 21:03:38 +0000 (13:03 -0800)]
autoupdate

2 years agomemset_explicit: port to older MS-Windows
Paul Eggert [Sun, 18 Dec 2022 07:45:56 +0000 (23:45 -0800)]
memset_explicit: port to older MS-Windows

* lib/memset_explicit.c (memset_explicit):
Remove special case for C==0 and MS-Windows.  The code isn’t
needed for correctness and it’s more trouble than it’s worth as it
prevents this module from being used with GNU Emacs, which wants
to port to MS-Windows versions so old that they lack
SecureZeroMemory.

2 years agoUpdate users.txt.
Bruno Haible [Fri, 9 Dec 2022 23:58:37 +0000 (00:58 +0100)]
Update users.txt.

* users.txt: Add lbzip2.

2 years agofts: make debug version compilable again
Paul Eggert [Fri, 9 Dec 2022 23:31:33 +0000 (15:31 -0800)]
fts: make debug version compilable again

This fixes things in what I hope is a better way than the
fd-only approach proposed by Kamil Dudka here:
https://lists.gnu.org/archive/html/bug-gnulib/2018-03/msg00079.html
https://lists.gnu.org/archive/html/bug-gnulib/2018-03/msg00080.html
* lib/fts.c (GNULIB_FTS_DEBUG): Rename from FTS_DEBUG,
to avoid collision with coreutils symbol.
Do not include <stdint.h> (not needed, since we include <stdint.h>)
or "getcwdat.h" (no longer exists).
(fd_ring_check, fd_ring_print): Add forward decls.
(struct devino): New type.
(PRINT_DEVINO): New macro.
(getdevino): New static function.
(fd_ring_print): Do nothing if not debugging.
(fd_ring_print, fd_ring_check): Use getdevino instead of getcwdat.
The output isn’t as good, but at least it compiles and runs.

2 years agoverify: update __STDC_VERSION__ as per C23
Paul Eggert [Thu, 8 Dec 2022 00:34:26 +0000 (16:34 -0800)]
verify: update __STDC_VERSION__ as per C23

This shouldn’t affect anything; it’s merely a refactoring.
* lib/verify.h (_GL_HAVE__STATIC_ASSERT1): Require
__STDC_VERSION__ to be at least 202311, instead of at least
202000.  The latter number was put in in 2019 because we didn’t
yet know C23’s __STDC_VERSION__ value.

2 years agofts: fix race + mishandling of fstatat failure
Paul Eggert [Tue, 6 Dec 2022 18:27:43 +0000 (10:27 -0800)]
fts: fix race + mishandling of fstatat failure

I hope this fixes a Luke Dashjr coreutils bug report about ext4
ramdisks; see “9.1: du Aborted (corrupt filesystem)”
<https://debbugs.gnu.org/59821>.
* lib/fts.c (fts_build): Fix two bugs.  First, fts_stat was being
called without checking its return value, causing a later abort.
Second, there was a race between opening a directory and statting
it, fixed by using fstat on the file descriptor rather than
fstatat on the directory name.

2 years agofts: omit goto break_without_closedir
Paul Eggert [Tue, 6 Dec 2022 18:03:56 +0000 (10:03 -0800)]
fts: omit goto break_without_closedir

* lib/fts.c (fts_build): Refactor to omit goto.

2 years agofts: clarify ISSET
Paul Eggert [Tue, 6 Dec 2022 17:56:55 +0000 (09:56 -0800)]
fts: clarify ISSET

* lib/fts.c (ISSET): Refactor to clarify boolean usage.

2 years agoargp: Correct documentation.
Bruno Haible [Mon, 5 Dec 2022 23:25:34 +0000 (00:25 +0100)]
argp: Correct documentation.

Reported by José E. Marchesi <jemarch@gnu.org>.

* doc/glibc-functions/argp_*.texi: Mention the 'argp' module.

2 years agodoc: poll: document poll of special files not supported on macOS
Pádraig Brady [Fri, 2 Dec 2022 14:45:23 +0000 (14:45 +0000)]
doc: poll: document poll of special files not supported on macOS

* doc/posix-functions/poll.texi: Reinstate (updated) macOS info,
removed in recent cleanup re removal of support for Mac OS X <= 10.4.
* m4/poll.m4: Update macOS to latest tested version.

2 years agoadd new ronna and quetta SI prefixes
Pádraig Brady [Tue, 29 Nov 2022 15:05:07 +0000 (15:05 +0000)]
add new ronna and quetta SI prefixes

As voted for in Nov 2022 by the BIPM:
https://www.bipm.org/en/cgpm-2022/resolution-3

* lib/human.c: Add Ronna (10^27), and Quetta (10^30) to the prefix list.
* lib/xstrtol.c (__xstrtol): Likewise.

2 years agoUpdate users.txt.
Bruno Haible [Tue, 29 Nov 2022 12:31:13 +0000 (13:31 +0100)]
Update users.txt.

* users.txt: Add 4ti2, ale, amanda, binfmt-support, cgminer, collectd,
complexity, dc3dd, dico, enchant-2, fuse-overlayfs, gsequencer, idutils,
libu2f-host, licenseutils, mmv, pacemaker, trader, ttfautohint.

2 years agoexplicit_bzero: implement via memset_explicit
Paul Eggert [Mon, 28 Nov 2022 04:52:05 +0000 (20:52 -0800)]
explicit_bzero: implement via memset_explicit

* lib/explicit_bzero.c (explicit_bzero):
Simplify by just calling memset_explicit.
* m4/explicit_bzero.m4 (gl_PREREQ_EXPLICIT_BZERO): Remove.
All uses removed.
* modules/explicit_bzero (Depends-on): Add memset_explicit.

2 years agoexplicit_bzero: memset_explicit is standard
Paul Eggert [Mon, 28 Nov 2022 04:52:04 +0000 (20:52 -0800)]
explicit_bzero: memset_explicit is standard

* doc/glibc-functions/explicit_bzero.texi:
Say that memset_explicit is preferred in new code.

2 years agoread-file: use memset_explicit
Paul Eggert [Mon, 28 Nov 2022 04:52:04 +0000 (20:52 -0800)]
read-file: use memset_explicit

* lib/read-file.c (fread_file, read_file):
Use memset_explicit instead of explicit_bzero.
* modules/read-file (Depends-on): Depend on memset_explicit
instead of on explicit_bzero.

2 years agomemset_explicit: new module
Paul Eggert [Mon, 28 Nov 2022 04:52:04 +0000 (20:52 -0800)]
memset_explicit: new module

* doc/posix-functions/memset_explicit.texi, lib/memset_explicit.c:
* m4/memset_explicit.m4, modules/memset_explicit:
* modules/memset_explicit-tests, tests/test-memset_explicit.c:
New files.
* lib/string.in.h (memset_explict): New decl.
* m4/string_h.m4 (gl_STRING_H, gl_STRING_H_REQUIRE_DEFAULTS)
(gl_STRING_H_DEFAULTS):
* modules/string (string.h):
Support memset_explicit.

2 years agoexplicit_bzero: add poison
Paul Eggert [Mon, 28 Nov 2022 01:15:24 +0000 (17:15 -0800)]
explicit_bzero: add poison

* m4/string_h.m4 (gl_STRING_H): Poison explicit_bzero.
This was inadvertently omitted when explicit_bzero was added.

2 years agobootstrap: Fix --help output.
Arsen Arsenović [Sun, 27 Nov 2022 19:45:06 +0000 (20:45 +0100)]
bootstrap: Fix --help output.

* build-aux/bootstrap (usage): Regenerate.

2 years agoexplicit_bzero: work with gcc -std=c99
Paul Eggert [Sun, 27 Nov 2022 17:59:32 +0000 (09:59 -0800)]
explicit_bzero: work with gcc -std=c99

* lib/explicit_bzero.c (explicit_bzero) [__GNUC__ && !__clang__]:
Use __asm__ instead of asm.

2 years agoPrefer "kill -INT" to killing with a number
Paul Eggert [Sat, 26 Nov 2022 18:43:24 +0000 (10:43 -0800)]
Prefer "kill -INT" to killing with a number

* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
* tests/test-login_tty.c (main):
* tests/test-pthread_sigmask1.c (main):
* tests/test-sigprocmask.c (main):
Prefer "kill -INT" to "kill -N" where N is SIGINT’s value.
Don’t assume pid_t fits in int.

2 years agoIn 'trap' commands, prefer symbolic to numeric signal names.
Bruno Haible [Sat, 26 Nov 2022 14:25:44 +0000 (15:25 +0100)]
In 'trap' commands, prefer symbolic to numeric signal names.

Reported by Mike Fulton <fultonm@ca.ibm.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-11/msg00130.html>.

* gnulib-tool: Use symbolic signal names.
* posix-modules: Likewise.
* MODULES.html.sh: Likewise.
* build-aux/bootstrap (prepare_GNULIB_SRCDIR): Likewise.
* build-aux/csharpcomp.sh.in: Likewise.
* build-aux/gnu-web-doc-update: Likewise.
* top/autogen.sh: Likewise.
* top/bootstrap-funclib.sh: Likewise.
* top/gitsub.sh: Likewise.
* lib/t-idcache: Likewise.
* tests/havelib/rpath-1: Likewise.
* tests/havelib/rpath-2_a: Likewise.
* tests/havelib/rpath-2_b: Likewise.
* tests/havelib/rpath-3_a: Likewise.
* tests/havelib/rpath-3_b: Likewise.
* tests/init.sh: Likewise.
* tests/test-binary-io.sh: Likewise.
* tests/test-c-stack.sh: Likewise.
* tests/test-c-stack2.sh: Likewise.
* tests/test-dprintf-posix.sh: Likewise.
* tests/test-fpending.sh: Likewise.
* tests/test-fprintf-posix.sh: Likewise.
* tests/test-lseek.sh: Likewise.
* tests/test-printf-posix.sh: Likewise.
* tests/test-select-in.sh: Likewise.
* tests/test-select-out.sh: Likewise.
* tests/test-sigpipe.sh: Likewise.
* tests/test-tsearch.sh: Likewise.
* tests/test-update-copyright.sh: Likewise.
* tests/test-vdprintf-posix.sh: Likewise.
* tests/test-vfprintf-posix.sh: Likewise.
* tests/test-vprintf-posix.sh: Likewise.
* tests/test-xprintf-posix.sh: Likewise.
* tests/uniwidth/test-uc_width2.sh: Likewise.

2 years agoposix_spawn-internal: Avoid warning on macOS.
Bruno Haible [Sun, 20 Nov 2022 11:47:20 +0000 (12:47 +0100)]
posix_spawn-internal: Avoid warning on macOS.

Suggested by Minsoo Choo in
<https://lists.gnu.org/archive/html/bug-gnulib/2022-11/msg00114.html>.

* lib/spawni.c: Ignore -Wdeprecated-declarations warnings.

2 years agoposix_spawn tests: Fix compilation error (regression 2022-09-14).
Bruno Haible [Sun, 20 Nov 2022 10:09:19 +0000 (11:09 +0100)]
posix_spawn tests: Fix compilation error (regression 2022-09-14).

* modules/posix_spawn-tests (Makefile.am): Augment DEFS, to define
EXEEXT.

2 years agoparse-datetime: improve doc formatting, timeliness
Paul Eggert [Tue, 15 Nov 2022 02:36:41 +0000 (21:36 -0500)]
parse-datetime: improve doc formatting, timeliness

* doc/parse-datetime.texi: Use @samp and @code in menus
for consistenty with how the Coreutils manual will do
this sort of thing.  Update examples to this year.

2 years agoautoupdate
Paul Eggert [Sun, 13 Nov 2022 18:44:49 +0000 (10:44 -0800)]
autoupdate

2 years agoautoupdate
Karl Berry [Sun, 13 Nov 2022 15:53:36 +0000 (07:53 -0800)]
autoupdate

2 years agovc-list-files-tests: Avoid OpenPGP private key operations.
Simon Josefsson [Sun, 13 Nov 2022 10:50:51 +0000 (11:50 +0100)]
vc-list-files-tests: Avoid OpenPGP private key operations.

* tests/test-vc-list-files-git.sh (GIT_CONFIG_GLOBAL): Set it to /dev/null.

2 years agoautoupdate
Karl Berry [Tue, 8 Nov 2022 21:39:40 +0000 (13:39 -0800)]
autoupdate

2 years agoautoupdate
Karl Berry [Sun, 6 Nov 2022 14:13:58 +0000 (06:13 -0800)]
autoupdate

2 years agodynarray: Rename to glibc-internal/dynarray.
Bruno Haible [Thu, 3 Nov 2022 12:32:42 +0000 (13:32 +0100)]
dynarray: Rename to glibc-internal/dynarray.

* modules/glibc-internal/dynarray: Renamed from modules/dynarray.
* modules/glibc-internal/dynarray-tests: Renamed from
modules/dynarray-tests.
* modules/regex (Depends-on): Update.
* NEWS: Mention this change and the previous one.

2 years agoscratch_buffer: Rename to glibc-internal/scratch_buffer.
Bruno Haible [Thu, 3 Nov 2022 12:30:04 +0000 (13:30 +0100)]
scratch_buffer: Rename to glibc-internal/scratch_buffer.

* modules/glibc-internal/scratch_buffer: Renamed from
modules/scratch_buffer.
* modules/glibc-internal/scratch_buffer-tests: Renamed from
modules/scratch_buffer-tests.
* modules/canonicalize (Depends-on): Update.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.

2 years agodoc: mention macOS war on sprintf
Paul Eggert [Thu, 3 Nov 2022 18:43:45 +0000 (11:43 -0700)]
doc: mention macOS war on sprintf

* doc/posix-functions/sprintf.texi, doc/posix-functions/vsnprintf.texi:
Mention that these functions are deprecated.

2 years agoscratch_buffer: Document last change.
Bruno Haible [Thu, 3 Nov 2022 02:17:37 +0000 (03:17 +0100)]
scratch_buffer: Document last change.

* NEWS: Mention last change.

2 years agoscratch_buffer: adjust to glibc changes
Paul Eggert [Thu, 3 Nov 2022 01:14:15 +0000 (18:14 -0700)]
scratch_buffer: adjust to glibc changes

Problem reported by Karl Berry in:
https://lists.gnu.org/r/bug-gnulib/2022-11/msg00004.html
* build-aux/depcomp, doc/make-stds.texi, lib/malloc/scratch_buffer.h:
Autoupdate.
* build-aux/install-reloc (func_create_wrapper):
Omit removed file scratch_buffer_dupfree.c.
* config/srclist.txt: Remove lib/malloc/scratch_buffer_dupfree.c
* lib/canonicalize-lgpl.c: Merge changes from glibc through its
commit ef0700004bf0dccf493a5e8e21f71d9e7972ea9f dated 2022-07-05
11:04:45 +0200.
(__strdup) [!_LIBC]: New macro.
(struct realpath_bufs): New type.
(realpath_stk): Use it as the extra argument.  All uses changed.
No longer any need for noinline or GCC_BOGUS_WRETURN_LOCAL_ADDR.
* lib/canonicalize.c (struct realpath_bufs)
(canonicalize_filename_mode_stk): Likewise.
* lib/malloc/scratch_buffer_dupfree.c:
Remove, since it was removed in glibc.
* lib/scratch_buffer.h (scratch_buffer_dupfree) [0]:
(__libc_scratch_buffer_dupfree): Remove decls.
* modules/relocatable-prog-wrapper (Files):
* modules/scratch_buffer (Files, lib_SOURCES):
Remove lib/malloc/scratch_buffer_dupfree.c.

2 years agorelocatable-script: Relax license.
Bruno Haible [Tue, 1 Nov 2022 22:23:16 +0000 (23:23 +0100)]
relocatable-script: Relax license.

* modules/relocatable-script (License): Change to GPLv2+.
* build-aux/relocatable.sh.in: Change copyright header to GPLv2+.

2 years agoautoupdate
Karl Berry [Tue, 1 Nov 2022 20:49:33 +0000 (13:49 -0700)]
autoupdate

2 years agomaintainer-makefile: Fix last sc_indent commit.
Simon Josefsson [Tue, 1 Nov 2022 08:09:02 +0000 (09:09 +0100)]
maintainer-makefile: Fix last sc_indent commit.

* top/maint.mk (sc_indent): Don't use grep -q.
Suggested by Bruno Haible.

2 years agomaintainer-makefile: Add syntax-check rule for unportable 'grep -q'.
Simon Josefsson [Tue, 1 Nov 2022 08:06:56 +0000 (09:06 +0100)]
maintainer-makefile: Add syntax-check rule for unportable 'grep -q'.

* top/maint.mk (sc_unportable_grep_q): Add.

2 years agomaintainer-makefile: Fix Apple Xcode 'make syntax-check'.
Simon Josefsson [Mon, 31 Oct 2022 08:42:42 +0000 (09:42 +0100)]
maintainer-makefile: Fix Apple Xcode 'make syntax-check'.

* top/maint.mk (sc_indent): Don't use non-GNU indent.

2 years agothread: pacify gcc -Wbad-function-cast
Paul Eggert [Sun, 30 Oct 2022 19:39:08 +0000 (12:39 -0700)]
thread: pacify gcc -Wbad-function-cast

* lib/glthread/thread.h (gl_thread_self_pointer): With POSIX
threads, cast the call to gl_thread_t before casting to void *.

2 years agotest-getlogin: pacify gcc -Wshadow
Paul Eggert [Sun, 30 Oct 2022 19:29:26 +0000 (12:29 -0700)]
test-getlogin: pacify gcc -Wshadow

* tests/test-getlogin.h (test_getlogin_result): Rename local.

2 years agogendocs: Output timestamp in English.
Simon Josefsson [Tue, 25 Oct 2022 21:39:15 +0000 (23:39 +0200)]
gendocs: Output timestamp in English.

* build-aux/gendocs.sh (SETLANG): Add LC_TIME= for "date".

2 years agoassert-h: Make static_assert work on Solaris 11.4.
Bruno Haible [Sun, 23 Oct 2022 14:43:06 +0000 (16:43 +0200)]
assert-h: Make static_assert work on Solaris 11.4.

* m4/assert_h.m4 (gl_ASSERT_H): After including <assert.h>, on Solaris,
redefine static_assert.

2 years agogetdelim: Work around buggy implementation on macOS 10.13.
Bruno Haible [Mon, 17 Oct 2022 00:44:54 +0000 (02:44 +0200)]
getdelim: Work around buggy implementation on macOS 10.13.

* doc/posix-functions/getdelim.texi: Mention the macOS bug.
* m4/getdelim.m4 (gl_FUNC_GETDELIM): Let the "checking for working
getdelim function" test answer 'no' on macOS.

2 years agoUpdate to Unicode 15.0.0.
Bruno Haible [Sat, 15 Oct 2022 22:46:24 +0000 (00:46 +0200)]
Update to Unicode 15.0.0.

* lib/gen-uni-tables.c (is_property_default_ignorable_code_point):
Exclude 0x13439..0x1343F.
(get_lbp): Update such that unilbrk/lbrkprop.txt comes out as expected.

* All generated files under lib/uni* and tests/uni*: Regenerate.
* tests/uniname/NameAliases.txt: Update.
* tests/uniname/UnicodeData.txt: Update.
* tests/uninorm/NormalizationTest.txt: Update.
* tests/unigbrk/GraphemeBreakTest.txt: Update.
* tests/uniwbrk/WordBreakTest.txt: Update.

* tests/uniwidth/test-uc_width2.sh: Expect width 0 for the characters
0x0ECE, 0x10EFD..0x10EFF, 0x11241, 0x11F00..0x11F01, 0x11F36..0x11F3A,
0x11F40, 0x11F42, 0x13439..0x13440, 0x13447..0x13455, 0x1E08F,
0x1E4EC..0x1E4EF.

* All the affected modules: Bump required libunistring version.

2 years agogen-uni-tables: Temporarily revert last change.
Bruno Haible [Sat, 15 Oct 2022 17:59:51 +0000 (19:59 +0200)]
gen-uni-tables: Temporarily revert last change.

* lib/gen-uni-tables.c: Include <stdbool.h>, unless the C compiler
advertises compliance to ISO C 23.

2 years agodoc: improve intprops doc
Paul Eggert [Thu, 13 Oct 2022 00:18:20 +0000 (17:18 -0700)]
doc: improve intprops doc

* doc/intprops.texi: Tighten up wording, by saying that macros
"yield 1 if X, 0 otherwise" rather than the weaker "yield 1 if X".
Say "yield" rather than "return" since the macros are not
functions.  Say "1" and "0" rather than "true" and "false" since
the macros yield int.  Say that stdckdint.h is the standard
alternative to the _WRAPV macros.  Mention another source of
problems with the _OVERFLOW macros.

2 years agoautoupdate
Karl Berry [Wed, 12 Oct 2022 14:08:25 +0000 (07:08 -0700)]
autoupdate

2 years agotests: prefer stdckdint to intprops
Paul Eggert [Tue, 11 Oct 2022 01:45:03 +0000 (18:45 -0700)]
tests: prefer stdckdint to intprops

* modules/chown-tests, modules/fchownat-tests:
* modules/fdutimensat-tests, modules/futimens-tests:
* modules/lchown-tests, modules/stat-time-tests:
* modules/utime-tests, modules/utimens-tests:
* modules/utimensat-tests:
(Depends on): Depend on stdckint, not intprops.
* tests/nap.h: Include stdckdint.h, not intprops.h.
All macro uses changed.