2013-08-09 Pádraig Brady
bootstrap: support checksum utils having -c but not --status
* build-aux/bootstrap: Only look for sha1sum if updating po files.
Add sha1 to the list of supported checksum utils since it's now
supported through adjustments below.
(update_po_files): Remove the use of --status
in a way that will suppress all error messages, but since this is
only used to minimize updates, it shouldn't cause an issue.
Exit early if there is a problem updating the po file checksums.
(find_tool): Remove the check for --version support as this
is optional as per commit 86186b17. Don't even check for the
presence of the command as if that is needed, it's supported
through configuring prerequisites in bootstrap.conf.
Prompt that when a tool isn't found, one can define an environment
variable to add to the hardcoded search list.
2013-08-05 Jim Meyering
regex: port to non-glibc/lock-using systems
Since 29-05-2013 commit, 55ba71f4, compilation on a non-glibc
system with GNULIB_LOCK would fail due to absence of the
included "glthread/lock.h". This would affect any package
for which the "lock" module is used only by the regex module,
and not explicitly used.
* m4/regex.m4 (gl_PREREQ_REGEX): Require gl_GLIBC21.
* modules/regex (Depends-on) [!GLIBC && $ac_use_included_regex]:
Add a dependency on the "lock" module.
2013-07-20 Daiki Ueno
localecharset: make locale_charset thread-safe on Mac OS X
* lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
instead of MB_CUR_MAX.
2013-07-20 Daiki Ueno
gettext: update to version 0.18.3
* m4/intl.m4, m4/po.m4: Update from gettext-0.18.3. In particular,
require AC_PROG_SED to allow user to specify custom sed command when
generating en@quot PO file.
2013-07-18 Werner Lemberg (tiny change)
bootstrap: use correct source when copying build-aux files
* build-aux/bootstrap (gnulib_extra_files): This variable is
relative to upstream gnulib layout, not downstream.
2013-07-17 Paul Eggert
tmpdir: fix bug in VMS port
* lib/tmpdir.c (path_search) [__VMS]: Never add slash.
See Steven M. Schweda in
.
2013-07-15 Paul Eggert
tmpdir: port to VMS, to // != /, and to long dirs
* lib/tmpdir.c (__libc_secure_getenv) [!_LIBC]: Rename from
__secure_getenv, so that we're more like the glibc version.
All uses changed.
(path_search): Don't put slash after directory if __VMS.
Problem reported by Steven M. Schweda in
.
Simplify code to add slash; no need for a loop.
Do not remove trailing slash from "//".
Do not assume dlen <= INT_MAX.
2013-07-09 Paul Eggert
regex: port to --with-included-regex --enable-gcc-warnings non-threaded
* lib/regex_internal.h (lock_fini, lock_lock): Rework to avoid
gcc warnings in the non-threaded case. Reported by Charlie Brown in
.
accept4, dup3, pipe2: port to Cygwin
Problem reported for Emacs by Ken Brown in .
* lib/accept4.c (accept4) [O_BINARY]:
* lib/dup3.c (dup3) [O_BINARY]:
* lib/pipe2.c (pipe2) [O_BINARY]:
Use set_binary_mode, not setmode.
* lib/pipe2.c [!GNULIB_BINARY_IO]: Include binary-io.h.
* modules/binary-io (Depends-on): Remove module indicator.
These last two bits undo the previous change to pipe2 and binary-io.
2013-07-09 Pádraig Brady
mountlist: add support for deallocating returned list entries
* lib/mountlist.c (free_mount_entry): A new exported function
to deallocate a mount list entry.
(read_file_system_list): Refactor to use the new deallocation function.
Suggested by Anton Ovchinnikov.
2013-07-07 Paul Eggert
stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11
Problem reported by Ulrich Mueller in .
* lib/stdalign.in.h (_Alignas, _Alignof):
Port to FreeBSD 9.1, and to C11 and C++11.
(_Alignas): Also support ICC.
* lib/verify.h (_Static_assert): Undef if defines it.
* m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11.
2013-07-06 Paul Eggert
fnmatch: don't goto over declaration
* lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid
undefined behavior for goto over a declaration.
Problem reported by Charlie Brown in
.
pipe2: decouple from binary-io a bit
This is for Emacs, which needs pipe2 but not binary-io.
* lib/pipe2.c [!GNULIB_BINARY_IO]: Don't include binary-io.h.
* modules/binary-io (Depends-on): Add module indicator.
2013-07-03 Eric Blake
mgetgroups: relax license to LGPLv2+
* modules/getugroups (License): Change from GPLv3+.
* modules/mgetgroups (License): Likewise.
* modules/getgroups (License): Change from LGPLv3+.
xalloc-oversized: relax license to LGPLv2+
* modules/xalloc-oversized (License): Change from GPLv3+.
nproc: relax license to LGPLv2+
* modules/nproc (License): Change from LGPLv3+.
bootstrap: honor --no-git
* build-aux/bootstrap: Don't even try to use git when user is
pointing to a static checkout.
2013-06-23 Paul Eggert
ignore-value: port to gcc -pedantic
* lib/ignore-value.h (ignore_value):
Port to gcc -pedantic, by using __extension__.
Reindent as per usual gnulib style nowadays.
Simplify GCC version check.
2013-06-21 Paul Eggert
extern-inline: port to gcc -std=c89
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
Do not use __gnu_inline__ if pedantic and pre-C99.
2013-06-18 Paul Eggert
doc: document extern-inline
* doc/extern-inline.texi: New file.
* doc/gnulib.texi (alloca-opt): Include it.
* m4/extern-inline.m4: Move some comments to documentation,
and others closer to what they describe.
doc: chatter less
* doc/Makefile (NEWEST_GNULIB_TEXI_FILE): New macro.
(updated-stamp): Use it. This causes 'make' to output just
one file name rather than zillions.
fflush, fseeko: port to musl cross-compiles
* lib/fseeko.c (fseeko): Assume that fflushing stdin works if
on some implementation that (1) is not known to be buggy,
(2) claims conformance to POSIX.1-2008 or later, and (3) is being
cross-compiled to so we can't easily check for lack of
conformance. This is for cross-compiling to musl.
Reported by Rich Felker in
.
* m4/fclose.m4 (gl_FUNC_FCLOSE):
* m4/fflush.m4 (gl_FUNC_FFLUSH):
* m4/fseeko.m4 (gl_FUNC_FSEEKO):
Adjust to above change.
* m4/fflush.m4 (gl_FUNC_FFLUSH_STDIN): Set gl_cv_func_fflush_stdin
to 'cross', not to 'no', when cross-compiling. AC_DEFINE
FUNC_FFLUSH_STDIN to 1, 0, -1 if fflushing stdin is known to work,
known not to work, or unknown.
2013-06-15 Paul Eggert
msvc-inval: port to mingw-w64
* lib/msvc-inval.c (gl_msvc_invalid_parameter_handler):
Use __cdecl, not cdecl, for mingw-w64. Reported by LRN in
.
2013-06-11 Paul Eggert
getcwd-lgpl: port to Tru64
* lib/getcwd-lgpl.c: Include , for malloc etc.
Problem reported by Steven M. Schweda in
.
tests: port large-fd POSIX spawn tests to OS X
Problem reported by Daiki Ueno in
.
* tests/test-posix_spawn_file_actions_addclose.c:
* tests/test-posix_spawn_file_actions_adddup2.c:
* tests/test-posix_spawn_file_actions_addopen.c:
Include , for OPEN_MAX, if available.
(big_fd): New static function.
(main): Use it.
2013-06-04 Bernhard Voelker
tests/nap.h: use an adaptive delay to avoid ctime update issues
The recent change in nap.h (5191133e) decreased the probability of lost
races to about a third, however such problems could still be observed
in virtual machines and openSUSE's OBS.
Before, nap() detected the needed time once empirically and then used
that delay (together with a small correction multiplier) in further
calls. This problem has been reported and discussed several times,
including guesses about possible kernel issues:
https://lists.gnu.org/archive/html/bug-gnulib/2013-04/msg00071.html
http://lists.gnu.org/archive/html/coreutils/2012-03/msg00088.html
https://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00226.html
http://bugs.gnu.org/12820
https://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00113.html
https://lists.gnu.org/archive/html/bug-gnulib/2009-11/msg00007.html
Now, nap() avoids the race alltogether by verifying on a reference
file whether a timestamp difference has happened.
* tests/nap.h (nap_fd): Define file descriptor variable for the
witness file.
(nap_works): Change return value to bool. Change passing
the old file's status by value instead of by reference as this function
does no longer update that timestamp; rename the function argument from
st to old_st. Remove the local variables cdiff and mdiff because that
function now returns true/false instead of the precise delay.
(guess_delay): Remove function.
(clear_tmp_file): Add new function to close and unlink the witness file.
(nap): Instead of re-using the delay which has been calculated during
the first call, avoid the race by actually verifying that a timestamp
difference can be observed on the current file system. Use an adaptive
approach for the delay to minimize execution time. Assert that the
maximum delay is <= ~2 seconds, more precisely sum(2^n) from 0 to 30
= 2^31 - 1 = 2.1s.
Use atexit to call clear_tmp_file when the process terminates.
2013-06-02 Paul Eggert
sig2str: port to C++
* lib/sig2str.h (sig2str, str2sig): Declare as extern "C".
Reported by Daniel J Sebald in
.
2013-05-30 Eric Blake
docs: mention cygwin shortcoming in
* doc/posix-headers/sys_un.texi (sys/un.h): Mention problem.
vasnprintf: silence mingw compiler warning
* lib/vasnprintf.c (VASNPRINTF): Avoid unused variable warning.
2013-05-29 Paul Eggert
c-ctype, regex, verify: port to gcc -std=c90 -pedantic
Avoid constructions that are rejected by gcc -std=c90 -pedantic.
This fixes a porting bug I recently reintroduced in regex, and
some other instances that I discovered while testing the fix.
* lib/c-ctype.h [__STRICT_ANSI__]: Avoid ({ ... }).
* lib/regcomp.c (utf8_sb_map) [__STRICT_ANSI__]: Avoid [0 ... N] = E.
* lib/regex_internal.h [!_LIBC && GNULIB_LOCK]: Do not use a macro
with an empty argument if this is a pedantic pre-C99 GCC.
* lib/verify.h: Do not use _Static_assert if this is a pedantic
pre-C11 GCC.
regex: adapt to locking regime instead of depending on pthread
Instead of depending on pthread, adapt to whatever thread
modules are in use. Problem reported by Ludovic Courtès in
and by Mats Erik Andersson in
.
* lib/regex_internal.h (lock_define, lock_init, lock_fini):
Support either the 'lock' module, or the 'pthread' module, or
no module.
(lock_lock, lock_unlock): New macros.
* lib/regexec.c (regexec, re_search_stub): Use the new macros.
* modules/lock, modules/pthread (configure.ac): Add module indicator.
* modules/regex (Depends-on): Remove pthread.
2013-05-22 Eric Blake
getgroups: document portability issues
* doc/glibc-functions/initgroups.texi (initgroups): Mention
multithread safety.
* doc/posix-functions/getpwuid.texi (getpwuid): Likewise.
* doc/posix-functions/getpwuid_r.texi (getpwuid_r): Likewise.
* doc/glibc-functions/getgrouplist.texi (getgrouplist): Mention
getugroups.
* doc/posix-functions/getgroups.texi (getgroups): Mention
multithread safety and mgetgroups.
2013-05-22 Bernhard Voelker
test-lchown, test-chown: also skip test if chown fails with EPERM
* tests/test-lchown.h (test_lchown): Add EPERM to the condition to
skip this test, to handle FAT file systems.
* tests/test-chown.h (test_chown): Likewise.
2013-05-19 Paul Eggert
regex: fix dfa race in multithreaded uses
Problem reported by Ludovic Courtès in
.
* lib/regex_internal.h (lock_define, lock_init, lock_fini):
New macros. All uses of __libc_lock_define, __libc_lock_init
changed to use the first two of these.
(__libc_lock_lock, __libc_lock_unlock): New macros, for
non-glibc platforms.
(struct re_dfa_t): Define the lock unconditionally.
* lib/regexec.c (regexec, re_search_stub): Remove some now-incorrect
'#ifdef _LIBC"s.
* modules/regex (Depends-on): Add pthread, if we use the
included regex.
* lib/regcomp.c: Do actions that are not needed for glibc,
but may be needed elsewhere.
(regfree, re_compile_internal): Destroy the lock.
(re_compile_internal): Check for lock-initialization failure.
malloca: port to compilers that reject size-zero arrays
This fixes a bug introduced in my previous patch.
* lib/malloca.c (struct preliminary_header): Use an int
rather than a character array of size int; that's simpler.
(struct header): Remove, replacing with ...
(union header): New type. This avoids the need for declaring a
character array of size zero, which is not allowed on some platforms.
All uses changed.
2013-05-18 Paul Eggert
parse-datetime, tests: don't use "string" + int
Recent versions of 'clang' complain about C source code that
uses expressions of the form '"string literal" + integer',
I guess on the theory that it's confusing for readers who are
used to C++. On those grounds I suppose it's OK to make this
minor style change.
* lib/parse-datetime.y (parse_datetime):
* tests/test-fchdir.c (main):
* tests/test-snprintf-posix.h (test_function):
* tests/test-snprintf.c (main):
* tests/test-vasnprintf-posix.c (test_function):
* tests/test-vasnprintf.c (test_function):
* tests/test-vsnprintf.c (main):
* tests/unistdio/test-ulc-asnprintf1.h (test_function):
Rewrite '"str" + E' to '&"str"[E]'.
2013-05-17 Alexandre Duret-Lutz
argmatch: port to C++
* lib/argmatch.h [__cplusplus]: Add extern "C".
argp: typo fix
* lib/argp-help.c: Typo in comment.
2013-05-15 Paul Eggert
manywarnings: update for GCC 4.8.0
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Add -Waggressive-loop-optimizations, -Wreturn-local-addr, which
are new to GCC 4.8. Remove -Wformat=2, -Wmissing-format-attribute,
-Wmissing-noreturn, as they are duplicates of other warnings.
Remove -Wunreachable-code, as it is removed in GCC 4.8 and
was documented to be flaky in earlier versions of GCC.
spawn-tests, sys_socket-tests, sys_wait-tests: port to clang
* tests/test-spawn.c (main):
* tests/test-sys_socket.c (main):
* tests/test-sys_wait.c (main):
Don't have a switch value that isn't covered by a case.
getaddrinfo-tests: port --enable-gcc-warnings to clang
* tests/test-getaddrinfo.c (simple):
Avoid casts from looser to stricter-aligned pointers.
thread: port --enable-gcc-warnings to clang
* lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]:
Include , to pacify a warning about pthread_sigmask.
stdio: use __REDIRECT for fwrite, fwrite_unlocked
* lib/stdio.in.h (fwrite):
When working around bug 11959, use __REDIRECT rather than '#define
fwrite(...) ... fwrite (...) ...'. This is a more-targeted way to
fix the -Wunused-value issue with clang, and it works with GCC too.
Problem with targeting reported by Eric Blake in
.
(fwrite_unlocked): Treat like fwrite. I ran into this issue while
debugging the fwrite issue.
stdio: port --enable-gcc-warnings to clang
* lib/stdio.in.h (fwrite) [__clang__]: Ignore -Wunused-value entirely,
since the GCC workaround for fwrite does not pacify clang.
sig2str: port --enable-gcc-warnings to clang
* lib/sig2str.c (sig2str): Avoid warning about unused printf argument.
obstack: port --enable-gcc-warnings to clang
* lib/obstack.h (obstack_ptr_grow_fast, obstack_int_grow_fast):
Avoid casts from looser to stricter-aligned pointers.
memchr2: port --enable-gcc-warnings to clang
* lib/memchr2.c (memchr2):
Avoid casts from looser to stricter-aligned pointers.
mbsstr: port --enable-gcc-warnings to clang
* lib/mbsstr.c (knuth_morris_pratt_multibyte):
Avoid casts from looser to stricter-aligned pointers.
malloca: port --enable-gcc-warnings to clang
* lib/malloca.c (struct header): New member 'magic', to avoid casts.
(mmalloca): Avoid casts from looser to stricter-aligned pointers.
inttostr: port --enable-gcc-warnings to clang
* lib/anytostr.c [__clang__]: Ignore -Wtautological-compare.
warnings: port to clang
Problem reported by Daniel P. Berrange via Eric Blake in
.
* m4/warnings.m4 (gl_UNKNOWN_WARNINGS_ARE_ERRORS): New macro.
(gl_WARN_ADD): Use it.
2013-05-11 Jim Meyering
quotearg: do not read beyond end of buffer
* lib/quotearg.c (quotearg_buffer_restyled): Do not read beyond the
end of an ARG for which no length was specified. With an N-byte
quote string, (e.g., N is 3 in the fr_FR.UTF-8 locale), this function
would read N-2 bytes beyond ARG's trailing NUL. This was triggered
via coreutils' misc/sort-debug-keys.sh test and detected by running
the test against a binary compiled with gcc-4.8.0's -fsanitize=address.
* tests/test-quotearg-simple.c (main): Add a test to trigger the bug.
* modules/quotearg-simple-tests (Files): Add tests/zerosize-ptr.h.
Introduced via the 2000-01-15 commit, c4b7f3f8, "Quote multibyte
characters correctly."
2013-05-11 Daiki Ueno
lock: work around pthread recursive mutexes bug in Mac OS X 10.6
* m4/lock.m4: Don't define HAVE_PTHREAD_MUTEX_RECURSIVE if the
compilation target is Mac OS X 10.6.
Problem reported by parafin and Andoni Morales in
and
.
2013-05-11 Paul Eggert
mkdir-p: remove assumptions about umask and mode
* lib/mkdir-p.c (make_dir_parents): Do not assume that the current
umask is 0, or that MODE is a subset of MODE_BITS.
2013-05-10 Eric Blake
maint.mk: catch more abuse of HAVE_DECL in syntax-check
* top/maint.mk (sc_prohibit_defined_have_decl_tests): Relax regex.
2012-05-10 Stefano Lattarini
deps: require Automake >= 1.9.6 in generated Makefile fragments
That is the same minimal version required in the DEPENDENCIES file.
Moreover, the old code generated a requirement of Automake >= 1.5,
and that is an insanely outdated version.
* gnulib-tool: Bump minimal version requirement in AUTOMAKE_OPTIONS.
* tests/havelib/rpathlx/Makefile.am: Likewise.
* tests/havelib/rpathly/Makefile.am: Likewise.
* tests/havelib/rpathlyx/Makefile.am: Likewise.
* tests/havelib/rpathlz/Makefile.am: Likewise.
* tests/havelib/rpathlzyx/Makefile.am: Likewise.
* tests/havelib/rpathx/Makefile.am: Likewise.
* tests/havelib/rpathy/Makefile.am: Likewise.
* tests/havelib/rpathz/Makefile.am: Likewise.
2013-05-08 Eric Blake
bootstrap: AC_INIT may have more than four parameters
* build-aux/bootstrap (extract_package_name): Correctly extract
non-empty tarname field. Avoid range in regex.
Based on a report by Sami Kerola .
2013-05-07 Paul Eggert
qacl: port to MS-Windows port of GNU Emacs
* lib/acl-errno-valid.c (acl_errno_valid) [ENOTSUP == ENOSYS]:
Omit the duplicate ENOTSUP case. Needed for the MS-Windows
port of GNU Emacs. Problem reported by Eli Zaretskii in
.
2013-05-07 Mike Frysinger
acl: include quote.h
* lib/copy-acl.c: Include quote.h.
* lib/set-acl.c: Likewise.
2013-05-06 Mike Frysinger
fchownat, renameat, unlinkat: update statat dependencies
These modules use statat and lstatat, not fstatat; so depend on
the statat module, which was split out recently from fstatat.
* modules/fchownat, modules/unlinkat: Change fstatat to statat.
* modules/renameat: Likewise. Also delete fstat.
URL: http://bugs.gentoo.org/468790
2012-05-04 Stefano Lattarini
Assume gnulib is checked out from Git, not CVS
In fact, access to the gnulib repository through CVS has been
disabled, or more precisely, got broken and was never restored; see:
Note that support for CVS is not removed completely and unthinkingly
by this change: only support for CVS checkouts of gnulib itself is
removed. For example, the 'bootstrap' script still cater to .cvsingore
files and CVS directories, for the benefit of those poor gnulib clients
still stuck with CVS. Ditto for the 'gnulib-tool' script itself.
* gnulib-tool: Simplify accordingly.
* posix-modules: Likewise.
* MODULES.html.sh: Likewise.
* doc/gnulib.texi: No longer mention the decommissioned CVS gnulib
repository.
* doc/gnulib-intro.texi: Likewise.
* doc/gnulib-readme.texi: Likewise.
* doc/gnulib-tool.texi: In the examples and explanations, refer to a
sample '.gitignore' file rather than a sample '.cvsignore'.
* NEWS: Update.
* m4/extensions.m4: While at it, remove a comment mistakenly referring
to "CVS Autoconf" rather than "git Autoconf".
2013-04-30 Paul Eggert
utimensat-tests, etc.: try to fix some races
Problem reported by Bernhard Voelker in
.
I don't know whether this patch fixes that race condition, but it
fixes *some* race conditions, so it should be a win.
* modules/chown-tests (Depends-on):
* modules/fchownat-tests (Depends-on):
* modules/fdutimensat-tests (Depends-on):
* modules/futimens-tests (Depends-on):
* modules/lchown-tests (Depends-on):
* modules/stat-time-tests (Depends-on):
* modules/utimens-tests (Depends-on):
* modules/utimensat-tests (Depends-on):
Depend on nanosleep, not usleep.
* modules/chown-tests (test_chown_LDADD):
* modules/lchown-tests (test_lchown_LDADD):
* modules/stat-time-tests (test_stat_time_LDADD):
New macro.
* modules/fchownat-tests (test_fchownat_LDADD):
* modules/fdutimensat-tests (test_fdutimensat_LDADD):
* modules/futimens-tests (test_futimens_LDADD):
* modules/utimens-tests (test_utimens_LDADD):
* modules/utimensat-tests (test_utimensat_LDADD):
Add $(LIB_NANOSLEEP).
* modules/stat-time-tests (Files): Add tests/nap.h.
* tests/nap.h: Include , for INT_MAX.
(lt_mtime): Remove.
(diff_timespec): New function.
(get_stat): Rename from get_mtime. All callers changed.
(nap_works): Determine the needed delay by inspecting the
file system's timestamp jumps; this should be more reliable.
Look at both mtime and ctime, and take the maximum of the two jumps.
(nap_works, guess_delay):
Return a nanosecond cound, not a microsecond count.
All callers changed.
(nap_works, nap): Use nanosleep, not usleep. Check for nanosleep
failure.
(nap): Multiply the guess by 1.125, to accommodate the case where
the file system's clock is a bit slower than nanosleep's clock.
* tests/test-stat-time.c (BASE): New macro.
Include nap.h.
(nap): Remove; nap.h now defines this. This removes a duplicate
implementation of 'nap'.
utimens, utimensat: work around Solaris UTIME_OMIT bug
Solaris 11.1 and Solaris 10 have the same UTIME_OMIT bug that
Linux kernel 2.6.32 does. Work around it in the same way.
* doc/posix-functions/futimens.texi (futimens):
* doc/posix-functions/utimensat.texi (utimensat): Document the bug.
* lib/utimens.c (fdutimens, lutimens):
* lib/utimensat.c (rpl_utimensat): Work around the bug.
gettext: now it's your responsibility to add -I$(top_builddir)/intl
Formerly, it was your responsibility to do this for all Makefile.ams
other than Gnulib's. Now it's your responsibility to do it for
Gnulib's Makefile.am, too.
* NEWS: Document this.
* modules/gettext (AM_CPPFLAGS): Don't append -$(top_builddir)/intl.
acl: include errno.h to get errno
Reported by Daiki Ueno in
.
* lib/copy-acl.c, lib/set-acl.c: Include errno.h.
2013-04-29 Paul Eggert
tests: don't assume getdtablesize () <= 10000000
* modules/cloexec-tests:
* modules/dup2-tests:
* modules/dup3-tests:
* modules/nonblocking-tests:
* modules/posix_spawn_file_actions_addclose-tests:
* modules/posix_spawn_file_actions_adddup2-tests:
* modules/posix_spawn_file_actions_addopen-tests:
* modules/unistd-safer-tests:
Depend on the getdtablesize module.
* tests/test-cloexec.c:
* tests/test-dup-safer.c:
* tests/test-dup2.c:
* tests/test-dup3.c:
* tests/test-fcntl.c:
* tests/test-nonblocking.c:
* tests/test-posix_spawn_file_actions_addclose.c:
* tests/test-posix_spawn_file_actions_adddup2.c:
* tests/test-posix_spawn_file_actions_addopen.c:
Don't assume getdtablesize () <= 10000000.
2013-04-28 Paul Eggert
extern-inline: work around bug in Sun c99
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE):
Work around bug in Sun C 5.12 c99's implementation of 'inline'.
2013-04-27 Paul Eggert
qacl: new module, broken out from the acl module
This is for GNU Emacs, which wants the acl functions but does
not want 'error' invoked when they fail.
* lib/acl-internal.h: Do not include error.h, quote.h.
(ENOSYS, ENOTSUP): Remove; no longer needed.
(ACL_NOT_WELL_SUPPORTED): Remove; replaced by acl_errno_valid.
* lib/acl.h: Include .
(acl_errno_valid): New function.
* lib/copy-acl.c, lib/set-acl.c: Include errno,h, not acl-internal.h.
* lib/copy-acl.c (qcopy_acl): Move to lib/qcopy-acl.c.
* lib/set-acl.c: Rename from lib/set-mode-acl.c.
(chmod_or_fchmod, qset_acl): Move to lib/qset-acl.c.
(ACL_INTERNAL_INLINE): Remove; no longer needed.
* lib/file-has-acl.c (file_has_acl):
* lib/qcopy-acl.c (qcopy_acl):
* lib/qset-acl.c (qset_acl):
Use acl_errno_valid instead of ACL_NOT_WELL_SUPPORTED.
* modules/acl (Files): Move lib/acl.h, lib/acl-internal.h,
lib/acl_entries.c, lib/set-mode-acl.c (renamed to lib/set-acl.c),
lib/file-has-acl.c, m4/acl.m4 to qacl module.
Add lib/set-acl.c.
(Depends-on): Move extern-inline, fstat, sys_stat to qacl module.
Add qacl.
(configure.ac): Move gl_FUNC_ACL to qacl module.
(lib_SOURCES): Remove file-has-acl.c (moved to qacl module).
Rename set-mode-acl.c to set-acl.c.
* lib/acl-errno-valid.c: New file.
* lib/qcopy-acl.c: New file, moved from the old lib/copy-acl.c; the
copy_acl function remains in copy-acl.c.
* lib/qcopy-acl.c, lib/qset-acl.c: Do not include gettext.h.
(_): Remove; not needed.
* lib/qset-acl.c: New file, moved from the old lib/set-mode-acl.c; the
set_acl function remains in set-acl.c (renamed from set-mode-acl.c).
* modules/qacl: New file, moved from the old modules/acl.
(Files, lib_SOURCES): Add acl-errno-valid.c, qcopy-acl.c, qset-acl.c.
Remove set-mode-acl.c, copy-acl.c.
(Depends-on): Remove error, gettext-h, quote. Add stdbool.
alignof, intprops, malloca: port better to IBM's C compiler
* lib/alignof.h (alignof_type) [__IBM_ALIGNOF__]: Use __alignof__.
* lib/intprops.h (_GL_HAVE___TYPEOF__) [__IBM_TYPEOF__]: Now 1.
* lib/malloca.h (sa_alignof): [__IBM_ALIGNOF__]: Use __alignof__.
2013-04-25 Daiki Ueno
wctype-h: fix gettext link error on mingw
Reported by Josue Andrade Gomes and Takayuki Tsunakawa in
.
* lib/wctype.in.h [__MINGW32__]: Include before defining
rpl_towupper and rpl_towupper.
2013-04-11 Dmitry V. Levin
regex-tests, regex: allow glibc re_search behavior
* tests/test-regex.c (main): In test for glibc bug 15078, reformat
re_search input data to make the multi-character collating element
in it clearly visible, and treat re_search return code 0 as valid.
* m4/regex.m4 (gl_REGEX): Likewise.
2013-03-30 Paul Eggert
stdalign: doc fix
* doc/posix-headers/stdalign.texi (stdalign.h):
Gnulib doesn't support '_Alignof expr'.
2013-03-29 Paul Eggert
stdalign: port to stricter ISO C11
ISO C11 says that _Alignof's operand must be a parenthesized type.
Problem reported by Eli Zaretskii in
.
* doc/posix-headers/stdalign.texi (stdalign.h): Document this.
* m4/stdalign.m4 (gl_STDALIGN_H): Don't use _Alignof (expr).
2013-03-21 Paul Eggert
sys_select, sys_time: port 2013-01-30 Solaris 2.6 fix to Cygwin
Problem reported by Marco Atzeri in
.
* lib/sys_select.in.h [HAVE_SYS_SELECT_H && _CYGWIN_SYS_TIME_H]:
Simply delegate to the system in this case too.
Also, pay attention to _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H only
if OSF/1, since otherwise Cygwin breaks, and it doesn't seem to
be needed on Solaris either.
* lib/sys_time.in.h [_CYGWIN_SYS_TIME_H]:
Simply delegate to the system in this case.
2013-03-19 Karl Berry
* build-aux/gnupload: check for erroneous (with gnupload) use of
ftp-upload.gnu.org, tweak help.
2013-03-19 Paul Eggert
copy-file, rpmatch: fix problems found by cppcheck
Reported by Arno Onken in
.
* lib/rpmatch.c (try): Fix memory leak.
* lib/copy-file.c: Include "ignore-value.h".
(qcopy_file_preserving): Ignore chown value.
* modules/copy-file (Depends-on): Add ignore-value.
2013-01-27 Jim Meyering
prefix-gnulib-mk: give better diagnostics
* build-aux/prefix-gnulib-mk: Don't just "die".
Give better diagnostics upon failure.
2013-03-13 Paul Eggert
putenv: port to Solaris 10
* lib/putenv.c (_unsetenv, putenv): Use HAVE_DECL__PUTENV, not
HAVE__PUTENV. Solaris 10 has a _putenv that's not declared and
is not what is wanted here.
* m4/putenv.m4 (gl_PREREQ_PUTENV): Check for _putenv's
declaration, not for its existence.
2013-03-12 Paul Eggert
mktime: fix configure typo
* m4/mktime.m4 (gl_FUNC_MKTIME): Fix typo in previous change.
2013-03-12 Eric Blake
regex-tests: skip UTF-8 test on mingw
* modules/regex-tests (Depends-on): Add localcharset.
* tests/test-regex.c (main): Use it to skip test on mingw.
2013-03-11 Eric Blake
tests: make it easier to bypass alarm time in debugger
* tests/test-file-has-acl.c (main): Allow gdb to override alarm.
* tests/test-memmem.c (main): Likewise.
* tests/test-passfd.c (main): Likewise.
* tests/test-ptsname.c (main): Likewise.
* tests/test-ptsname_r.c (main): Likewise.
* tests/test-strcasestr.c (main): Likewise.
* tests/test-strstr.c (main): Likewise.
regex: port to mingw's recent addition of undeclared alarm
* doc/posix-functions/alarm.texi (alarm): Document that alarm
exists but still doesn't work in newer mingw.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Check for alarm declaration,
not existence. Ensure SIGALRM is not trapped.
* m4/mktime.m4 (gl_FUNC_MKTIME): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/remainderf.m4 (gl_FUNC_REMAINDERF_WORKS): Likewise.
* tests/test-regex.c (main): Use correct probe for alarm.
putenv: avoid compilation warning on mingw
* lib/putenv.c (_unsetenv): Protect variable declaration.
(putenv): Fix indentation.
2013-03-11 Gary V. Vaughan
unistd: don't prevent Tru64 Unix from using gnulib strtod.
* lib/unistd.in.h: be careful not to include un-needed system
stdlib.h from here, because that prevents gnulib stdlib.h from
defining rpl_strtod correctly.
2013-03-09 Gary V. Vaughan
vasprintf-posix-tests: allow rounding 1.51 to 1, per the previous
changesets, but for the 'precision 0' test.
* tests/test-vasprintf-posix.c (test_function): Don't insist on
round-to-even, since POSIX says rounding is implementation-defined
and OS X 10.8.2 rounds 1.51 to 1 here.
vasprintf-posix-tests: allow rounding 1.5 to 1, per the previous
changeset.
* tests/test-vasprintf-posix.c (test_function): Don't insist on
round-to-even, since POSIX says rounding is implementation-defined
and OS X 10.8.2 rounds 1.5 to 1 here.
2013-03-08 Paul Eggert
vasnprintf-posix-tests: allow rounding 1.5 to 1
* tests/test-vasnprintf-posix.c (test_function): Don't insist on
round-to-even, since POSIX says rounding is implementation-defined
and OS X 10.8.2 rounds 1.5 to 1 here. Reported by Gary V. Vaughan in
.
bootstrap: port to FreeBSD
* build-aux/bootstrap (bootstrap_sync): Port sh -c usage to shells
that treat '--' differently. Reported by Mats Erik Andersson in
.
2013-03-08 Gary V. Vaughan
regex: rename remaining __attribute calls to __attribute__.
2012-02-25 changed definition of __attribute, but left some uses
unchanged, preventing compilation of regex module on most non-gcc
environments.
* lib/regcomp.c (re_set_fastmap, seek_collating_symbol_entry)
(lookup_collation_sequence_value, build_range_exp)
(build_collating_symbol): Set attributes with newly renamed
__attribute__ decorator.
* lib/regex_internal.c (re_string_peek_byte_case)
(re_node_set_compare, re_node_set_contains): Likewise.
* lib/regexec.c (acquire_init_state_context): Likewise.
2013-03-06 Bruno Haible
execute: Revert last change, but use a different condition.
* lib/execute.c (nonintr_close, nonintr_open): Reintroduce, but only
on Windows.
2013-03-05 Eric Blake
execute: drop dead code
* lib/execute.c (nonintr_close, nonintr_open): Delete.
2013-03-04 Paul Eggert
non-recursive-gnulib-prefix-hack: port coreutils 8.21 to HP NonStop
* m4/non-recursive-gnulib-prefix-hack.m4
(gl_NON_RECURSIVE_GNULIB_PREFIX_HACK): Don't mess with ALLOCA.
Problem reported for HP NonStop + coreutils 8.21 by Joachim Schmitz in
.
2013-03-04 Eric Blake
test-getsockopt: avoid compiler warning
* tests/test-getsockopt.c (includes): Ensure close is declared.
2013-03-02 Bruno Haible
sys_types: Avoid autoconf warning about gl_SYS_TYPES_H.
* m4/sys_types_h.m4 (gl_SYS_TYPES_H): Define through AC_DEFUN_ONCE.
2013-03-02 Bruno Haible
gettext: Update to version 0.18.2.
* m4/intl.m4, m4/po.m4: Update from gettext-0.18.2. In particular:
2012-12-07 Stefano Lattarini
* intl.m4, po.m4: Bump requirement in AC_PREREQ to 2.60.
2013-02-25 Paul Eggert
regex: merge patches from libc
2013-02-26 Siddhesh Poyarekar
* lib/regex_internal.h (__attribute__): Rename from __attribute.
All uses changed.
(bitset_not, bitset_merge, bitset_mask, re_string_char_size_at)
(re_string_wchar_at, re_string_elem_size_at):
Mark function as possibly unused.
2013-02-12 Andreas Schwab [BZ #11561]
* lib/regcomp.c (parse_bracket_exp) [_LIBC]: When looking up collating
elements compare against the byte sequence of it, not its name.
2013-02-21 Paul Eggert
putenv: port better to native Windows
* lib/putenv.c [(_WIN32 || __WIN32__) && ! __CYGWIN__]:
Define WIN32_LEAN_AND_MEAN and include .
(_unsetenv): Use _putenv if available.
(putenv): Temporarily set NAME=' ' rather than NAME='x' as that's
a bit less likely to cause damage.
(putenv) [(_WIN32 || __WIN32__) && ! __CYGWIN__]:
Fix the wrong value with SetEnvironmentVariable.
(putenv) [!HAVE__PUTENV]: Simplify and match the HAVE__PUTENV
code better.
2013-02-20 Paul Eggert
regex: ignore old-style-definition warnings
* lib/regex.c: Add pragma to ignore these warnings.
Problem reported for GNU tar by Pavel Raiskup.
2013-02-19 Paul Eggert
getcwd: support coreutils better
Like strtod, getcwd incorrectly referred to HAVE_RAW_DECL_GETCWD,
but this might not be correct in coreutils, which disables
the raw decl checks. Problem reported by Nagendra in
.
* lib/getcwd.c (__getcwd): Do not depend on HAVE_RAW_DECL_GETCWD.
* m4/getcwd-path-max.m4 (gl_FUNC_GETCWD_PATH_MAX):
Test the getcwd function, not any macro, since getcwd.c wants the
function.
* m4/getcwd.m4 (gl_FUNC_GETCWD):
Don't define HAVE_MINIMALLY_WORKING_GETCWD if the code doesn't
compile, as might happen if there's a macro but no function.
strtod: support coreutils better
* lib/strtod.c (underlying_strtod): Just invoke the underlying strtod.
HAVE_RAW_DECL_STRTOD might not be correct in coreutils, which
disables the raw decl checks. This assumes there is an underlying
strtod, but that's a safe assumption these days.
(HAVE_RAW_DECL_STRTOD): Remove; no longer used.
mountlist: port to HP NonStop
Reported by Joachim Schmitz in
.
* lib/mountlist.c (hasmntopt) [!HAVE_HASMNTOPT]: New function.
(MNT_IGNORE) [MNTOPT_IGNORE]: Use it.
2013-02-18 Paul Eggert
extern-inline: avoid compilation error with HP-UX cc
Reported by Richard Lloyd in
.
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE):
Suppress extern inline with HP-UX cc. This should be safe,
though it may hurt performance. Perhaps someone with some HP-UX
experience can come up with a higher-performance fix.
2013-02-14 Paul Eggert
putenv: fix heap corruption with mixed putenv/_putenv
Problem reported by Michael Goffioul in
.
* lib/putenv.c (putenv) [HAVE__PUTENV]:
Rely on _putenv to allocate the new environment.
* m4/putenv.m4 (gl_PREREQ_PUTENV): New macro.
* modules/putenv (configure.ac): Use it.
2013-02-11 Paul Eggert
unsetenv etc.: port to Solaris 11 + GNU Emacs
* lib/canonicalize-lgpl.c, lib/getaddrinfo.c, lib/getdelim.c:
* lib/glob.c, lib/random_r.c, lib/setenv.c, lib/tsearch.c:
* lib/unsetenv.c (_GL_ARG_NONNULL): Define before including .
GNU Emacs's includes (which is not a great
idea but is too painful to fix right now), and without this gnulib
change was defining _GL_ARG_NONNULL incorrectly when
compiling unsetenv.c on Solaris 11. Fix the problem for
unsetenv.c, and fix other similar occurrences.
2013-02-09 Paul Eggert
secure_getenv: fix C++ declaration typo
* lib/stdlib.in.h (secure_getenv): Fix typo with return type
in _GL_CXXALIAS_SYS macro. Reported by John W. Eaton in
.
2013-02-08 Paul Eggert
careadlinkat: stop exporting careadlinkatcwd
Only Emacs used it directly, and Emacs no longer needs it.
* NEWS: Document this simplification.
* lib/areadlink.c (careadlinkatcwd): Move here from careadlinkat.c,
and make it static. Include , for abort, and unistd.h,
for readlink.
* lib/careadlinkat.c (careadlinkatcwd): Move to areadlink.c.
Don't include stdlib.h; no longer needed.
* lib/careadlinkat.h (careadlinkatcwd): Remove decl.
* lib/relocwrapper.c: Adjust comment to match new dependencies.
* modules/areadlink (Depends-on): Add readlink.
(Maintainer): Add self.
* modules/careadlinkat (Depends-on): Remove readlink.
extensions: port better to HP-UX
This is merged from git Autoconf.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
On hosts that need _XOPEN_SOURCE, define it when configuring, too,
so that it's compatible with the value used when compiling.
openpty: fix bug where HAVE_OPENPTY is mistakenly 1
Problem reported by Mats Erik Andersson in
.
* m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
openpty function exists, not merely when we intend to replace it.
This corrects the 2013-01-31 patch, which mistakenly defined
HAVE_OPENPTY even on hosts that lacked it.
2013-02-07 Paul Eggert
secure_getenv: fix include typo
* lib/secure_getenv.c: Include config.h. Somehow I forgot!
secure_getenv: port better to FreeBSD and Solaris
* lib/secure_getenv.c [!HAVE___SECURE_GETENV]:
Include unistd.h if HAVE_ISSETUGID, otherwise define a dummy issetugid.
(secure_getenv) [!HAVE___SECURE_GETENV]: Use getenv if not issetugid.
This works better on BSDish platforms.
* m4/secure_getenv.m4 (gl_PREREQ_SECURE_GETENV):
Test for issetugid if __secure_getenv is missing.
2013-02-06 Paul Eggert
extensions: port better to MINIX 3, HP-UX, autoheader 2.62
Some of these changes are merged in from git Autoconf.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS):
When deciding whether to define _XOPEN_SOURCE, inspect the
preprocessor macro __hpux instead of the more-heavyweight
operation of requiring AC_CANONICAL_HOST. Define _NETBSD_HOST on
MINIX, for MINIX 3. Use USE_SYSTEM_EXTENSIONS, not __EXTENSIONS__,
as the key for __EXTENSIONS__.
unistd: avoid namespace pollution on non-glibc systems
* lib/unistd.in.h: #define __need_getopt before including .
This avoids namespace pollution on non-glibc systems, by causing
gnulib unistd.h to behave more like glibc unistd.h. I also hope
that this fixes a bug on FreeBSD, reported by Mats Erik Andersson in
.
2013-02-04 Paul Eggert
tmpdir: use secure_getenv
* lib/tmpdir.c (__secure_getenv) [!LIBC]:
Define to secure_getenv, not getenv.
* m4/tmpdir.m4 (gt_TMPDIR): Don't check for __secure_getenv,
as that's now secure_getenv's job.
* modules/tmpdir (Depends-on): Add secure_getenv.
tempname: use secure_getenv
* lib/tempname.c (__secure_getenv) [!_LIBC]:
Define to secure_getenv, not getenv.
* modules/tempname (Depends-on):
Add secure_getenv.
secure_getenv: new module
* MODULES.html.sh (Extra functions based on ANSI C 89):
Add secure_getenv.
* doc/glibc-functions/secure_getenv.texi: New file.
* doc/gnulib.texi: Include it.
* lib/secure_getenv.c, m4/secure_getenv.m4, modules/secure_getenv:
New files.
* lib/stdlib.in.h (secure_getenv): New decl.
* m4/stdlib_h.m4 (gl_STDLIB_H, gl_STDLIB_H_DEFAULTS):
* modules/stdlib (stdlib.h):
Add secure_getenv checks.
2013-02-03 Paul Eggert
getcwd: break fdopendir + save_cwd recursive loop (Bug#13516)
Reported for OS X 10.8.2 by Assaf Gordon in
.
* lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if
!HAVE_OPENAT && !HAVE_FDOPENDIR.
* m4/getcwd-abort-bug.m4: Reformat to match test-getcwd.c
so that they can be kept in sync more easily. Avoid PATH_MAX
test on the Hurd. Sync from test-getcwd.c for errno tests after
mkdir or chdir failure.
* tests/test-getcwd.c (HAVE_OPENAT_SUPPORT): New macro, from
lib/getcwd.c.
(test_abort_bug): Do not test for the deep directory bug unless we
have openat support. Avoid PATH_MAX test on the Hurd.
regex-tests, regex: fix bug: memset undeclared
* tests/test-regex.c: Don't include regex.h twice. Include
string.h, to declare memset. Christensen's report also mentioned
this issue.
* m4/regex.m4 (gl_REGEX): Keep test program more in sync with
test-regex.c, to avoid future problems like this. Remove
AC_INCLUDES_DEFAULT. Include . Don't include
twice.
regex-tests: fix link errors on older Solaris
These need to link with @LIBINTL@ to get libintl_gettext.
Problem reported by Tom G. Christensen in
.
* modules/regex-tests (test_regex_LDADD): New macro.
2013-01-31 Paul Eggert
regex-tests: new module
* modules/regex-tests, tests/test-regex.c: New files.
regex: fix off-by-one error in configure test
* m4/regex.m4 (gl_REGEX): Test should return 21, not 20.
2013-01-31 Eric Blake
regex: avoid infinite configure test
* m4/regex.m4 (gl_REGEX): Add an alarm escape hatch.
2013-01-31 Reuben Thomas
openpty: fix bug where HAVE_OPENPTY wasn't defined
See the thread starting at:
http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00185.html
* m4/pty.m4 (gl_FUNC_OPENPTY): Define HAVE_OPENPTY when the
openpty function exists, not merely when we intend to replace it.
2013-01-30 Paul Eggert
sys_time: port to Solaris 2.6
There is a circularity problem on Solaris 2.6, where includes
for struct timespec. The include nesting is gnulib
, system , gnulib , system
, gnulib , system , gnulib
, gnulib , system , system
; the last, innermost file needs struct
timestruc_t, which is defined in , which has not been
fully parsed. Problem reported by Tom G. Christensen in
.
* lib/sys_select.in.h: Treat Solaris 2.6's problem with
and like OSF/1's similar problem.
* lib/sys_time.in.h: Redo to resemble sys_select.in.h, which
uses split double-inclusion guards.
2013-01-29 Paul Eggert
regex: test for buffer overrun
* m4/regex.m4 (gl_REGEX): Add test case, by Andreas Schwab,
for the just-fixed regex bug.
2013-01-29 Andreas Schwab
regex: fix buffer overrun in regexp matcher [BZ #15078]
* lib/regexec.c (extend_buffers): Add parameter min_len.
(check_matching): Pass minimum needed length.
(clean_state_log_if_needed): Likewise.
(get_subexp): Likewise.
2013-01-28 Pádraig Brady
mountlist: don't consider "devtmpfs" as dummy
* lib/mountlist.c (ME_DUMMY_0): Remove "devtmpfs"
as there is storage associcated with it.
2013-01-27 Paul Eggert
futimens-tests, utimens-tests: Depend on gettext.
This works around a problem introduced in my 2013-01-12 patch,
which added @LIBINTL@ to these modules.
* modules/futimens-tests (Depends-on):
* modules/utimens-tests (Depends-on): Add gettext.
2013-01-26 Eric Blake
test-getpeername: fix typo
* tests/test-getpeername.c: Fix typo introduced in fd cleanup.
2013-01-20 Bernhard Voelker
bootstrap: remove the need for a sorted .gitignore file
* build-aux/bootstrap (insert_sorted_if_absent): Adjust and
rename to insert_if_absent(), so that we don't need or generate
a sorted .gitignore file. We do require a .gitignore with no
existing duplicate entries and enforce that.
(sort_patterns): Remove this function as we now use the simpler
technigue of inserting blacklist entries at the top of the file,
assuming gnulib won't be inserting !whitelist entries.
2013-01-23 Paul Eggert
readlinkat: don't depend on gl_FUNC_OPENAT
* m4/readlinkat.m4 (gl_FUNC_READLINKAT): Don't require gl_FUNC_OPENAT.
Perhaps a similar change needs to be made for linkat.m4, mkfifoat.m4,
renameat.m4, symlinkat.m4; but one thing at a time.
statat: new module, split out from fstatat
GNU Emacs needs the POSIX-specified fstatat, but not the
gnulib-specified statat and lstat. Split the latter two into a
new module 'statat'.
* lib/openat.h: Depend on GNULIB_STATAT, not GNULIB_FSTATAT.
* lib/openat.h, lib/statat.c (STATAT_INLINE):
Rename from FSTATAT_INLINE. All uses changed.
* modules/fstatat (Files): Remove lib/statat.c.
(gl_MODULE_INDICATOR([fstatat])): Remove.
(lib_SOURCES): Remove.
(Maintainer): Add self.
* modules/statat, modules/statat-tests, tests/test-statat.c: New files.
* tests/test-fstatat.c (BASE): Don't define if already defined.
(do_stat, do_lstat) [!TEST_STATAT]: Test fstatat instead.
2013-01-22 Paul Eggert
tests: don't assume fd 99 is closed
* tests/test-accept.c, tests/test-accept4.c, tests/test-bind.c:
* tests/test-close.c, tests/test-connect.c, tests/test-dprintf.c:
* tests/test-dup.c, tests/test-dup2.c, tests/test-faccessat.c:
* tests/test-fchdir.c, tests/test-fchmod.c, tests/test-fchmodat.c:
* tests/test-fchown.c, tests/test-fchownat.c, tests/test-fclose.c:
* tests/test-fdatasync.c, tests/test-fdopen.c, tests/test-fdopendir.c:
* tests/test-fflush.c, tests/test-fgetc.c, tests/test-fputc.c:
* tests/test-fread.c, tests/test-freopen.c, tests/test-fseeko4.c:
* tests/test-fstat.c, tests/test-fstatat.c, tests/test-fsync.c:
* tests/test-ftello4.c, tests/test-ftruncate.c, tests/test-futimens.h:
* tests/test-fwrite.c, tests/test-getpeername.c:
* tests/test-getsockname.c, tests/test-getsockopt.c:
* tests/test-grantpt.c, tests/test-ioctl.c, tests/test-isatty.c:
* tests/test-linkat.c, tests/test-listen.c, tests/test-lseek.c:
* tests/test-mkdirat.c, tests/test-mkfifoat.c, tests/test-openat.c:
* tests/test-pread.c, tests/test-pwrite.c, tests/test-read.c:
* tests/test-readlinkat.c, tests/test-recv.c, tests/test-recvfrom.c:
* tests/test-renameat.c, tests/test-select.h, tests/test-send.c:
* tests/test-sendto.c, tests/test-setsockopt.c, tests/test-shutdown.c:
* tests/test-symlinkat.c, tests/test-ttyname_r.c:
* tests/test-unlinkat.c, tests/test-unlockpt.c:
* tests/test-utimensat.c, tests/test-vdprintf.c, tests/test-write.c:
Close file descriptor 99, instead of assuming it's already closed.
2013-01-21 Paul Eggert
stpncpy: port to OS X 10.8
* lib/stpncpy.c (__stpncpy): Parenthesize name when defining function.
Problem reported by Assaf Gordon in .
2013-01-16 Paul Eggert
unistd: port to recent mingw
* lib/unistd.in.h: Remove special invocation convention for mingw,
which breaks for the latest mingw version. See John W. Eaton in
.
largefile: port better to Mac OS X 10.5
This patch is backported from Autoconf git.
* m4/largefile.m4 (AC_SYS_LARGEFILE): Use AC_DEFINE, not
AH_VERBATIM, to define _DARWIN_USE_64_BIT_INODE, to avoid problems
with ino_t size being different for configuration time versus
build/run time. Problem reported by PHO in
.
2013-01-15 Paul Eggert
doc: clarify -Werror
* doc/warnings.texi (warnings): -Werror is not always a bad idea;
clarify that it's intended for developers, not for ordinary builds,
and mention --enable-gcc-warnings as one possible use.
2013-01-15 Andoni Morales Alastruey (tiny change)
stdint: fix build with Android's Bionic fox x86
* lib/stdint.in.h: fix check to test if included-fixed/sys/types.h
was already included as _SSIZE_T_DEFINED_ might also be defined
in include/machine/_types.h, which is included by stdio.h
2013-01-13 Paul Eggert
net_if-tests: port to Solaris 7 + GCC 3.4.6
Problem reported by Tom G. Christensen in
.
* tests/test-net_if.c (ni): Move to next the code that uses it,
so that it's declared only if needed.
2013-01-12 Paul Eggert
net_if-tests: port to older Solaris
Problem reported by Tom G. Christensen in
.
* modules/net_if-tests (NET_IF_LIB): New substitution.
(test_net_if_LDADD): New makefile macro, which uses NET_IF_LIB.
(HAVE_IF_NAMEINDEX): New C macro.
* tests/test-net_if.c: Bypass most of the test if !HAVE_IF_NAMEINDEX.
system-quote-tests: port to older Solaris
Problem reported by Tom G. Christensen in
.
* tests/test-system-quote-child.c (fopen, fread): Undef.
c-xvasprintf etc.: fix link errors on older Solaris
These need to link with @LIBINTL@ to get libintl_gettext.
Problem reported by Tom G. Christensen in
.
* modules/c-xvasprintf-tests (test_c_xvasprintf_LDADD):
* modules/readtokens-tests (test_readtokens_LDADD): New macros.
* modules/futimens-tests (test_futimens_LDADD):
* modules/utimens-tests (test_utimens_LDADD): Add @LIBINTL@.
2013-01-10 Paul Eggert
locale: port to Solaris 2.6 and 7 + GNU gettext
* lib/locale.in.h: Just include_next when
being invoked recursively. This prevents problems on Solaris 2.6 and 7
when combining the localename module with GNU gettext 0.18.2.
Problem reported by Tom G. Christensen in
.
2013-01-09 Paul Eggert
stdlib: port to Solaris 2.6
Also, the code worked on Solaris 7 through 9 only by accident.
Problem reported by Tom G. Christensen in
.
* lib/stdlib.in.h: If __need_system_stdlib_h is defined,
simply include the system stdlib.h.
* lib/getopt.in.h (__need_system_stdlib_h):
* lib/pthread.in.h (__need_system_stdlib_h):
* lib/unistd.in.h (__need_system_stdlib_h) [!__GLIBC__]:
Define when including , to avoid problems at least for
the pthread case on Solaris 2.6 and 7. These .h files can get by
with the system stdlib.h.
2013-01-06 Paul Eggert
doc: update main copyright year
* doc/gnulib.texi: Update copyright date.
doc: improve ISO 8601 discussion
* doc/parse-datetime.texi (Combined date and time of day items):
Specify more carefully what formats are supported and what is
done with excess precision.
2013-01-05 Paul Eggert
doc: avoid small caps
* doc/parse-datetime.texi, doc/regex.texi: Don't use small caps;
they're more trouble than they're worth. Suggested by Karl Berry
in .
regex: conform to strict C
* lib/regcomp.c (parse_bracket_exp): Add cast to conform to strict C.
From Aharon Robbins.
gnulib-tool: fix incompatibility with autopoint 0.18.2
* gnulib-tool: Don't indent AM_GNU_GETTEXT_VERSION line.
Problem reported by Tom G. Christensen in
.
2013-01-04 Paul Eggert
fprintftime: bring back and reword fwrite comment
* lib/strftime.c (cpy) [FPRINTFTIME]: Re-add reworded comment.
stdio: remove now-unnecessary stdio.c
Since stdio.in.h no longer uses inline functions, we no longer
need to compile the extern versions.
* lib/stdio.c: Remove.
* modules/stdio (Files): Remove lib/stdio.c.
(lib_SOURCES): Remove.
unicodeio: depend on stdio, not ignore-value
* lib/unicodeio.c: Do not include ignore-value.h.
(fwrite_success_callback): Use plain fwrite, not ignore_value + fwrite.
* modules/unicodeio (Depends-on): Depend on stdio, not ignore-value.
fprintftime: depend on stdio, not ignore-value
* lib/strftime.c [FPRINTFTIME]: Do not include ignore-value.h.
(cpy) [FPRINTFTIME]: Use plain fwrite, not ignore_value of fwrite,
since the stdio module arranges to silence that warning now.
* modules/fprintftime (Depends-on): Depend on stdio, not ignore-value.
2012-10-04 Simon Josefsson
stdint-tests: Fix expanded-before-required-warning.
* modules/stdint-tests (Depends-on): Use AC_REQUIRE.
2013-01-03 Paul Eggert
fwrite: silence __wur only for older glibc versions
* lib/stdio.in.h (fwrite): Limit workaround to glibc 2.4 through 2.15.
This will help us remove this workaround some time in the far future.
2013-01-03 Eric Blake
fwrite: silence __wur without using inline
* lib/stdio.in.h (fwrite): Limit warn_unused_result workaround to
just gcc, and in a way that avoids inline issues.
* modules/stdio (Depends-on): Drop extern-inline.
2013-01-03 Jim Meyering
update-copyright: avoid copyright notice date corruption
Given a sequence of copyright year numbers in which the final
one was a two-digit number that happened to be a substring of
a preceding four-digit year number, we would mistakenly update
the substring (from two- to four-digit) rather than the two-digit
number at the end, which, combined with the addition of the current
4-digit year number would yield two 5-digit year numbers, e.g.,
here, it would convert the first "99" to "1999, 2013" rather than
the final one:
1991, 99
11999, 20131, 1999
* build-aux/update-copyright: Tighten a regexp.
* tests/test-update-copyright.sh: Add a test case to trigger the bug.
Reported by Joseph Myers in
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/32281
2013-01-01 Paul Eggert
regex: omit needless signed-pointer casts
* lib/regcomp.c (build_charclass, build_charclass_op):
Use char *, not unsigned char *, for class name and extra.
The char values are always nonnegative so there's no need to
insist on unsigned char * here, and using char * removes the need
for casts. Reported by Aharon Robbins in
.
regex: support Gawk, which never uses alloca
* lib/regex_internal.h [!_LIBC && !HAVE_ALLOCA]:
Do not include in this case. Gawk doesn't supply a substitute
alloca.h and doesn't need one.
regex: port __libc_lock_define usage to C89
* lib/regex_internal.h (__libc_lock_define) [!_LIBC]: Remove.
(struct re_dfa_t): Use #ifdef instead. '__libc_lock_define (, lock)'
does not conform to C89, as it has an empty macro argument.
Reported by Aharon Robbins in
.
2013-01-01 Eric Blake
maint: update all copyright year number ranges
Run "make update-copyright".
version-etc: bump copyright year reported in --version
* lib/version-etc.c (COPYRIGHT_YEAR): Update to 2013.
2012-12-31 Eric Blake
sigprocmask-tests: skip test if pid is unexpectedly large
* tests/test-sigprocmask.c (main): Add range check.
git-version-gen: avoid test -z portability glitch
* build-aux/git-version-gen: Prefer portable test spelling, since
git-version-gen is run on more than just developer machines.
2012-12-31 Peter Rosin (tiny change)
git-version-gen: add --fallback option to use if git is not present
* build-aux/git-version-gen: Add support for the new option --fallback,
which comes into play when there is no $tarball_version_file and
git is not working.
(scriptversion): Update.
maint.mk: handle missing git with more grace
* top/maint.mk (no-submodule-changes, public-submodule-commit):
Quietly proceed if git is not present.
2012-12-31 Eric Blake
dup2: work around cygwin bug
* m4/dup2.m4 (gl_FUNC_DUP2): Flush out cygwin core dump.
* lib/dup2.c (rpl_dup2): Work around it.
* doc/posix-functions/dup2.texi (dup2): Document it.
2012-12-30 Paul Eggert
regex: remove unnecessary dependency on localcharset.h
* lib/regex_internal.h [!_LIBC]: Don't include localcharset.h;
hasn't been needed for years.
* modules/regex (Depends-on): Remove localcharset.
regex: revert single-byte change
* lib/regexec.c (check_node_accept_bytes): Revert previous change
to this function. This was alredy fixed in a different way, at
bdb56bacd57070eced9998569ffe3f3c37ef5964 in the glibc git; see
and
.
regex: simplify based on Gawk version
* lib/regex_internal.c (re_dfa_add_node): Simplify.
Reported by Aharon Robbins in
.
2012-12-29 Paul Eggert
regex: check that pattern char is single-byte
Reported by Aharon Robbins in
.
* lib/regexec.c (check_node_accept_bytes):
Return 0 if the pattern string has a multibyte character here.
regex: implement rational ranges
Reported by Aharon Robbins in
.
* lib/regcomp.c (build_range_exp) [!_LIBC]:
* lib/regexec.c (check_node_accept_bytes) [!_LIBC]:
Implement rational ranges.
regex: avoid redefining __wctype
Reported by Aharon Robbins in
.
* lib/regex_internal.h (__wctype, __iswctype) [!_LIBC]:
#undef before defining.
regex: port to hosts where malloc (0) == NULL
Reported by Aharon Robbins in
.
* lib/regex_internal.c (re_node_set_alloc):
Don't assume that malloc (0) yields nonnull.
* lib/regex_internal.h (MALLOC_0_IS_NONNULL): New macro.
* m4/regex.m4 (gl_PREREQ_REGEX): Require gl_EEMALLOC.
* modules/regex (Files): Add m4/eealloc.m4.
regex: port to C89
Reported by Aharon Robbins in
.
* lib/regcomp.c (init_word_char): Declaration before statement.
regex: merge glibc changes
Also, copy the license wording from glibc. This simplifies
merging changes. gnulib-tool will change the wording to GPL as
appropriate, when importing it to other packages. The only
glibc change made since the last merge, which needs merging, is:
2012-05-24 Andreas Schwab
* lib/regex_internal.h (gettext): Remove use of INTUSE.
* users.txt: Add Emacs.
doc: omit mention of version when not needed
* doc/gnulib-intro.texi (Portability and Application Code):
* doc/gnulib.texi (Brief Overview, Legacy Function Substitutes):
Don't mention particular dates or versions when not necessary, so
that the documentation won't go out of date so quickly.
* doc/intprops.texi (Integer Properties): Fix Texinfo typo.
2012-12-28 Akim Demaille
bootstrap: pass --force to autoreconf.
* build-aux/bootstrap (AUTORECONFFLAGS): New.
Add "--force" so that Automake's ylwrap and other such tools
be updated at each bootstrap invocation.
Use it.
2012-12-27 Paul Eggert
argp: fix port of port new 'inline' approach to Sun C 5.12 + Solaris 10
The earlier patch forgot to update one of the #if conditions, causing
a problem on Debian testing i386 reported by Mats Erik Andersson
.
* lib/argp-fmtstream.h (__argp_fmtstream_putc, argp_fmtstream_putc)
(__argp_fmtstream_puts, argp_fmtstream_puts)
(__argp_fmtstream_write, argp_fmtstream_write)
[!_LIBC && !__OPTIMIZE__]: Declare as ARGP_FS_EI, not as extern.
* doc/gnulib-readme.texi: Minor fixups.
(Portability guidelines): Modernize URLs. Remove some repetition.
(Indent with spaces not TABs): Reword to avoid too-long lines.
Remove some '@ifset standalone' stuff that isn't used.
* doc/gnulib-readme.texi (Portability guidelines):
ctype.h, not ctime.h.
Correct name of POSIX.1-2001.
* doc/posix-functions/fgetc.texi (fgetc):
* doc/posix-functions/fgets.texi (fgets):
* doc/posix-functions/fread.texi (fread):
* doc/posix-functions/fscanf.texi (fscanf):
* doc/posix-functions/getc.texi (getc):
* doc/posix-functions/getchar.texi (getchar):
* doc/posix-functions/scanf.texi (scanf):
POSIX.1-2001, not POSIX-2001.
doc: move README into manual
* README: Move contents to new file doc/gnulib-readme.texi.
Replace with a one-line summary.
* doc/gnulib.texi (Brief Overview): New section,
with old intro preface. Include gnulib-readme.texi for contents.
(Philosophy): Rename from "Introduction", since this
section no longer introduces the rest. Write a new preface.
* doc/gnulib-readme.texi: New file, with the old contents of
README texinfo-ized. This way, the README info appears
in the online and printed manual.
2012-12-25 Ben Pfaff
c-xvasprintf: Fix "implicit declaration of function" GCC warning.
* lib/c-xvasprintf.c: Add missing #include "c-vasprintf.h", for
c_vasprintf() prototype.
2012-12-24 Ben Pfaff
c-vasprintf: Fix "empty declaration" warning reported by GCC.
* lib/c-vasprintf.h: Remove stray semicolon.
2012-12-23 Paul Eggert
gettext: avoid obsolete macro AM_PROG_MKDIR_P
It is obsolete and is planned to be removed from Automake 1.14; see
.
* build-aux/po/Makefile.in.in (install-data, install-data-yes)
(installdirs-data, installdirs-data-yes):
Use $(MKDIR_P), not $(mkdir_p).
* m4/intl.m4 (AM_INTL_SUBDIR):
* m4/po.m4 (AM_PO_SUBDIRS):
Require AC_PROG_MKDIR_P, not AM_PROG_MKDIR_P.
2012-12-22 Paul Eggert
argp: port new 'inline' approach to Sun C 5.12 + Solaris 10
On this platform, we are not optimizing but we are using
the substitute for extern inlines, so compile as if
C99-style extern inline, or a substitute, is available.
* lib/argp-fmtstream.h (argp_fmtstream_set_lmargin)
(__argp_fmtstream_set_lmargin, argp_fmtstream_set_rmargin)
(__argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin)
(__argp_fmtstream_set_wmargin, argp_fmtstream_point)
(__argp_fmtstream_point) [!_LIBC && !__OPTIMIZE__]:
Declare as ARGP_FS_EI, not as extern.
* lib/argp.h (argp_usage, __argp_usage, _option_is_short)
(__option_is_short, _option_is_end, __option_is_end)
[!_LIBC && __USE_EXTERN_INLINES]:
Declare as ARGP_EI, not as extern.
2012-12-21 Paul Eggert
AC_PROG_MKDIR_P: port workaround to pre-2.62 Autoconf
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P, AC_C_RESTRICT):
Use m4_ifndef([AC_AUTOCONF_VERSION], ...), not
m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]),[2.62]),[-1],
...), as the latter is fatal with older Autoconfs.
Problem reported and fix suggested by Eric Blake in thread starting at
.
2012-12-20 Paul Eggert
AC_PROG_MKDIR_P: don't workaround if not buggy
* m4/gnulib-common.m4 (AC_PROG_MKDIR_P):
Define only for Autoconf versions before 2.62.
(AC_C_RESTRICT): Use documented AC_AUTOCONF_VERSION, not
undocumented m4_PACKAGE_VERSION, for consistency with the
abovementioned change to AC_PROG_MKDIR_P. This should suffice
since we're checking for 2.62 or later, and AC_AUTOCONF_VERSION
was introduced in 2.62.
2012-12-15 Ben Pfaff
New 'c-*printf' modules for formatted output in C locale.
New module 'c-vasnprintf'.
* modules/c-vasnprintf: New file.
* lib/c-vasnprintf.c: New file.
* lib/c-vasnprintf.h: New file.
New module 'c-snprintf'.
* modules/c-snprintf: New file.
* modules/c-snprintf-tests: New file.
* lib/c-snprintf.c: New file.
* lib/c-snprintf.h: New file.
* tests/test-c-snprintf.c: New file.
* tests/test-c-snprintf.sh: New file.
New module 'c-vsnprintf'.
* modules/c-vsnprintf: New file.
* modules/c-vsnprintf-tests: New file.
* lib/c-vsnprintf.c: New file.
* lib/c-vsnprintf.h: New file.
* tests/test-c-vsnprintf.c: New file.
* tests/test-c-vsnprintf.sh: New file.
New module 'c-vasprintf'.
* modules/c-vasprintf: New file.
* modules/c-vasprintf-tests: New file.
* lib/c-asprintf.c: New file.
* lib/c-vasprintf.c: New file.
* lib/c-vasprintf.h: New file.
* tests/test-c-vasprintf.c +: New file.
* tests/test-c-vasprintf.sh: New file.
New module 'c-xvasprintf'.
* modules/c-xvasprintf: New file.
* modules/c-xvasprintf-tests: New file.
* lib/c-xasprintf.c: New file.
* lib/c-xvasprintf.c: New file.
* lib/c-xvasprintf.h: New file.
* tests/test-c-xvasprintf.c: New file.
* tests/test-c-xvasprintf.sh: New file.
2012-12-18 Paul Eggert
argp: better 'inline'
Use extern-inline module to declare extern inline functions.
This avoids some bogus warning diagnostics. Problem discovered
when modifying GNU tar to use the manywarnings module.
* lib/argp.h, lib/argp-xinl.c (ARGP_EI) [!_LIBC]:
* lib/argp-fmtstream.h, lib/argp-fs-xinl.c (ARGP_FS_EI) [!_LIBC]:
Define based on extern-inline.
* modules/argp (Depends-on): Add extern-inline.
2012-12-17 Paul Eggert
filemode, sys_stat: Handle MPX files a la AIX.
* lib/filemode.c (ftypelet): Report 'm' for MPX files.
* lib/sys_stat.in.h (S_ISMPX): New macro.
* tests/test-sys_stat.c: Add tests for MPX files.
2012-12-16 Alexandre Duret-Lutz
x-to-1: honor $PERL
* build-aux/x-to-1.in: Run $HELP2MAN via $PERL so that the user gets
a chance to use his preferred version of Perl. This is typically
required by Darwin users whose default /usr/bin/perl does not have all
the libraries required by help2man, and who need to use their MacPorts
installation of Perl instead.
2012-12-16 Akim Demaille
gnu-web-doc-update: add all the new files, even in new directories
See http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00057.html
* build-aux/gnu-web-doc-update (--dry-run, $dryrun): New.
Use it.
(main): Don't use cvsutils to get the list of unknown files,
just add all the existing files and directories.
2012-12-16 Akim Demaille
gnu-web-doc-update: improve --help
* build-aux/gnu-web-doc-update: Move comments into --help.
2012-12-07 Eric Wong
mountlist: recognize more "dummy" file systems
* lib/mountlist.c (ME_DUMMY_0):
Add these dummy FS names to the list:
- "debugfs" virtual filesystem for kernel debugging
- "devpts" PTY slave filesystem
- "devtmpfs" device filesystem on top of tmpfs/ramfs
- "fusectl" control filesystem for FUSE
- "mqueue" enumerates POSIX message queues
- "rpc_pipefs" kernel <-> userspace bridge for NFS
- "sysfs" is for exporting kernel objects
- "devfs" device filesystem for Linux 2.4 and FreeBSD
2012-12-11 Paul Eggert
extern-inline: avoid incompatibility with Darwin Libc
* m4/extern-inline.m4 (_GL_INLINE, _GL_EXTERN_INLINE): Do not use
extern inline if __APPLE__. Use _GL_UNUSED in the non-inline branch.
Problem reported by Akim Demaille in
.
2012-12-11 Simon Josefsson
gnupload: Work with GnuPG using gpg-agent (for smartcards).
* build-aux/gnupload: If GnuPG is configured to use gpg-agent,
let it handle password prompting.
2012-12-10 Eli Zaretskii
canonicalize, canonicalize-lgpl: Microsoft Windows prefix fixes
* lib/canonicalize.c (canonicalize_filename_mode):
* lib/canonicalize-lgpl.c (__realpath): Recompute prefix_len after
fetching the current directory. Don't overrun the beginning of
rpath if there's no slashes after the MS-Windows drive letter.
2012-12-08 Stefano Lattarini
maint.mk: avoid extra forks
* top/maint.mk (_cfg_mk): The GNU make manual documents that
"$(wildcard FILE)" expands to empty if FILE doesn't exist.
So use that instead of "$(shell test -f FILE && echo FILE)".
2012-12-07 Paul Eggert
vasnprintf: fix ASCII_ONLY typo
* lib/unistdio/u8-vasnprintf.c (FCHAR_T_ONLY_ASCII):
* lib/unistdio/u16-vasnprintf.c (FCHAR_T_ONLY_ASCII):
* lib/unistdio/u32-vasnprintf.c (FCHAR_T_ONLY_ASCII):
New macro, replacing ASCII_ONLY. This fixes a typo. See thread at
.
2012-12-05 Paul Eggert
list, oset, xlist, xoset: fix extern inline issue with C99
This was introduced by my recent changes for 'inline'.
Problem reported for gettext by Daiki Ueno in
.
* lib/gl_list.h (gl_list_nx_create_empty, gl_list_create)
(gl_list_nx_create, gl_list_size, gl_list_node_value)
(gl_list_node_set_value, gl_list_node_nx_set_value, gl_list_next_node)
(gl_list_previous_node, gl_list_get_at)
(gl_list_nx_set_at, gl_list_search, gl_list_search_from)
(gl_list_search_from_to, gl_list_indexof, gl_list_indexof_from)
(gl_list_indexof_from_to, gl_list_nx_add_first, gl_list_nx_add_last)
(gl_list_nx_add_before, gl_list_nx_add_after, gl_list_nx_add_at)
(gl_list_remove_node, gl_list_remove_at, gl_list_remove, gl_list_free)
(gl_list_iterator, gl_list_iterator_from_to, gl_list_iterator_next)
(gl_list_iterator_free, gl_sortedlist_search)
(gl_sortedlist_search_from_to, gl_sortedlist_indexof)
(gl_sortedlist_indexof_from_to, gl_sortedlist_add, gl_sortedlist_nx_add)
(gl_sortedlist_remove):
* lib/gl_oset.h (go_oset_nx_create_empty, gl_oset_size, gl_oset_search)
(gl_oset_search_atleast, gl_oset_nx_add, gl_oset_remove, gl_oset_free)
(gl_oset_iterator, gl_oset_iterator_next, gl_oset_iterator_free):
* lib/gl_xlist.h (gl_list_create_empty, gl_list_create)
(gl_list_node_set_value, gl_list_set_at, gl_list_add_first)
(gl_list_add_last, gl_list_add_before, gl_list_add_after)
(gl_list_add_at, gl_sortedlist_add):
* lib/gl_xoset.h (gl_oset_create_empty, gl_oset_add):
Wrap these extern decls inside "#if 0", because they are implemented
as inline functions, and extern inline is not what's wanted here.
It would simplify these .h files to remove the extern decls entirely,
although a downside would be less-clear separation between
specification and implementation.
2012-11-29 Paul Eggert
sys_stat: no 'static inline'
* lib/sys_stat.in.h (rpl_mkdir): Now static, not static inline.
* m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Do not require AC_C_INLINE.
extern-inline: no 'static inline'
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
Do not require AC_C_INLINE.
(_GL_INLINE, _GL_EXTERN_INLINE): Define as 'static', not as
'static inline', for older compilers.
snippet/warn-on-use: no 'static inline'
* build-aux/snippet/warn-on-use.h:
Remove unnecessary 'inline' in comment.
rbtree-list, rbtreehash-list: no 'static inline'
* lib/gl_anyrbtree_list2.h (rotate_left, rotate_right):
* lib/gl_anytree_list2.h (node_at):
* lib/gl_anytreehash_list1.h (hash_resize_after_add)
(gl_oset_first, add_nodes_to_buckets):
Now static, not static inline.
regex: no 'static inline'
* lib/regex_internal.c (calc_state_hash):
* lib/regex_internal.h (bitset_set, bitset_clear, bitset_contain)
(bitset_empty, bitset_set_all, bitset_copy, bitset_not, bitset_merge)
(bitset_mask, re_string_char_size_at, re_string_wchar_at):
Now static, not static inline.
(inline) [__GNUC__ < 3 && _LIBC]:
Remove macro; no longer needed.
xvasprintf: no 'static inline'
* lib/xvasprintf.c (xstrcat):
Now static, not static inline.
* m4/xvasprintf.m4 (gl_XVASPRINTF):
Do not require AC_C_INLINE.
parse-datetime, parse-duration: no 'static inline'
* lib/parse-datetime.y (to_uchar):
* lib/parse-duration.c (str_const_to_ul, str_const_to_l)
(scale_n_add):
Now static, not static inline.
* m4/parse-datetime.m4 (gl_PARSE_DATETIME):
* modules/parse-duration (configure.ac):
Do not require AC_C_INLINE.
getaddrinfo: no 'static inline'
* lib/getaddrinfo.c (validate_family):
Now static, not static inline.
* m4/getaddrinfo.m4 (gl_PREREQ_GETADDRINFO):
Do not require AC_C_INLINE.
ftruncate, fts, lstat, openat, raise: no 'static inline'
* lib/ftruncate.c (chsize_nothrow):
* lib/fts.c (opendirat, diropen):
* lib/lstat.c (orig_lstat):
* lib/openat.c (orig_openat):
* lib/raise.c (raise_nothrow):
Now static, not static inline.
* m4/ftruncate.m4 (gl_PREREQ_FTRUNCATE):
* m4/fts.m4 (gl_FUNC_FTS_CORE):
* m4/lstat.m4 (gl_PREREQ_LSTAT):
* m4/openat.m4 (gl_PREREQ_OPENAT):
* m4/raise.m4 (gl_PREREQ_RAISE):
Do not require AC_C_INLINE.
fflush, stat: no 'static inline'
* lib/fflush.c (clear_ungetc_buffer_preserving_position)
(clear_ungetc_buffer, disable_seek_optimization)
(restore_seek_optimization, update_fpos_cache):
* lib/stat.c (orig_stat):
Now static, not static inline.
* lib/fflush.c (disable_seek_optimization, restore_seek_optimization)
(update_fpos_cache):
Define only if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1).
* m4/fflush.m4 (gl_PREREQ_FFLUSH):
* m4/stat.m4 (gl_PREREQ_STAT):
Do not require AC_C_INLINE.
error, filevercmp: no 'static inline'
* lib/error.c (is_open, flush_stdout):
* lib/filevercmp.c (order):
Now static, not static inline.
* m4/error.m4 (gl_PREREQ_ERROR):
* modules/filevercmp (configure.ac):
Do not require AC_C_INLINE.
dup, execute, fatal-signal, etc.: no 'static inline'
* lib/dup.c (dup_nothrow):
* lib/execute.c (nonintr_close, nonintr_open):
* lib/fatal-signal.c (uninstall_handlers, install_handlers):
* lib/fopen.c (orig_fopen):
* lib/freadseek.c (freadptrinc):
* lib/freopen.c (orig_freopen):
* lib/fstat.c (orig_fstat, fstat_nothrow):
* lib/get-rusage-as.c (get_rusage_as_via_setrlimit)
(get_rusage_as_via_iterator):
* lib/get-rusage-data.c (get_rusage_data_via_setrlimit):
* lib/getdtablesize.c (_setmaxstdio_nothrow):
* lib/isatty.c (_isatty_nothrow):
* lib/open.c (orig_open):
* lib/read.c (read_nothrow):
* lib/sigprocmask.c (signal_nothrow):
* lib/spawn-pipe.c (nonintr_close, nonintr_open):
* lib/vasnprintf.c (MAX_ROOM_NEEDED):
* lib/wait-process.c (unregister_slave_subprocess):
* lib/write.c (write_nothrow):
Now static, not static inline.
* lib/spawn-pipe.c (nonintr_open): Define only if
(defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__.
* m4/dup.m4 (gl_PREREQ_DUP):
* m4/execute.m4 (gl_EXECUTE):
* m4/fatal-signal.m4 (gl_FATAL_SIGNAL):
* m4/fopen.m4 (gl_PREREQ_FOPEN):
* m4/freadseek.m4 (gl_FUNC_FREADSEEK):
* m4/freopen.m4 (gl_PREREQ_FREOPEN):
* m4/fstat.m4 (gl_PREREQ_FSTAT):
* m4/getdtablesize.m4 (gl_PREREQ_GETDTABLESIZE):
* m4/isatty.m4 (gl_PREREQ_ISATTY):
* m4/open.m4 (gl_PREREQ_OPEN):
* m4/read.m4 (gl_PREREQ_READ):
* m4/signalblocking.m4 (gl_PREREQ_SIGPROCMASK):
* m4/spawn-pipe.m4 (gl_SPAWN_PIPE):
* m4/vasnprintf.m4 (gl_PREREQ_VASNPRINTF):
* m4/wait-process.m4 (gl_WAIT_PROCESS):
* m4/write.m4 (gl_PREREQ_WRITE):
* modules/get-rusage-as, modules/get-rusage-data (configure.ac):
Do not require AC_C_INLINE.
c-strtod, memcoll, readutmp: no 'static inline'
* lib/c-strtod.c (c_locale):
* lib/memcoll.c (strcoll_loop):
* lib/readutmp.c (desirable_utmp_entry):
Now static, not static inline.
* m4/c-strtod.m4 (gl_C_STRTOD, gl_C_STRTOLD):
* m4/memcoll.m4 (gl_MEMCOLL):
* m4/readutmp.m4 (gl_READUTMP):
Do not require AC_C_INLINE.
arctwo, md4, md5, sha1, sha256, sha512: no 'static inline'
* lib/arctwo.c (to_uchar):
* lib/md4.c (set_uint32):
* lib/md5.c (set_uint32):
* lib/sha1.c (set_uint32):
* lib/sha256.c (set_uint32):
* lib/sha512.c (set_uint64):
Now static, not static inline. This is a bit simpler, and doesn't
affect performance with GCC and default optimization.
* m4/arctwo.m4 (gl_ARCTWO):
* m4/md4.m4 (gl_MD4):
* m4/md5.m4 (gl_MD5):
* m4/sha1.m4 (gl_SHA1):
* m4/sha256.m4 (gl_SHA256):
* m4/sha512.m4 (gl_SHA512):
Do not require AC_C_INLINE.
cond, lock, thread: better 'inline'
* lib/glthread/cond.c, lib/glthread/cond.h (_GLTHREAD_COND_INLINE):
* lib/glthread/thread.c, lib/glthread/thread.h (_GLTHREAD_THREAD_INLINE):
New macros. Use them instead of static inline, for header functions.
* lib/glthread/cond.c (gl_waitqueue_init, gl_waitqueue_remove)
(gl_waitqueue_notify_first, gl_waitqueue_notify_all):
* lib/glthread/lock.c (gl_waitqueue_init)
(gl_waitqueue_notify_first, gl_waitqueue_notify_all):
* lib/glthread/thread.c (get_current_thread_handle):
Change 'static inline' to 'inline'.
* lib/glthread/cond.h, lib/glthread/thread.h:
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/cond.m4 (gl_COND):
* m4/lock.m4 (gl_PREREQ_LOCK):
* m4/thread.m4 (gl_THREAD):
Do not require AC_C_INLINE.
* modules/cond, modules/thread (Depends-on): Add extern-inline.
chdir-long, cycle-check, savewd: better 'inline'
* lib/chdir-long.c (cdb_init, cdb_fchdir, cdb_free)
(find_non_slash):
* lib/cycle-check.c (is_zero_or_power_of_two):
* lib/savewd.c (savewd_delegating):
Change 'static inline' to 'inline'.
* lib/savewd.c, lib/savewd.h (SAVEWD_INLINE): New macro.
Replace all remaining uses of 'static inline' with it.
* lib/savewd.h:
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/chdir-long.m4 (gl_PREREQ_CHDIR_LONG):
* m4/cycle-check.m4 (gl_CYCLE_CHECK):
* m4/savewd.m4 (gl_SAVEWD):
Do not require AC_C_INLINE.
* modules/savewd (Depends-on): Add extern-inline.
base32, base64: no need for 'inline'
* lib/base32.c (to_uchar, get_8, decode_8):
* lib/base64.c (to_uchar, get_4, decode_4):
Change 'static inline' to 'inline'.
* m4/base32.m4 (gl_PREREQ_BASE32):
* m4/base64.m4 (gl_PREREQ_BASE64):
Do not require AC_C_INLINE.
array-oset, linkedhash-list, rbtree-oset: no need for 'inline'
* lib/gl_array_oset.c (gl_array_nx_add_at):
(gl_array_remove_at):
* lib/gl_linkedhash_list.c (hash_resize_after_add)
(add_to_bucket, remove_from_bucket):
* lib/gl_rbtree_oset.c (rotate_left, rotate_right):
Change 'static inline' to 'static', as it's simpler to omit
'inline' unless there's a significant performance advantage.
list, oset, xlist, xoset, xsublist: simplify via extern inline
* lib/gl_list.h, lib/gl_list.c (GL_LIST_INLINE):
* lib/gl_oset.c, lib/gl_oset.h (GL_OSET_INLINE):
* lib/gl_xlist.c, lib/gl_xlist.h (GL_XLIST_INLINE):
* lib/gl_xoset.c, lib/gl_xoset.h (GL_XOSET_INLINE):
* lib/gl_xsublist.c, lib/gl_xsublist.h (GL_XSUBLIST_INLINE):
New macro. Replace all uses of 'static inline' with it.
[HAVE_INLINE]: Implement functions as *_INLINE functions,
instead of as macros FOO that are defined to static inline
functions FOO_inline.
* lib/gl_list.c, lib/gl_oset.c, lib/gl_xlist.c, lib/gl_xoset.c:
* lib/gl_xsublist.c:
Reimplement from scratch, by defining the corresponding *_INLINE
macro and including the corresponding .h file. This is simpler.
* modules/list, modules/oset, modules/xlist, modules/xoset:
(Files): Remove m4/gl_list.m4.
(configure.ac): Remove gl_LIST.
* m4/gl_list.m4: Remove.
* modules/list, modules/oset, modules/xlist, modules/xoset:
* modules/xsublist:
(Depends-on): Depend on extern-inline, not inline.
xalloc: better 'inline'
* lib/xmalloc.c, lib/xalloc.h (XALLOC_INLINE):
New macro. Replace all uses of 'static inline' with it.
(static_inline): Remove.
* lib/xalloc.h (xnmalloc, xnrealloc, x2nrealloc, xcharalloc):
Let 'extern inline' do the work automatically, instead of doing
it by hand.
* m4/xalloc.m4 (gl_PREREQ_XALLOC, gl_PREREQ_XMALLOC):
Remove. All uses removed.
* modules/xalloc (Depends-on): Remove 'inline'. Add 'extern-inline'.
gethrxtime: better 'inline'
* lib/xtime.c: New file.
* lib/gethrxtime.c, lib/gethrxtime.h (GETHRXTIME_INLINE):
* lib/xtime.h (XTIME_INCLUDE):
New macros. Replace all uses of 'static inline' with them.
* lib/gethrxtime.c (gethrxtime): Define only if
! (HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME), since
this source file is now always compiled, because of the extern inline.
* lib/gethrxtime.h, lib/xtime.h:
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/gethrxtime.m4 (gl_GETHRXTIME): Do not check for clock macros
if gethrtime works, as they're not needed in that case.
(gl_XTIME): Do not require AC_C_INLINE.
(gl_PREREQ_GETHRXTIME): Remove; all uses removed, as it's always
compiled now. Move the check into gl_GETHRXTIME.
* modules/gethrxtime (Files, lib_SOURCES): Add lib/xtime.c.
(Depends-on): Add extern-inline.
(configure.ac): gethrxtime is always compiled now.
(lib_SOURCES): Add gethrxtime.c.
wctype-h: better 'inline'
* lib/wctype-h.c: New file.
* lib/wctype.in.h (_GL_WCTYPE_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/wctype_h.m4 (gl_WCTYPE_H): Do not require AC_C_INLINE.
* modules/wctype-h (Files, lib_SOURCES): Add lib/wctype-h.c.
(Depends-on): Add extern-inline.
unistd: better 'inline'
* lib/unistd.c: New file.
* lib/unistd.in.h (_GL_UNISTD_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/unistd_h.m4 (gl_UNISTD_H): Do not require AC_C_INLINE.
* modules/unistd (Files, lib_SOURCES): Add lib/unistd.c.
(Depends-on): Add extern-inline.
sys_socket: better 'inline'
* lib/sys_socket.c: New file.
* lib/sys_socket.in.h (_GL_SYS_SOCKET_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Do not require AC_C_INLINE.
* modules/sys_socket (Files, lib_SOURCES): Add lib/sys_socket.c.
(Depends-on): Add extern-inline.
stdio: better 'inline'
* lib/stdio.c: New file.
* lib/stdio.in.h (_GL_STDIO_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/stdio_h.m4 (gl_STDIO_H): Do not require AC_C_INLINE.
* modules/stdio (Files, lib_SOURCES): Add lib/stdio.c.
(Depends-on): Add extern-inline.
sigaction: better 'inline'
* lib/sig-handler.c: New file.
* lib/sig-handler.h (SIG_HANDLER_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): Do not require AC_C_INLINE.
* modules/sigaction (Files, lib_SOURCES): Add lib/sig-handler.c.
(Depends-on): Add extern-inline.
selinux-h: better 'inline'
* lib/se-context.c, lib/se-selinux.c: New files.
* lib/getfilecon.c (map_to_failure): Omit 'inline' for static function.
* lib/se-context.in.h (SE_CONTEXT_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* lib/se-selinux.in.h (SE_SELINUX_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/selinux-h (Files, lib_SOURCES):
Add lib/se-context.c, lib/se-selinux.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
pthread: better 'inline'
* lib/pthread.c: New file.
* lib/pthread.in.h (_GL_PTHREAD_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/pthread.m4 (gl_PTHREAD_CHECK):
Add AC_LIBOBJ([pthread]). Do not require AC_C_INLINE.
* modules/pthread (Files): Add lib/pthread.c.
(Depends-on): Add extern-inline.
math: better 'inline'
* lib/math.c: New file.
* lib/math.in.h (_GL_MATH_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/math_h.m4 (gl_MATH_H):
Do not require AC_C_INLINE.
* modules/math (Files, lib_SOURCES):
Add lib/math.c.
(Depends-on): Add extern-inline.
count-one-bits: better 'inline'
* lib/count-one-bits.c: New file.
* lib/count-one-bits.h (COUNT_ONE_BITS_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/count-one-bits.m4 (gl_COUNT_ONE_BITS):
Do not require AC_C_INLINE.
* modules/count-one-bits (Files, lib_SOURCES):
Add lib/count-one-bits.c.
(Depends-on): Add extern-inline.
count-leading-zeros: better 'inline'
* lib/count-leading-zeros.c: New file.
* lib/count-leading-zeros.h (COUNT_LEADING_ZEROS_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/count-leading-zeros.m4 (gl_COUNT_LEADING_ZEROS):
Do not require AC_C_INLINE.
* modules/count-leading-zeros (Files, lib_SOURCES):
Add lib/count-leading-zeros.c.
(Depends-on): Add extern-inline.
bitrotate: better 'inline'
* lib/bitrotate.c: New file.
* lib/bitrotate.h (BITROTATE_INLINE):
New macros.
Replace all uses of 'static inline' with them.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* modules/bitrotate (Files, lib_SOURCES): Add lib/bitrotate.c.
(Depends-on): Add extern-inline.
(configure.ac): Do not require AC_C_INLINE.
2012-11-20 Theophile Ranquet
maint.mk: avoid gratuitous failure
Reported by Stefano Lattarini in
* top/maint.mk (public-submodule-commit): Quote more safely.
2012-11-20 Eli Zaretskii
canonicalize, canonicalize-lgpl: support MS-Windows file names
See
for test cases, which it'd be nice to add at some point.
* lib/canonicalize.c, lib/canonicalize-lgpl.c: Include dosname.h.
* lib/canonicalize.c (canonicalize_filename_mode):
* lib/canonicalize-lgpl.c (__realpath):
Use FILE_SYSTEM_PREFIX_LEN instead of assuming that the first
slash is at the beginning of the file name. Use ISSLASH, instead
of a literal '/'. Use IS_ABSOLUTE_FILE_NAME instead of comparing
the first character with '/'. Test for
DOUBLE_SLASH_IS_DISTINCT_ROOT only if the file name does not begin
with a drive letter.
* lib/canonicalize.c (SLASHES): New macro.
(canonicalize_filename_mode): Use SLASHES instead of a literal "/".
2012-11-17 Dmitry V. Levin
fts: introduce FTS_VERBATIM
* lib/fts_.h (FTS_VERBATIM): New bit flag.
(FTS_OPTIONMASK, FTS_NAMEONLY, FTS_STOP): Adjust.
* lib/fts.c (fts_open): Honor it.
2012-11-09 Pádraig Brady
getlogin-tests: allow errno == ENXIO
* tests/test-getlogin.c (main): Skip tests if getlogin fails
with errno == ENXIO (No controlling tty).
getlogin_r-tests: Likewise. Also allow errno == ENOENT
* tests/test-getlogin_r.c (main): Skip tests if getlogin_r fails
with errno == ENOENT. This was reported to happen in various
situations on GNU/Linux.
2012-11-09 Paul Eggert
getlogin-tests: allow errno == ENOENT
* tests/test-getlogin.c (main): Skip tests if getlogin fails
with errno == ENOENT. This happened to me on Ubuntu 12.04.1 x86,
when running a test in an Emacs shell buffer.
2012-11-08 Jim Meyering
tests/nap.h: avoid warning about unused variable
* tests/nap.h (nap_works): Remove now-unused declaration of "result".
prefix-gnulib-mk: avoid overzealous "lib/"-prefix addition
* build-aux/prefix-gnulib-mk (prefix): Tighten a regexp to require
white space before each of the special-cased file names, to avoid
adding "lib/" after $(libdir)/. Reported by Matias A. fonzo
in http://bugs.gnu.org/12830.
2012-11-08 Paul Eggert
fcntl-h: default O_SEARCH, O_EXEC back to O_RDONLY
O_PATH doesn't work with Linux kernel 3.6.5, as fchmod (fd, ...)
fails with errno == EBADF when fd is opened with O_PATH.
Reported by Jim Meyering in
.
* doc/posix-headers/fcntl.texi (fcntl.h): Document this.
* lib/fcntl.in.h (O_EXEC, O_SEARCH) [O_PATH]: Default back to O_RDONLY.
2012-11-07 Paul Eggert
test-utimens: speed up by taking shorter naps
* tests/nap.h (lt_mtime, get_mtime, nap_works, guess_delay):
New functions.
(nap): Use them, to do a better job of guessing the delay.
On Fedora 17 with ext4 atop md atop hard disks, this made
test-utimens run 10x faster, because the test napped for
1 ms at a time rather than 20 ms. Reported by Stefano Lattarini in
.
2012-11-07 Jim Meyering
mountlist.c: fix a compilation failure
* lib/mountlist.c (read_file_system_list): Fix a compilation failure
I introduced while transforming commit v0.0-7683-g613bcb6
2012-11-05 Paul Eggert
errno: port to LynxOS 178 2.2.2
Problem reported by Joel Brobecker in