| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
* lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L
instead of MB_CUR_MAX.
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in my setup for ttfautohint (http://repo.or.cz/w/ttfautohint.git) I
have the following assignment in `bootstrap.conf':
build_aux=gnulib
It seems that the patch below is necessary to make this really work
(at least it works for me): if I understand the issue correctly,
$build_aux is a *destination* variable, so it must not be used for the
files listed in $gnulib_extra_files which uses the directory structure
of the `gnulib' repository.
* build-aux/bootstrap (gnulib_extra_files): This variable is
relative to upstream gnulib layout, not downstream.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
| |
* lib/tmpdir.c (path_search) [__VMS]: Never add slash.
See Steven M. Schweda in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00026.html>.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
<http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00019.html>.
Do not remove trailing slash from "//".
Do not assume dlen <= INT_MAX.
|
|
|
|
|
|
| |
* lib/regex_internal.h (lock_fini, lock_lock): Rework to avoid
gcc warnings in the non-threaded case. Reported by Charlie Brown in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00015.html>.
|
|
|
|
|
|
|
|
|
|
|
| |
Problem reported for Emacs by Ken Brown in <http://bugs.gnu.org/14821>.
* 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.
|
|
|
|
|
|
|
|
| |
* lib/mountlist.c (free_mount_entry): A new exported function
to deallocate a mount list entry.
* lib/mountlist.h: Declare the new function.
(read_file_system_list): Refactor to use the new deallocation function.
Suggested by Anton Ovchinnikov.
|
|
|
|
|
|
|
|
|
| |
Problem reported by Ulrich Mueller in <http://bugs.gnu.org/14812>.
* 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 <stddef.h> defines it.
* m4/stdalign.m4 (gl_STDALIGN_H): Port to ICC and to C++11.
|
|
|
|
|
|
|
| |
* 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
<http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00009.html>.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getgrouplist is part of glibc and LGPLv2+; the mgetgroups module
is merely an ease-of-use wrapper around this interface. There's
nothing in the algorithm worth protecting by the more-restrictive
GPLv3+. See also this thread.
https://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00092.html
* modules/getugroups (License): Change from GPLv3+.
* modules/mgetgroups (License): Likewise.
* modules/getgroups (License): Change from LGPLv3+.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unlike the bulk of xalloc* which calls exit() on allocation failure,
and thus is unacceptable in a library, the xalloc-oversized.h header
is a mere macro that makes checks for allocation overflow possible in
all sorts of portable code. In fact, the LGPLv2+ module malloca
already has a copy of this check, arguing that this header is more
useful under a permissive license. See also this thread.
https://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00092.html
* modules/xalloc-oversized (License): Change from GPLv3+.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
| |
nproc merely exposes alternatives to sysconf(_SC_NPROCESSORS_CONF),
which is part of glibc and thus LGPLv2+; it is not adding any value
that strategically requires LGPLv3+. See also this thread.
https://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00105.html
* modules/nproc (License): Change from LGPLv3+.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Based on a report by Chandrashekar Shastri, at
https://bugzilla.redhat.com/show_bug.cgi?id=979360
The intent behind the original addition of --no-git in commit
824f8d16 was to allow builds on a machine that either has no
git, or where git is prevented from using the network; yet where
the user had other means of checking out the correct version of
gnulib (such as using an NFS share). But in practice, we were
still trying to use git, in spite of being told where gnulib-tool
already lives. This fixes bootstrap to match the original
intent, by avoiding all direct use of git or submodules (any
indirect use of git, such as by autopoint, is beyond our control;
but at least that use does not require network access). It is
still up to the end user to ensure that GNULIB_SRCDIR points
to the intended gnulib commit.
* build-aux/bootstrap: Don't even try to use git when user is
pointing to a static checkout.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
| |
|
|
|
|
|
|
|
| |
* lib/ignore-value.h (ignore_value):
Port to gcc -pedantic, by using __extension__.
Reindent as per usual gnulib style nowadays.
Simplify GCC version check.
|
|
|
|
|
| |
* m4/extern-inline.m4 (gl_EXTERN_INLINE):
Do not use __gnu_inline__ if pedantic and pre-C99.
|
|
|
|
|
|
|
| |
* 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/Makefile (NEWEST_GNULIB_TEXI_FILE): New macro.
(updated-stamp): Use it. This causes 'make' to output just
one file name rather than zillions.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
<http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00043.html>.
* 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.
|
|
|
|
|
|
| |
* lib/msvc-inval.c (gl_msvc_invalid_parameter_handler):
Use __cdecl, not cdecl, for mingw-w64. Reported by LRN in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00039.html>.
|
|
|
|
|
|
| |
* lib/getcwd-lgpl.c: Include <stdlib.h>, for malloc etc.
Problem reported by Steven M. Schweda in
<http://lists.gnu.org/archive/html/bug-gzip/2013-06/msg00010.html>.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem reported by Daiki Ueno in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00031.html>.
* 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 <limits.h>, for OPEN_MAX, if available.
(big_fd): New static function.
(main): Use it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Instead of calulating the nap() time once and using it (together with
a small correction multiplier), avoid the race alltogether by verifying
on a reference file whether a timestamp difference has happened.
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.
|
|
|
|
|
|
| |
* lib/sig2str.h (sig2str, str2sig): Declare as extern "C".
Reported by Daniel J Sebald in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-06/msg00000.html>.
|
|
|
|
|
|
|
|
|
|
|
| |
I'm not quite ready to implement a replacement <sys/un.h> that
automatically works around this problem, since making the replacement
work for mingw seems much harder; so for now I'm just documenting
the issue I hit.
* doc/posix-headers/sys_un.texi (sys/un.h): Mention problem.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On mingw, vasnprintf is able to use snprintf, but not its return
value; this led to a situation where gcc warns:
vasnprintf.c: In function 'vasnprintf':
vasnprintf.c:4609:21: error: variable 'has_width' set but not used [-Werror=unused-but-set-variable]
Rather than hacking through a bunch of #ifdefs, where some used both
variables and others only used one, I changed the lone use of just
'width' to also use 'has_width'.
* lib/vasnprintf.c (VASNPRINTF): Avoid unused variable warning.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of depending on pthread, adapt to whatever thread
modules are in use. Problem reported by Ludovic Courtès in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00082.html>
and by Mats Erik Andersson in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00100.html>.
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because I actually managed to hit deadlock in libvirt's child
process due to glibc's mutex use in user database lookup, I
figured it is worth documenting the issue for others to be
aware of when writing a privileged multithreaded parent app
that spawns child processes owned by non-privileged ids.
* 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.
Signed-off-by: Eric Blake <eblake@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
These tests abort on FAT file systems right after the test for
filtering out situation without ownership support; errno is EPERM
in such a case.
* tests/test-lchown.h (test_lchown): Add EPERM to the condition to
skip this test.
* tests/test-chown.h (test_chown): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem reported by Ludovic Courtès in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00058.html>.
* 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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]'.
|
|
|
|
| |
* lib/argmatch.h [__cplusplus]: Add extern "C".
|
|
|
|
| |
* lib/argp-help.c: Typo in comment.
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* tests/test-getaddrinfo.c (simple):
Avoid casts from looser to stricter-aligned pointers.
|
|
|
|
|
| |
* lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]:
Include <signal.h>, to pacify a warning about pthread_sigmask.
|