sig2str: port to C++
[gnulib.git] / ChangeLog
index fbd47fc..e8b9dfe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,140 @@
+2013-06-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       sig2str: port to C++
+       * 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>.
+
+2013-05-30  Eric Blake  <eblake@redhat.com>
+
+       docs: mention cygwin shortcoming in <sys/un.h>
+       * 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  <eggert@cs.ucla.edu>
+
+       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
+       <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.
+
+2013-05-22  Eric Blake  <eblake@redhat.com>
+
+       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 <mail@bernhard-voelker.de>
+
+       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  <eggert@cs.ucla.edu>
+
+       regex: fix dfa race in multithreaded uses
+       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 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  <eggert@cs.ucla.edu>
+
+       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  <adl@lrde.epita.fr>
+
+       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  <eggert@cs.ucla.edu>
 
+       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 <signal.h>, to pacify a warning about pthread_sigmask.