Bruno Haible [Sat, 23 Jul 2011 01:24:19 +0000 (03:24 +0200)]
sys_select tests: Check the signature of FD_*.
* tests/test-select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): Move
signature tests from here...
* tests/test-sys_select.c (FD_CLR, FD_ISSET, FD_SET, FD_ZERO): ... to
here.
* modules/sys_select-tests (Files): Add tests/signature.h.
Paul Eggert [Fri, 22 Jul 2011 22:06:36 +0000 (15:06 -0700)]
largefile: new module, replacing large-inode
Pádraig Brady suggested this in <http://debbugs.gnu.org/9140#20>.
* MODULES.html.sh: Add largefile, remove large-inode.
* modules/largefile, m4/largefile.m4: New files.
* modules/large-inode, m4/large-inode.m4: Remove.
Paul Eggert [Fri, 22 Jul 2011 17:07:18 +0000 (10:07 -0700)]
fsusage: port to MacOS X 10.7 with 4 TiB file systems
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Reject statvfs
implementations that use only 32 bits to count blocks.
On typical hosts with 1024-byte blocks, this fails with file
systems as small as 4 TiB. Problem reported by Herb Wartens
<http://debbugs.gnu.org/9140> and this should also fix a similar
problem reported by Tim Spriggs <http://debbugs.gnu.org/7355>.
Paul Eggert [Fri, 22 Jul 2011 16:36:56 +0000 (09:36 -0700)]
large-inode: New module
* MODULES.html.sh: Add it.
* modules/large-inode, m4/large-inode.m4: New files.
Paul Eggert [Fri, 22 Jul 2011 16:26:38 +0000 (09:26 -0700)]
extensions: Enable extensions on MacOS X 10.5 and later.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _DARWIN_C_SOURCE.
Kamil Dudka [Fri, 22 Jul 2011 12:48:42 +0000 (14:48 +0200)]
file-has-acl: use acl_extended_file_nofollow if available
* lib/acl-internal.h (HAVE_ACL_EXTENDED_FILE): New macro.
(acl_extended_file): New macro.
* lib/file-has-acl.c (file_has_acl): Use acl_extended_file_nofollow.
* m4/acl.m4 (gl_FUNC_ACL): Check for acl_extended_file_nofollow.
This addresses http://bugzilla.redhat.com/692823.
Bruno Haible [Thu, 21 Jul 2011 22:16:46 +0000 (00:16 +0200)]
Declare system functions in a way that works with C++.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR) [C++]: In the test program,
declare fdopendir as extern "C".
* m4/frexpl.m4 (gl_FUNC_FREXPL_WORKS) [C++]: In the test program,
declare frexpl as extern "C".
* m4/getaddrinfo.m4 (gl_GETADDRINFO) [C++]: In the test program,
declare gai_strerror as extern "C".
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME) [C++]: In the test
programs, declare gai_strerror as extern "C".
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R) [C++]: In the test program,
declare getlogin_r as extern "C".
* m4/ioctl.m4 (gl_FUNC_IOCTL) [C++]: In the test program, declare ioctl
as extern "C".
* m4/ldexpl.m4 (gl_FUNC_LDEXPL_WORKS) [C++]: In the test program,
declare ldexpl as extern "C".
* m4/logb.m4 (gl_FUNC_LOGB) [C++]: In the test programs, declare logb
as extern "C".
* m4/ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS) [C++]: In the test
program, declare getmntinfo as extern "C".
* m4/stpncpy.m4 (gl_FUNC_STPNCPY) [C++]: In the test program, declare
stpncpy as extern "C".
* m4/strerror_r.m4 (gl_FUNC_STRERROR_R_WORKS) [C++]: In the test
program, declare __xpg_strerror_r as extern "C".
* m4/strndup.m4 (gl_FUNC_STRNDUP) [C++]: In the test program, declare
strndup as extern "C".
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT) [C++]: In the test program,
declare memset and bzero as extern "C".
Reported by Sam Steingold <sds@gnu.org>.
Jim Meyering [Tue, 12 Jul 2011 16:55:44 +0000 (18:55 +0200)]
maint.mk: prohibit inclusion of "verify.h" without use
* top/maint.mk (sc_prohibit_verify_without_use): New rule.
Pádraig Brady [Tue, 19 Jul 2011 20:51:49 +0000 (21:51 +0100)]
timer-time: A new module to check for timer_settime()
* m4/timer_time.m4: Check for the POSIX function.
* modules/timer-time: Add the new module.
* MODULES.html.sh (Compat checks for POSIX:2008 functions):
Mention it.
* doc/posix-functions/timer_create.texi: Add timer-time as
the module, and update the platforms where unavailable.
* doc/posix-functions/timer_delete.texi: Likewise.
* doc/posix-functions/timer_gettime.texi: Likewise.
* doc/posix-functions/timer_settime.texi: Likewise.
Signed-off-by: Pádraig Brady <P@draigBrady.com>
Paul Eggert [Wed, 20 Jul 2011 00:57:20 +0000 (02:57 +0200)]
pthread_sigmask: assume POSIX threads if --avoid=threadlib
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): If gl_THREADLIB is
not defined, assume POSIX threads and look for pthread_sigmask in
$LIBS, without changing $CPPFLAGS.
Bruno Haible [Tue, 19 Jul 2011 21:43:05 +0000 (23:43 +0200)]
strstr: Update cross-compilation guess.
* m4/strstr.m4 (gl_FUNC_STRSTR): On glibc > 2.12 with x86 or x86_64
CPUs, guess no, in view of glibc
BZ #12100 <http://sourceware.org/bugzilla/show_bug.cgi?id=12100>.
Suggested by Eric Blake. Reported by Reuben Thomas.
Pádraig Brady [Tue, 19 Jul 2011 16:22:49 +0000 (17:22 +0100)]
getopt-gnu: suppress core dumps from detection code
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADERS): Use the nocrash module
to suppress core dumps that may well occur on glibc systems.
These core dumps might not be cleaned up automatically, or could
trigger some system core dump handling logic.
* modules/getopt-gnu: Depend on nocrash.
Signed-off-by: Pádraig Brady <P@draigBrady.com>
Paul Eggert [Sat, 16 Jul 2011 09:01:17 +0000 (02:01 -0700)]
pthread_sigmask: ensure usleep is declared
* lib/pthread_sigmask.c [PTHREAD_SIGMASK_UNBLOCK_BUG]:
Include <unistd.h>, to declare usleep. Needed on Solaris 8,
Paul Eggert [Sat, 16 Jul 2011 01:27:51 +0000 (18:27 -0700)]
doc: Document NonStop portability issues.
* doc/posix-functions/sigaction.texi (sigaction):
* doc/posix-headers/signal.texi (signal.h):
Document NonStop. See Joachim Schmitz in
http://lists.gnu.org/archive/html/bug-coreutils/2011-07/msg00062.html
Bruno Haible [Sat, 16 Jul 2011 00:51:48 +0000 (02:51 +0200)]
ffsl, ffsll: Avoid unportable behaviour.
* lib/ffsl.h (FUNC): Use 'unsigned int' instead of 'int'.
Bruno Haible [Sat, 16 Jul 2011 00:36:07 +0000 (02:36 +0200)]
ffs: More tests.
* tests/test-ffs.c (NBITS): New macro.
(main): Add more tests.
* tests/test-ffsl.c (NBITS): New macro.
(main): Add more tests.
* tests/test-ffsll.c (NBITS): New macro.
(main): Add more tests.
Eric Blake [Fri, 15 Jul 2011 21:08:34 +0000 (15:08 -0600)]
ffsl, ffsll: new modules
* modules/ffsl: New file.
* modules/ffsll: Likewise.
* m4/ffsl.m4: Likewise.
* m4/ffsll.m4: Likewise.
* lib/ffsl.c: Likewise.
* lib/ffsl.h: Likewise.
* lib/ffsll.c: Likewise.
* m4/string_h.m4 (gl_HEADER_STRING_H_BODY)
(gl_HEADER_STRING_H_DEFAULTS): Add defaults.
* modules/string (Makefile.am): Substitute witnesses.
* lib/strings.in.h (ffsl, ffsll): Declare.
* modules/ffsl-tests: New test file.
* modules/ffsll-tests: Likewise.
* tests/test-ffsl.c: Likewise.
* tests/test-ffsll.c: Likewise.
* MODULES.html.sh (Integer arithmetic functions): Mention it.
* doc/glibc-functions/ffsl.texi (ffsl): Likewise.
* doc/glibc-functions/ffsll.texi (ffsll): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 15 Jul 2011 20:44:12 +0000 (14:44 -0600)]
ffs: fix m4 prerequisite
* m4/ffs.m4 (gl_FUNC_FFS): Require strings.h defaults.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 15 Jul 2011 20:26:43 +0000 (14:26 -0600)]
ffs: avoid undefined behavior
* lib/ffs.c (ffs): Provide fallback for non-32-bit int.
* tests/test-ffs.c (naive, main): Avoid signed shifts.
Reported by Bruno Haible.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Tue, 12 Jul 2011 12:02:11 +0000 (14:02 +0200)]
pthread_sigmask: Rely on module 'threadlib'.
* modules/pthread_sigmask (Depends-on): Add threadlib.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Assume gl_THREADLIB
is defined.
Bruno Haible [Tue, 12 Jul 2011 10:23:23 +0000 (12:23 +0200)]
regex: Depend on module 'strcase'.
* modules/regex (Depends-on): Add strcase, for strcasecmp().
Jim Meyering [Tue, 12 Jul 2011 10:34:42 +0000 (12:34 +0200)]
warn-on-use: fix typo in file name
* modules/snippet/warn-on-use (Files): Correct file name:
include /snippet/ component in "build-aux/snippet/warn-on-use.h".
Bruno Haible [Tue, 12 Jul 2011 10:21:46 +0000 (12:21 +0200)]
strings: Document module.
* doc/posix-headers/strings.texi: Mention module 'strings'.
Bruno Haible [Tue, 12 Jul 2011 09:56:28 +0000 (11:56 +0200)]
Rename module '_Noreturn' to 'snippet/_Noreturn'.
* modules/snippet/_Noreturn: Renamed from modules/_Noreturn.
(Files, Makefile.am): Update.
* build-aux/snippet/_Noreturn.h: Renamed from build-aux/_Noreturn.h.
* modules/stdlib (Depends-on): Update.
Bruno Haible [Tue, 12 Jul 2011 09:52:23 +0000 (11:52 +0200)]
Mention the changes.
* NEWS: Mention the changes.
Bruno Haible [Tue, 12 Jul 2011 09:44:55 +0000 (11:44 +0200)]
Rename module 'warn-on-use' to 'snippet/warn-on-use'.
* modules/snippet/warn-on-use: Renamed from modules/warn-on-use.
(Files, Makefile.am): Update.
* build-aux/snippet/warn-on-use.h: Renamed from build-aux/warn-on-use.h.
* modules/arpa_inet (Depends-on): Update.
* modules/ctype (Depends-on): Update.
* modules/dirent (Depends-on): Update.
* modules/fcntl-h (Depends-on): Update.
* modules/glob (Depends-on): Update.
* modules/iconv-h (Depends-on): Update.
* modules/inttypes-incomplete (Depends-on): Update.
* modules/langinfo (Depends-on): Update.
* modules/locale (Depends-on): Update.
* modules/math (Depends-on): Update.
* modules/netdb (Depends-on): Update.
* modules/poll-h (Depends-on): Update.
* modules/pty (Depends-on): Update.
* modules/search (Depends-on): Update.
* modules/signal (Depends-on): Update.
* modules/spawn (Depends-on): Update.
* modules/stdio (Depends-on): Update.
* modules/stdlib (Depends-on): Update.
* modules/string (Depends-on): Update.
* modules/strings (Depends-on): Update.
* modules/sys_file (Depends-on): Update.
* modules/sys_ioctl (Depends-on): Update.
* modules/sys_select (Depends-on): Update.
* modules/sys_socket (Depends-on): Update.
* modules/sys_stat (Depends-on): Update.
* modules/sys_time (Depends-on): Update.
* modules/sys_times (Depends-on): Update.
* modules/sys_utsname (Depends-on): Update.
* modules/sys_wait (Depends-on): Update.
* modules/termios (Depends-on): Update.
* modules/time (Depends-on): Update.
* modules/unistd (Depends-on): Update.
* modules/wchar (Depends-on): Update.
* modules/wctype-h (Depends-on): Update.
* MODULES.html.sh (Support for building libraries and executables):
Update.
Bruno Haible [Tue, 12 Jul 2011 09:43:19 +0000 (11:43 +0200)]
Rename module 'unused-parameter' to 'snippet/unused-parameter'.
* modules/snippet/unused-parameter: Renamed from
modules/unused-parameter.
(Files, Makefile.am): Update.
* build-aux/snippet/unused-parameter.h: Renamed from
build-aux/unused-parameter.h.
* modules/selinux-h (Depends-on): Update.
* modules/unistr/base (Depends-on): Update.
* MODULES.html.sh (Core language properties): Update.
Bruno Haible [Tue, 12 Jul 2011 09:41:24 +0000 (11:41 +0200)]
Rename module 'link-warning' to 'snippet/link-warning'.
* modules/snippet/link-warning: Renamed from modules/link-warning.
(Files, Makefile.am): Update.
* build-aux/snippet/link-warning.h: Renamed from
build-aux/link-warning.h.
* MODULES.html.sh (Support for building libraries and executables):
Update.
Bruno Haible [Tue, 12 Jul 2011 09:39:50 +0000 (11:39 +0200)]
Rename module 'c++defs' to 'snippet/c++defs'.
* modules/snippet/c++defs: Renamed from modules/c++defs.
(Files, Makefile.am): Update.
* build-aux/snippet/c++defs.h: Renamed from build-aux/c++defs.h.
* modules/arpa_inet (Depends-on): Update.
* modules/ctype (Depends-on): Update.
* modules/dirent (Depends-on): Update.
* modules/fcntl-h (Depends-on): Update.
* modules/glob (Depends-on): Update.
* modules/iconv-h (Depends-on): Update.
* modules/langinfo (Depends-on): Update.
* modules/locale (Depends-on): Update.
* modules/math (Depends-on): Update.
* modules/netdb (Depends-on): Update.
* modules/poll-h (Depends-on): Update.
* modules/pty (Depends-on): Update.
* modules/search (Depends-on): Update.
* modules/signal (Depends-on): Update.
* modules/spawn (Depends-on): Update.
* modules/stdio (Depends-on): Update.
* modules/stdlib (Depends-on): Update.
* modules/string (Depends-on): Update.
* modules/strings (Depends-on): Update.
* modules/sys_ioctl (Depends-on): Update.
* modules/sys_select (Depends-on): Update.
* modules/sys_socket (Depends-on): Update.
* modules/sys_stat (Depends-on): Update.
* modules/sys_time (Depends-on): Update.
* modules/sys_wait (Depends-on): Update.
* modules/termios (Depends-on): Update.
* modules/time (Depends-on): Update.
* modules/unistd (Depends-on): Update.
* modules/wchar (Depends-on): Update.
* modules/wctype-h (Depends-on): Update.
Bruno Haible [Tue, 12 Jul 2011 09:34:36 +0000 (11:34 +0200)]
Rename module 'arg-nonnull' to 'snippet/arg-nonnull'.
* modules/snippet/arg-nonnull: Renamed from modules/arg-nonnull.
(Files, Makefile.am): Update.
* build-aux/snippet/arg-nonnull.h: Renamed from build-aux/arg-nonnull.h.
* modules/argv-iter (Depends-on): Update.
* modules/arpa_inet (Depends-on): Update.
* modules/dirent (Depends-on): Update.
* modules/fcntl-h (Depends-on): Update.
* modules/fnmatch (Depends-on): Update.
* modules/getopt-posix (Depends-on): Update.
* modules/glob (Depends-on): Update.
* modules/iconv-h (Depends-on): Update.
* modules/inttypes-incomplete (Depends-on): Update.
* modules/locale (Depends-on): Update.
* modules/math (Depends-on): Update.
* modules/netdb (Depends-on): Update.
* modules/search (Depends-on): Update.
* modules/signal (Depends-on): Update.
* modules/spawn (Depends-on): Update.
* modules/stdio (Depends-on): Update.
* modules/stdlib (Depends-on): Update.
* modules/string (Depends-on): Update.
* modules/strings (Depends-on): Update.
* modules/sys_socket (Depends-on): Update.
* modules/sys_stat (Depends-on): Update.
* modules/sys_time (Depends-on): Update.
* modules/sys_times (Depends-on): Update.
* modules/sys_utsname (Depends-on): Update.
* modules/time (Depends-on): Update.
* modules/unistd (Depends-on): Update.
* modules/wchar (Depends-on): Update.
* MODULES.html.sh (Support for building libraries and executables):
Update.
Paul Eggert [Tue, 12 Jul 2011 08:21:00 +0000 (01:21 -0700)]
Improve ChangeLog to summarize _Noreturn better.
Paul Eggert [Tue, 12 Jul 2011 08:16:45 +0000 (01:16 -0700)]
modules/_Exit-tests: test _Noreturn too
* tests/test-_Exit.c (MTA, Charlie): New functions, taken from the
old tests/test-stdnoreturn.c. This tests the _Noreturn keyword a bit.
(main): Use them.
Paul Eggert [Tue, 12 Jul 2011 08:16:08 +0000 (01:16 -0700)]
stdnoreturn, stdnoreturn-tests: remove modules
They're not needed here and a bit premature for use elsewhere. See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00209.html>.
* m4/stdnoreturn.m4, modules/stdnoreturn, modules/stdnoreturn-tests:
* tests/test-stdnoreturn.c: Remove files.
* MODULES.html.sh (_Noreturn <stdnoreturn.h>): Remove section.
* lib/openat.h, lib/sigpipe-die.h, lib/xalloc.h, lib/xmemdup0.h:
* lib/xstrtol.h: Use _Noreturn rather than including <stdnoreturn.h>
and using noreturn.
* modules/openat, modules/sigpipe-die, modules/xalloc:
* modules/xmemdup0, modules/xstrtol:
Remove dependency on stdnoreturn.
Paul Eggert [Tue, 12 Jul 2011 08:15:20 +0000 (01:15 -0700)]
_Noreturn: Ignore __STDC_VERSION__; observe _MSC_VER.
* build-aux/_Noreturn.h (_Noreturn): Ignore __STDC_VERSION__.
Reparenthesize to avoid GCC warning.
Support Microsoft's syntax.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
Paul Eggert [Tue, 12 Jul 2011 08:14:47 +0000 (01:14 -0700)]
_Noreturn-tests: remove module
* modules/_Noreturn-tests: Remove.
* modules/stdnoreturn-tests (Files): Remove tests/test-_Noreturn.c.
* tests/test-_Noreturn.c: Remove.
* tests/test-stdnoreturn.c: Merge from the old
tests/test-_Noreturn.c, testing both noreturn and _Noreturn.
Paul Eggert [Tue, 12 Jul 2011 08:12:10 +0000 (01:12 -0700)]
* top/maint.mk: Adjust to new noreturn support.
(gl_extract_significant_defines_): Omit pattern ATTRIBUTE_NORETURN.
(def_sym_regex): Do not remove ATTRIBUTE_NORETURN.
Paul Eggert [Tue, 12 Jul 2011 08:11:41 +0000 (01:11 -0700)]
xalloc: use stdnoreturn.h
* lib/xalloc.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/xalloc (Depends-on): Add stdnoreturn.
Paul Eggert [Tue, 12 Jul 2011 08:11:07 +0000 (01:11 -0700)]
xstrtol: use stdnoreturn.h
* lib/xstrtol.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/xstrtol (Depends-on): Add stdnoreturn.
Paul Eggert [Tue, 12 Jul 2011 08:10:31 +0000 (01:10 -0700)]
xmemdup0: use stdnoreturn.h
* lib/xmemdup0.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/xmemdup0 (Depends-on): Add stdnoreturn.
Paul Eggert [Tue, 12 Jul 2011 08:10:04 +0000 (01:10 -0700)]
sigpipe-die: use stdnoreturn.h
* lib/sigpipe-die.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/sigpipe-die (Depends-on): Add stdnoreturn.
Paul Eggert [Tue, 12 Jul 2011 08:09:30 +0000 (01:09 -0700)]
openat: use stdnoreturn.h
* lib/openat.h: Include <stdnoreturn.h>.
(_GL_ATTRIBUTE_NORETURN): Remove; all uses replaced with noreturn.
* modules/openat (Depends-on): Add stdnoreturn.
Paul Eggert [Tue, 12 Jul 2011 08:08:59 +0000 (01:08 -0700)]
* lib/openat-die.c (openat_save_fail): Modernize comment.
Paul Eggert [Tue, 12 Jul 2011 08:08:27 +0000 (01:08 -0700)]
* lib/xalloc-die.c (xalloc_die): Modernize comment.
Paul Eggert [Tue, 12 Jul 2011 08:07:21 +0000 (01:07 -0700)]
* lib/glthread/thread.h: Modernize comment.
Paul Eggert [Tue, 12 Jul 2011 08:06:42 +0000 (01:06 -0700)]
obstack: use _Noreturn
* lib/obstack.c (__attribute__): Remove macro.
(print_and_abort): Use _Noreturn.
Paul Eggert [Tue, 12 Jul 2011 08:06:07 +0000 (01:06 -0700)]
c-stack: use _Noreturn
* lib/c-stack.c (die, overflow_handler, segv_handler):
Use _Noreturn rather than __attribute__((noreturn)).
Paul Eggert [Tue, 12 Jul 2011 08:05:34 +0000 (01:05 -0700)]
exclude_tests: use _Noreturn
Paul Eggert [Tue, 12 Jul 2011 08:03:40 +0000 (01:03 -0700)]
argmatch-tests: use _Noreturn
* tests/test-argmatch.c (_GL_ATTRIBUTE_NORETURN): Remove.
(ARGMATCH_DIE_DECL): Use _Noreturn instead.
Paul Eggert [Tue, 12 Jul 2011 08:02:54 +0000 (01:02 -0700)]
stdlib: use _Noreturn
* lib/stdlib.in.h (_GL_ATTRIBUTE_NORETURN): Remove.
(_Exit): Use _Noreturn rather than _GL_ATTRIBUTE_NORETURN.
* modules/stdlib (Depends-on): Add _Noreturn.
(stdlib.h): Depend on $(_NORETURN_H), and copy it in.
Paul Eggert [Tue, 12 Jul 2011 08:01:45 +0000 (01:01 -0700)]
stdnoreturn-tests: new module
* modules/stdnoreturn-tests, tests/test-stdnoreturn.c: New files.
Paul Eggert [Tue, 12 Jul 2011 08:00:20 +0000 (01:00 -0700)]
stdnoreturn: new module
* MODULES.html.sh (Noreturn <stdnoreturn.h>): New section.
* m4/stdnoreturn.m4, modules/stdnoreturn: New files.
Paul Eggert [Tue, 12 Jul 2011 07:58:32 +0000 (00:58 -0700)]
_Noreturn-tests: new module
* modules/_Noreturn-tests, tests/test-_Noreturn.c: New files.
Paul Eggert [Tue, 12 Jul 2011 07:57:02 +0000 (00:57 -0700)]
_Noreturn: new module
* MODULES.html.sh (Support for systems lacking draft ISO C 1X):
New section, mentioning it.
* build-aux/_Noreturn.h, modules/_Noreturn: New files.
Paul Eggert [Tue, 12 Jul 2011 07:54:29 +0000 (00:54 -0700)]
* m4/gnulib-common.m4 (gl_COMMON_BODY): Add _Noreturn.
Eric Blake [Mon, 11 Jul 2011 23:05:34 +0000 (17:05 -0600)]
ffs: new module
Libvirt wants to use ffs() to avoid dragging in -lm for log2().
* modules/ffs: New file.
* m4/ffs.m4: Likewise.
* lib/ffs.c: Likewise.
* m4/strings_h.m4 (gl_HEADER_STRINGS_H_DEFAULTS): Add default.
* modules/strings (Makefile.am): Substitute witness.
(Depends-on): Add c++defs.
* lib/strings.in.h (ffs): Declare.
* modules/ffs-tests: New test file.
* tests/test-ffs.c: Test new module.
* MODULES.html.sh (Integer arithmetic functions): Mention it.
* doc/posix-functions/ffs.texi (ffs): Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 11 Jul 2011 14:16:12 +0000 (08:16 -0600)]
* ChangeLog: Fix typo.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Mon, 11 Jul 2011 13:32:39 +0000 (07:32 -0600)]
regex: avoid compiler warning
Although glibc leaks strcasecmp through <string.h>, this behavior
is not required by POSIX, and HP NonStop needs <strings.h>
* lib/regex.c (includes): Include <strings.h>, for use of
strcasecmp in regcomp.c.
Reported by Jachim Schmitz.
Signed-off-by: Eric Blake <eblake@redhat.com>
Paul Eggert [Sat, 9 Jul 2011 21:56:56 +0000 (14:56 -0700)]
stdint: respect system's intmax_t if INTMAX_MAX
* lib/stdint.in.h (intmax_t, uintmax_t): If the system defines
INTMAX_MAX, assume its intmax_t is OK. Similarly for and
uintmax_t. This is for some Mac OS X builds, where intmax_t is
long but int64_t is long long, and where we will clash with the
system intmax_t if we override it. See
<http://lists.gnu.org/archive/html/bug-gnulib/2011-07/msg00160.html>.
(INTMAX_C, UINTMAX_C): For consistency, respect the system's
INTMAX_C if INTMAX_MAX and INTMAX_C are both defined, and
similarly for UINTMAX_C.
Bruno Haible [Sat, 9 Jul 2011 00:00:59 +0000 (02:00 +0200)]
pthread_sigmask tests: Avoid a compiler warning.
* tests/test-pthread_sigmask1.c (main): Complain if system() returns
non-zero.
Bruno Haible [Fri, 8 Jul 2011 23:59:31 +0000 (01:59 +0200)]
sigprocmask tests: A better way to avoid a compiler warning.
* tests/test-sigprocmask.c: Don't include "ignore-value.h".
(main): Complain if system() returns non-zero.
* modules/sigprocmask-tests (Depends-on): Remove ignore-value.
Bruno Haible [Fri, 8 Jul 2011 23:37:58 +0000 (01:37 +0200)]
pthread_sigmask: Work around IRIX bug.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the IRIX
bug.
* lib/pthread_sigmask.c (pthread_sigmask): usleep for some time when
there may be unblocked pending signals.
* doc/posix-functions/pthread_sigmask.texi: Mention the IRIX bug.
Bruno Haible [Fri, 8 Jul 2011 23:01:36 +0000 (01:01 +0200)]
pthread_sigmask: Work around Cygwin bug.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the Cygwin
bug.
* lib/pthread_sigmask.c (pthread_sigmask): Fix the return value from
the system's pthread_sigmask function.
* doc/posix-functions/pthread_sigmask.texi: Mention the Cygwin bug.
Bruno Haible [Fri, 8 Jul 2011 22:27:00 +0000 (00:27 +0200)]
pthread_sigmask: Work around bug in single-threaded implementation.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Test for the
FreeBSD, HP-UX, Solaris bug.
(gl_PREREQ_PTHREAD_SIGMASK): New macro.
* lib/pthread_sigmask.c: Include <stddef.h>.
(pthread_sigmask): If HAVE_PTHREAD_SIGMASK, define as a wrapper around
the system's pthread_sigmask function.
* modules/pthread_sigmask (configure.ac): Invoke
gl_PREREQ_PTHREAD_SIGMASK.
* doc/posix-functions/pthread_sigmask.texi: Mention bug on FreeBSD,
HP-UX, Solaris.
Eric Blake [Fri, 8 Jul 2011 21:55:40 +0000 (15:55 -0600)]
test-sigprocmask: avoid compiler warning
* modules/sigprocmask-tests (Depends-on): Add ignore-value.
* tests/test-sigprocmask.c (main): Use it to silence warning.
Reported by Jim Meyering.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Fri, 8 Jul 2011 21:57:31 +0000 (15:57 -0600)]
test-snprintf: avoid compiler warning
* tests/test-snprintf.c (main): Avoid shadowed declaration.
* tests/test-vsnprintf.c (main): Likewise.
Reported by Jim Meyering.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Fri, 8 Jul 2011 17:12:14 +0000 (19:12 +0200)]
Tests for module 'pthread_sigmask'.
* modules/pthread_sigmask-tests: New file.
* tests/test-pthread_sigmask1.c: New file, based on
tests/test-sigprocmask.c.
* tests/test-pthread_sigmask2.c: New file.
Jim Meyering [Fri, 8 Jul 2011 21:17:36 +0000 (23:17 +0200)]
test-getopt.h: avoid warning about an unused variable
* tests/test-getopt.h (test_getopt): Remove unused variable, "c".
Jim Meyering [Thu, 7 Jul 2011 11:45:25 +0000 (13:45 +0200)]
maint: reduce list of files exempt from sc_prohibit_leading_TABs
* Makefile (sc_prohibit_leading_TABs): Don't exempt m4/po.m4,
now that it no longer contains leading TABs.
Remove unused "url=FIXME" statement.
Paul Eggert [Fri, 8 Jul 2011 17:49:07 +0000 (10:49 -0700)]
pthread_sigmask: Assume POSIX when not gl_THREADLIB.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
When gl_THREADLIB is not in use, assume that the POSIX sematics
are desired. This is better for Emacs, which uses POSIX semantics
on GNUish and/or POSIXish platforms, and does not use threads at
all otherwise.
Paul Eggert [Fri, 8 Jul 2011 17:45:41 +0000 (10:45 -0700)]
pthread_sigmask: fix typo when testing for libraries
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK):
AC_LINK_IFELSE, not AC_COMPILE_IFELSE.
Eric Blake [Thu, 7 Jul 2011 17:37:37 +0000 (11:37 -0600)]
fts: introduce FTS_NOATIME
This gives clients the option to try a non-invasive traversal,
where merely visiting a directory does not update its timestamp,
where such is supported by the kernel.
Note that this is best-effort. FTS_NOATIME is silently ignored
on systems that lack O_NOATIME support - it is up to the caller
to decide whether to issue an error when the gnulib replacement
<fcntl.h> defined O_NOATIME to 0, and/or detect older Linux
kernels where O_NOATIME is defined to non-zero but has no effect.
Note that whiteout support and O_NOATIME support are currently
orthogonal: there is no way to get O_NOATIME behavior when using
__opendir2 to visit whiteouts on BSD systems. So far, I don't
know of any system with both __opendir2 and O_NOATIME; if such
a system exists, then fts_build() needs a tweak (then again,
such a system would probably add DTF_NOATIME for __opendir2).
* lib/fts_.h (FTS_NOATIME): New bit flag.
(FTS_OPTIONMASK): Adjust.
* lib/fts.c (diropen, fts_open, fts_build): Honor it.
(fd_ring_check): Debug code unconditionally uses O_NOATIME.
Needed for findutils bug http://savannah.gnu.org/bugs/?33724
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Fri, 8 Jul 2011 11:28:54 +0000 (13:28 +0200)]
Tests for module 'thread'.
* modules/thread-tests: New file.
* tests/test-thread_self.c: New file.
* tests/test-thread_create.cc: New file.
Bruno Haible [Fri, 8 Jul 2011 11:25:16 +0000 (13:25 +0200)]
thread: Avoid gcc warnings when using gl_thread_self().
* lib/glthread/thread.h (gl_thread_self): Return a pthread_t, not a
'void *'.
(gl_thread_self_pointer): Update.
Bruno Haible [Fri, 8 Jul 2011 02:13:53 +0000 (04:13 +0200)]
signal-c++-tests: Check declaration of pthread_sigmask.
* tests/test-signal-c++.cc: Check declaration of pthread_sigmask.
* modules/signal-c++-tests (Makefile.am): Link test-signal-c++ against
$(LIB_PTHREAD_SIGMASK).
Bruno Haible [Fri, 8 Jul 2011 02:05:45 +0000 (04:05 +0200)]
pthread_sigmask: Fix link requirements on OSF/1 5.1 and with pth.
* lib/signal.in.h (pthread_sigmask): Override if
REPLACE_PTHREAD_SIGMASK is 1.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
REPLACE_PTHREAD_SIGMASK.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Set also
REPLACE_PTHREAD_SIGMASK. Set and substitute LIB_PTHREAD_SIGMASK.
* modules/signal (Makefile.am): Substitute REPLACE_PTHREAD_SIGMASK.
* modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
(Link): Set to $(LIB_PTHREAD_SIGMASK), not $(LIBMULTITHREAD).
Bruno Haible [Fri, 8 Jul 2011 01:38:33 +0000 (03:38 +0200)]
pthread_sigmask: Ensure declaration in <signal.h> also on Solaris 2.6.
Bruno Haible [Fri, 8 Jul 2011 00:24:27 +0000 (02:24 +0200)]
pthread_sigmask: Ensure declaration in <signal.h>.
* lib/signal.in.h: On MacOS X, FreeBSD, OpenBSD, OSF/1, include
<pthread.h>.
* doc/posix-functions/pthread_sigmask.texi: Mention the header file
problem.
Bruno Haible [Fri, 8 Jul 2011 00:18:06 +0000 (02:18 +0200)]
pthread_sigmask: Document the module.
* doc/posix-functions/pthread_sigmask.texi: Mention the new module.
Bruno Haible [Fri, 8 Jul 2011 00:11:26 +0000 (02:11 +0200)]
pthread_sigmask: Follow gnulib conventions.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Renamed from
gl_PTHREAD_SIGMASK.
* modules/pthread_sigmask (configure.ac): Update.
Bruno Haible [Fri, 8 Jul 2011 00:08:15 +0000 (02:08 +0200)]
pthread_sigmask: Make declaration C++ safe.
* lib/signal.in.h: In two special conditions, just do an #include_next.
(pthread_sigmask): Test HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
Invoke _GL_CXXALIAS_SYS and _GL_CXXALIASWARN.
* m4/signal_h.m4 (gl_SIGNAL_H_DEFAULTS): Initialize
HAVE_PTHREAD_SIGMASK, not REPLACE_PTHREAD_MASK.
* m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Set HAVE_PTHREAD_SIGMASK,
not REPLACE_PTHREAD_MASK.
* modules/signal (Makefile.am): Substitute HAVE_PTHREAD_SIGMASK,
not REPLACE_PTHREAD_MASK.
* modules/pthread_sigmask (Depends-on, configure.ac): Update condition.
Bruno Haible [Thu, 7 Jul 2011 23:51:49 +0000 (01:51 +0200)]
pthread_sigmask: Fix return value.
* lib/signal.in.h (pthread_sigmask): Declare. Don't define as a macro.
* lib/pthread_sigmask.c: New file.
* modules/pthread_sigmask (Files): Add it.
(configure.ac): Invoke AC_LIBOBJ.
Eric Blake [Thu, 7 Jul 2011 22:10:30 +0000 (16:10 -0600)]
getopt: more portable argv creation
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Rather than casting away
const, use char arrays rather than strings.
Suggested by Paul Eggert.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Thu, 7 Jul 2011 17:52:19 +0000 (19:52 +0200)]
Tests for module 'sigprocmask'.
* modules/sigprocmask-tests: New file.
* tests/test-sigprocmask.c: New file.
Bruno Haible [Thu, 7 Jul 2011 17:50:35 +0000 (19:50 +0200)]
float tests: Tweak.
* tests/test-float.c (main): Tweak skip message.
Eric Blake [Thu, 7 Jul 2011 17:02:23 +0000 (11:02 -0600)]
getopt: avoid compiler warning during configure
Some compilers (or warning settings within a compiler) rightfully
complain about assigning a string literal to a char *, since this
can lead to undefined behavior if those characters are modified.
Use the same casts as in the test file to avoid a spurious rejection
of a system getopt merely because of warnings.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Avoid problems with
assigning string literals to non-const pointer.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Thu, 7 Jul 2011 16:24:20 +0000 (10:24 -0600)]
getopt-gnu: avoid crash in glibc getopt
Use of "W;" in an option string may be rare, but we might as well
avoid crashing on it.
* m4/getopt.m4 (gl_GETOPT_CHECK_HEADRS): Detect the problem.
* tests/test-getopt.h (test_getopt): Enhance test.
* tests/test-getopt_long.h (test_getopt_long): Likewise.
* doc/posix-functions/getopt.texi (getopt): Document it.
* doc/glibc-functions/getopt_long.texi (getopt_long): Likewise.
* doc/glibc-functions/getopt_long_only.texi (getopt_long_only):
Likewise.
Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake [Thu, 7 Jul 2011 14:54:11 +0000 (08:54 -0600)]
getopt: handle W; without long options in getopt
This reverts commit
cbf381169705782b144b2733798a62c11aa473a5, in
favor of the upstream glibc fix (commit
01636b214) plus a C89 fix.
[BZ #12922]
* lib/getopt.c (_getopt_internal_r): When "W;" is in short options
but no long options are defined, just return 'W'.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Thu, 7 Jul 2011 11:14:37 +0000 (13:14 +0200)]
Avoid literal tabs.
* m4/po,m4 (AM_PO_SUBDIRS, AM_POSTPROCESS_PO_MAKEFILE): Use a shell
variable containing a tab instead of a literal tab.
Reported by Jim Meyering.
Bruno Haible [Thu, 7 Jul 2011 11:01:34 +0000 (13:01 +0200)]
Comments.
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Update comments about mingw.
Bruno Haible [Thu, 7 Jul 2011 01:34:18 +0000 (03:34 +0200)]
sys_select: Fix compilation error on mingw, introduced on 2011-06-30.
* lib/sys_select.in.h: Don't include <sys/socket.h>. Instead, include
<winsock2.h>.
(rpl_fd_isset, FD_ISSET): New definitions, copied from
lib/sys_socket.in.h.
(close, gethostname): Hide declarations from <winsock2.h>.
(socket, connect, accept, bind, getpeername, getsockname, getsockopt,
listen, recv, send, recvfrom, sendto, setsockopt, shutdown): Likewise.
* lib/sys_socket.in.h (close, gethostname): Tweak indentation.
(select): Don't override if gnulib's <sys/select.h> was already
included.
* lib/unistd.in.h (socket, connect, accept, bind, getpeername,
getsockname, getsockopt, listen, recv, send, recvfrom, sendto,
setsockopt, shutdown, select): Tweak indentation.
Paul Eggert [Wed, 6 Jul 2011 17:48:21 +0000 (10:48 -0700)]
* modules/pthread_sigmask (configure.ac): gl_SIGNAL_MODULE_INDICATOR
and not gl_SYS_SELECT_MODULE_INDICATOR, fixing a typo exposed
in an application that does not use the sys_select module.
Erik Faye-Lund [Wed, 6 Jul 2011 10:10:51 +0000 (12:10 +0200)]
poll: do not return 0 on timeout=-1
* lib/poll.c: Loop with yield if no events occured
Eric Blake [Wed, 6 Jul 2011 15:30:38 +0000 (09:30 -0600)]
pthread_sigmask: always replace when not using pthread
On mingw, when using win32 threading, the pthread_sigmask replacement
function was not being installed.
* m4/pthread_sigmask.m4 (gl_PTHREAD_SIGMASK): Force sigprocmask
replacement when using some threading other than pthread. Fix
logic bug.
Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible [Wed, 6 Jul 2011 14:59:51 +0000 (16:59 +0200)]
Comments.
* m4/printf.m4: Update comments about mingw.
Paul Eggert [Wed, 6 Jul 2011 07:42:24 +0000 (00:42 -0700)]
sys_select: define sigset_t more portably
* lib/sys_select.in.h: Always include <sys/types.h>, since
we now need sigset_t and mingw defines it there.
Include <signal.h> before split inclusion guard, to avoid
mishaps on Solaris, whose <signal.h> eventually includes us.
* m4/signal_h.m4 (gl_SIGNAL_H): Require gl_CHECK_TYPE_SIGSET_T.
(gl_CHECK_TYPE_SIGSET_T): New macro, most of the contents of
which come from ...
* m4/signalblocking.m4 (gl_SIGNALBLOCKING): Require
gl_CHECK_TYPE_SIGSET_T.
(gl_PREREQ_SIGPROCMASK): Now a no-op, since gl_CHECK_TYPE_SIGSET_T
does the real work.
* modules/sys_select (Depends-on): Add 'signal'.
Paul Eggert [Wed, 6 Jul 2011 07:09:12 +0000 (00:09 -0700)]
* m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Poison pselect.
Suggested by Bruno Haible.
Paul Eggert [Wed, 6 Jul 2011 07:05:40 +0000 (00:05 -0700)]
pselect: Use pthread_sigmask, not sigprocmask.
* lib/pselect.c (pselect): Use pthread_sigmask, as it supports
multithreaded apps better than sigprocmask does.
* modules/pselect (Depends-on): Depend on pthread_sigmask, not
sigprocmask directly.
Paul Eggert [Wed, 6 Jul 2011 07:02:53 +0000 (00:02 -0700)]
modules/pselect: Add Bruno and Jim to maintainers.
Paul Eggert [Wed, 6 Jul 2011 07:01:23 +0000 (00:01 -0700)]
* modules/pselect: Add select, LIBSOCKET.
Paul Eggert [Wed, 6 Jul 2011 06:58:08 +0000 (23:58 -0700)]
* lib/pselect.c (pselect): Use plain name, without "rpl_".
Don't #undef, since we don't need any underlying pselect.
* modules/pselect (Depends-on): Use our pselect.o if !HAVE_PSELECT.
Both changes suggested by Bruno Haible.