summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* regex: port to non-glibc/lock-using systemsJim Meyering2013-08-063-0/+14
| | | | | | | | | | | 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.
* update from texinfoKarl Berry2013-08-061-2/+4
|
* autoupdateKarl Berry2013-07-201-5/+7
|
* localecharset: make locale_charset thread-safe on Mac OS XDaiki Ueno2013-07-202-2/+13
| | | | | * lib/localcharset.c (locale_charset) [DARWIN7]: Use MB_CUR_MAX_L instead of MB_CUR_MAX.
* gettext: update to version 0.18.3Daiki Ueno2013-07-193-34/+13
| | | | | | * 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.
* autoupdateKarl Berry2013-07-192-38/+24
|
* bootstrap: use correct source when copying build-aux filesWerner LEMBERG2013-07-182-6/+12
| | | | | | | | | | | | | | | | | | 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>
* tmpdir: fix bug in VMS portPaul Eggert2013-07-172-3/+10
| | | | | | * 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>.
* tmpdir: fix typo in previous changePaul Eggert2013-07-151-1/+1
|
* * lib/tmpdir.c: Simplify code to add slash; no need for a loop.Paul Eggert2013-07-152-11/+7
|
* tmpdir: port to VMS, to // != /, and to long dirsPaul Eggert2013-07-152-6/+28
| | | | | | | | | | | * 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.
* regex: port to --with-included-regex --enable-gcc-warnings non-threadedPaul Eggert2013-07-092-2/+8
| | | | | | * 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>.
* accept4, dup3, pipe2: port to CygwinPaul Eggert2013-07-095-13/+21
| | | | | | | | | | | 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.
* mountlist: add support for deallocating returned list entriesPádraig Brady2013-07-093-5/+21
| | | | | | | | * 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.
* stdalign, verify: port to FreeBSD 9.1, to C11, and to C++11Paul Eggert2013-07-074-63/+101
| | | | | | | | | 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.
* fnmatch: don't goto over declarationPaul Eggert2013-07-062-2/+8
| | | | | | | * 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>.
* pipe2: decouple from binary-io a bitPaul Eggert2013-07-063-1/+12
| | | | | | 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.
* mgetgroups: relax license to LGPLv2+Eric Blake2013-07-034-3/+8
| | | | | | | | | | | | | | 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>
* xalloc-oversized: relax license to LGPLv2+Eric Blake2013-07-032-1/+4
| | | | | | | | | | | | | | 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: relax license to LGPLv2+Eric Blake2013-07-032-1/+4
| | | | | | | | | | | 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>
* bootstrap: honor --no-gitEric Blake2013-07-032-7/+20
| | | | | | | | | | | | | | | | | | | | | | | 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>
* update from texinfoKarl Berry2013-06-231-9/+29
|
* ignore-value: port to gcc -pedanticPaul Eggert2013-06-232-6/+15
| | | | | | | * lib/ignore-value.h (ignore_value): Port to gcc -pedantic, by using __extension__. Reindent as per usual gnulib style nowadays. Simplify GCC version check.
* extern-inline: port to gcc -std=c89Paul Eggert2013-06-212-1/+8
| | | | | * m4/extern-inline.m4 (gl_EXTERN_INLINE): Do not use __gnu_inline__ if pedantic and pre-C99.
* doc: document extern-inlinePaul Eggert2013-06-184-9/+110
| | | | | | | * 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 lessPaul Eggert2013-06-182-1/+7
| | | | | | * 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-compilesPaul Eggert2013-06-185-10/+42
| | | | | | | | | | | | | | | | | | * 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.
* msvc-inval: port to mingw-w64Paul Eggert2013-06-152-3/+10
| | | | | | * 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>.
* getcwd-lgpl: port to Tru64Paul Eggert2013-06-112-0/+6
| | | | | | * 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>.
* autoupdateKarl Berry2013-06-111-1/+1
|
* tests: port large-fd POSIX spawn tests to OS XPaul Eggert2013-06-114-4/+62
| | | | | | | | | | | 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.
* autoupdateKarl Berry2013-06-072-1/+8
|
* tests/nap.h: use an adaptive delay to avoid ctime update issuesBernhard Voelker2013-06-052-61/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* sig2str: port to C++Paul Eggert2013-06-022-0/+15
| | | | | | * 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>.
* docs: mention cygwin shortcoming in <sys/un.h>Eric Blake2013-05-302-0/+7
| | | | | | | | | | | 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>
* vasnprintf: silence mingw compiler warningEric Blake2013-05-302-1/+7
| | | | | | | | | | | | | | | | 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>
* c-ctype, regex, verify: port to gcc -std=c90 -pedanticPaul Eggert2013-05-295-4/+33
| | | | | | | | | | | | 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 pthreadPaul Eggert2013-05-296-15/+41
| | | | | | | | | | | | | | | 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.
* getgroups: document portability issuesEric Blake2013-05-226-0/+31
| | | | | | | | | | | | | | | | | | | 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>
* test-lchown, test-chown: also skip test if lchown/chown fails with EPERMBernhard Voelker2013-05-223-4/+11
| | | | | | | | | | 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.
* regex: fix dfa race in multithreaded usesPaul Eggert2013-05-195-13/+45
| | | | | | | | | | | | | | | | | | | | 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.
* malloca: port to compilers that reject size-zero arraysPaul Eggert2013-05-192-7/+24
| | | | | | | | | | 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.
* parse-datetime, tests: don't use "string" + intPaul Eggert2013-05-189-8/+26
| | | | | | | | | | | | | | | | | 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]'.
* argmatch: port to C++Alexandre Duret-Lutz2013-05-172-0/+11
| | | | * lib/argmatch.h [__cplusplus]: Add extern "C".
* argp: typo fixAlexandre Duret-Lutz2013-05-172-1/+6
| | | | * lib/argp-help.c: Typo in comment.
* autoupdateKarl Berry2013-05-161-65/+73
|
* manywarnings: update for GCC 4.8.0Paul Eggert2013-05-152-4/+10
| | | | | | | | | * 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 clangPaul Eggert2013-05-154-5/+11
| | | | | | | * 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 clangPaul Eggert2013-05-152-2/+7
| | | | | * tests/test-getaddrinfo.c (simple): Avoid casts from looser to stricter-aligned pointers.
* thread: port --enable-gcc-warnings to clangPaul Eggert2013-05-152-0/+10
| | | | | * lib/glthread/thread.h [__clang__ && USE_POSIX_THREADS_WEAK]: Include <signal.h>, to pacify a warning about pthread_sigmask.