Bruno Haible [Fri, 24 Dec 2010 10:03:44 +0000 (11:03 +0100)]
signal: Define NSIG.
* lib/signal.in.h (NSIG): Define to 32 on NonStop Kernel.
* tests/test-signal.c (nsig): New variable.
Reported by Joachim Schmitz <jojo@schmitz-digital.de>.
Paul Eggert [Fri, 24 Dec 2010 08:06:16 +0000 (00:06 -0800)]
tests: port test-fdutimensat.c to Solaris 8
* tests/test-fdutimensat.c (do_fdutimens): Don't assume
fdutimensat works with a nonnegative fd and AT_SYMLINK_NOFOLLOW.
On Solaris 8, it fails with errno == ENOSYS, because there is no
futimens (so it can't use the fd), and there is no lutimens (so it
can't implement AT_SYMLINK_NOFOLLOW on symlinks).
Paul Eggert [Fri, 24 Dec 2010 07:32:55 +0000 (23:32 -0800)]
vsnprintf: make more consistent with snprintf; doc fixes
* doc/posix-functions/snprintf.texi (snprintf): The workaround for
the byte count return problem was promoted from the snprintf-posix
to the snprintf module.
* doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise.
* m4/vsnprintf.m4 (gl_FUNC_VSNPRINTF): Also check
gl_SNPRINTF_RETVAL_C99, for consistency with gl_FUNC_SNPRINTF.
* tests/test-snprintf.c (main): Check the byte count returned.
* tests/test-vsnprintf.c (main): Likewise.
Paul Eggert [Wed, 22 Dec 2010 23:13:59 +0000 (15:13 -0800)]
doc: document Solaris printf bug with large float precisions
* doc/posix-functions/dprintf.texi (dprintf):
* doc/posix-functions/fprintf.texi (fprintf):
* doc/posix-functions/printf.texi (printf):
* doc/posix-functions/snprintf.texi (snprintf):
* doc/posix-functions/sprintf.texi (sprintf):
* doc/posix-functions/vdprintf.texi (vdprintf):
* doc/posix-functions/vfprintf.texi (vfprintf):
* doc/posix-functions/vprintf.texi (vprintf):
* doc/posix-functions/vsnprintf.texi (vsnprintf):
* doc/posix-functions/vsprintf.texi (vsprintf):
Mention that these functions mishandle large floating point
precisions on Solaris 10. The same bug is also present in Solaris
8, and I assume earlier. This causes "cd gnulib-tests; make
check" to fail on Solaris 8 (and I assume, later) when building
the latest coreutils, in test-vasprintf-posix's call to
my_asprintf (&result, "%.4000f %d", 1.0, 99). I have not checked
the wide flavors (e.g., wprintf) so this patch just updates the
documentation for the narrow ones.
Paul Eggert [Wed, 22 Dec 2010 20:27:46 +0000 (12:27 -0800)]
test-posixtm.c: add two tests
* tests/test-posixtm.c: Add two tests, to highlight the
bug in Solaris 10 (and earlier) localtime. Gnulib doesn't work
around this bug; this is merely to document it.
Bruno Haible [Wed, 22 Dec 2010 18:25:34 +0000 (19:25 +0100)]
getlogin_r: Work around portability problem on OSF/1.
* m4/getlogin_r.m4 (gl_FUNC_GETLOGIN_R): Detect the OSF/1 problem.
* lib/unistd.in.h (getlogin_r): Replace if REPLACE_GETLOGIN_R is set.
* lib/getlogin_r.c (getlogin_r): When getlogin_r exists, invoke it and
test for a truncated result.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize REPLACE_GETLOGIN_R.
* modules/unistd (Makefile.am): Substitute REPLACE_GETLOGIN_R.
* modules/getlogin_r (Depends-on): Add memchr.
* doc/posix-functions/getlogin_r.texi: Mention the OSF/1 problem.
Bruno Haible [Wed, 22 Dec 2010 16:53:09 +0000 (17:53 +0100)]
ptsname: Avoid test failure on OSF/1 5.1.
* modules/ptsname-tests (Depends-on): Add 'same-inode'.
* tests/test-ptsname.c: Include <sys/stat.h>, same-inode.h.
(same_slave): New function.
(main): Use it to compare ptsname's result with the expected file name.
Bruno Haible [Wed, 22 Dec 2010 16:09:26 +0000 (17:09 +0100)]
ttyname_r: Work around bug on OSF/1 5.1.
* doc/posix-functions/ttyname_r.texi: Mention the OSF/1 bug.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Detect the OSF/1 bug. Say "no"
instead of "guessing no" when the OSF/1 bug or the Solaris bug is
present.
* lib/ttyname_r.c (ttyname_r): Update comments.
Bruno Haible [Wed, 22 Dec 2010 15:10:58 +0000 (16:10 +0100)]
round: Implement result sign according to IEEE 754.
* lib/round.c (MIN, MINUS_ZERO): New macros.
(FUNC): Return -0.0 for -0.5 < x < 0.
* tests/test-roundf-ieee.c (main): Test also values between -1 and 1.
* tests/test-round-ieee.c (main): Likewise.
* tests/test-roundl-ieee.c (main): Likewise.
Bruno Haible [Wed, 22 Dec 2010 15:08:29 +0000 (16:08 +0100)]
trunc: Implement result sign according to IEEE 754.
* lib/trunc.c (MIN, MINUS_ZERO): New macros.
(FUNC): Return +0.0 for 0 < x < 1 and -0.0 for -1 < x < 0.
* tests/test-trunc2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(trunc_reference): Keep in sync with lib/trunc.c.
* tests/test-truncf2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(truncf_reference): Keep in sync with lib/trunc.c.
* tests/test-truncf-ieee.c (main): Test also values between -1 and 1.
* tests/test-trunc-ieee.c (main): Likewise.
* tests/test-truncl-ieee.c (main): Likewise.
Bruno Haible [Wed, 22 Dec 2010 15:07:08 +0000 (16:07 +0100)]
ceil: Implement result sign according to IEEE 754.
* lib/ceil.c (MIN, MINUS_ZERO): New macros.
(FUNC): Return -0.0 for -1 < x < 0.
* tests/test-ceil2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(ceil_reference): Keep in sync with lib/ceil.c.
* tests/test-ceilf2.c: Include minus-zero.h.
(MINUS_ZERO): New macro.
(ceilf_reference): Keep in sync with lib/ceil.c.
* tests/test-ceilf-ieee.c (main): Test also values between -1 and 1.
* tests/test-ceil-ieee.c (main): Likewise.
* tests/test-ceill-ieee.c (main): Likewise.
Paul Eggert [Wed, 22 Dec 2010 10:03:18 +0000 (02:03 -0800)]
getaddrinfo, inet_ntop: Update doc for Solaris.
* doc/posix-functions/gai_strerror.texi: Return type is also an
issue on Solaris 9 and earlier.
* doc/posix-functions/inet_ntop.texi: 4th arg type is also an issue
on Solaris 10 and earlier.
Bruno Haible [Tue, 21 Dec 2010 21:27:02 +0000 (22:27 +0100)]
New module 'roundl-ieee'.
* modules/roundl-ieee: New file.
* m4/roundl.m4 (gl_FUNC_ROUNDL): If gl_FUNC_ROUNDL_IEEE is also used,
test whether roundl works according to ISO C 99 with IEC 60559.
* m4/roundl-ieee.m4: New file.
* modules/roundl-ieee-tests: New file.
* tests/test-roundl-ieee.c: New file, based on tests/test-roundl.c.
* tests/test-roundl.c (main): Remove signbit tests.
* modules/roundl-tests (Depends-on): Remove signbit.
* doc/posix-functions/roundl.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 21:04:25 +0000 (22:04 +0100)]
New module 'truncl-ieee'.
* modules/truncl-ieee: New file.
* modules/truncl-ieee-tests: New file.
* tests/test-truncl-ieee.c: New file, based on tests/test-truncl.c.
* tests/test-truncl.c (main): Remove signbit tests.
* modules/truncl-tests (Depends-on): Remove signbit.
* doc/posix-functions/truncl.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 20:58:44 +0000 (21:58 +0100)]
New module 'ceill-ieee'.
* modules/ceill-ieee: New file.
* modules/ceill-ieee-tests: New file.
* tests/test-ceill-ieee.c: New file, based on tests/test-ceill.c.
* tests/test-ceill.c (main): Remove signbit tests.
* modules/ceill-tests (Depends-on): Remove signbit.
* doc/posix-functions/ceill.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 20:49:51 +0000 (21:49 +0100)]
New module 'floorl-ieee'.
* modules/floorl-ieee: New file.
* modules/floorl-ieee-tests: New file.
* tests/test-floorl-ieee.c: New file, based on tests/test-floorl.c.
* tests/test-floorl.c (main): Remove signbit tests.
* modules/floorl-tests (Depends-on): Remove signbit.
* doc/posix-functions/floorl.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 17:55:59 +0000 (18:55 +0100)]
New module 'round-ieee'.
* modules/round-ieee: New file.
* m4/round.m4 (gl_FUNC_ROUND): If gl_FUNC_ROUND_IEEE is also used, test
whether round works according to ISO C 99 with IEC 60559.
* m4/round-ieee.m4: New file.
* modules/round-ieee-tests: New file.
* tests/test-round-ieee.c: New file, based on tests/test-roundf-ieee.c.
* tests/test-round1.c (main): Remove signbit tests.
* modules/round-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/round.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 17:30:16 +0000 (18:30 +0100)]
New module 'trunc-ieee'.
* modules/trunc-ieee: New file.
* m4/trunc.m4 (gl_FUNC_TRUNC): If gl_FUNC_TRUNC_IEEE is also used, test
whether trunc works according to ISO C 99 with IEC 60559.
* m4/trunc-ieee.m4: New file.
* lib/math.in.h (trunc): Replace if REPLACE_TRUNC is set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNC.
* modules/math (Makefile.am): Substitute REPLACE_TRUNC.
* modules/trunc-ieee-tests: New file.
* tests/test-trunc-ieee.c: New file, based on tests/test-truncf-ieee.c.
* tests/test-trunc1.c (main): Remove signbit tests.
* modules/trunc-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/trunc.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 17:05:21 +0000 (18:05 +0100)]
New module 'ceil-ieee'.
* modules/ceil-ieee: New file.
* m4/ceil.m4 (gl_FUNC_CEIL): Require gl_MATH_H_DEFAULTS. If
gl_FUNC_CEIL_IEEE is also used, test whether ceil works according to
ISO C 99 with IEC 60559.
* m4/ceil-ieee.m4: New file.
* modules/ceil (Files): Add lib/ceil.c.
(Depends-on): Add 'float'.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
* lib/math.in.h (ceil): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_CEIL,
REPLACE_CEIL.
* modules/math (Makefile.am): Substitute GNULIB_CEIL, REPLACE_CEIL.
* modules/ceil-ieee-tests: New file.
* tests/test-ceil-ieee.c: New file, based on tests/test-ceilf-ieee.c.
* tests/test-math-c++.cc: Check the signature of 'ceil'.
* doc/posix-functions/ceil.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 16:41:03 +0000 (17:41 +0100)]
New module 'floor-ieee'.
* modules/floor-ieee: New file.
* m4/floor.m4 (gl_FUNC_FLOOR): Require gl_MATH_H_DEFAULTS. If
gl_FUNC_FLOOR_IEEE is also used, test whether floor works according to
ISO C 99 with IEC 60559.
* m4/floor-ieee.m4: New file.
* modules/floor (Files): Add lib/floor.c.
(Depends-on): Add 'float'.
(configure.ac): Invoke gl_MATH_MODULE_INDICATOR.
* lib/math.in.h (floor): New declaration.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize GNULIB_FLOOR,
REPLACE_FLOOR.
* modules/math (Makefile.am): Substitute GNULIB_FLOOR, REPLACE_FLOOR.
* modules/floor-ieee-tests: New file.
* tests/test-floor-ieee.c: New file, based on tests/test-floorf-ieee.c.
* tests/test-math-c++.cc: Check the signature of 'floor'.
* doc/posix-functions/floor.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 14:58:00 +0000 (15:58 +0100)]
New module 'roundf-ieee'.
* modules/roundf-ieee: New file.
* m4/roundf.m4 (gl_FUNC_ROUNDF): If gl_FUNC_ROUNDF_IEEE is also used,
test whether roundf works according to ISO C 99 with IEC 60559.
* m4/roundf-ieee.m4: New file.
* modules/roundf-ieee-tests: New file.
* tests/test-roundf-ieee.c: New file, based on tests/test-roundf1.c.
* tests/test-roundf1.c (main): Remove signbit tests.
* modules/roundf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/roundf.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 14:44:21 +0000 (15:44 +0100)]
New module 'truncf-ieee'.
* modules/truncf-ieee: New file.
* m4/truncf.m4 (gl_FUNC_TRUNCF): If gl_FUNC_TRUNCF_IEEE is also used,
test whether truncf works according to ISO C 99 with IEC 60559.
* m4/truncf-ieee.m4: New file.
* lib/math.in.h (truncf): Replace if REPLACE_TRUNCF is set.
* m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_TRUNCF.
* modules/math (Makefile.am): Substitute REPLACE_TRUNCF.
* modules/truncf-ieee-tests: New file.
* tests/test-truncf-ieee.c: New file, based on tests/test-truncf1.c.
* tests/test-truncf1.c (main): Remove signbit tests.
* modules/truncf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/truncf.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 13:32:25 +0000 (14:32 +0100)]
New module 'ceilf-ieee'.
* modules/ceilf-ieee: New file.
* m4/ceilf.m4 (gl_FUNC_FLOORF): If gl_FUNC_CEILF_IEEE is also used,
test whether ceilf works according to ISO C 99 with IEC 60559.
* m4/ceilf-ieee.m4: New file.
* modules/ceilf-ieee-tests: New file.
* tests/test-ceilf-ieee.c: New file, based on tests/test-ceilf1.c.
* tests/test-ceilf1.c (main): Remove signbit tests.
* modules/ceilf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/ceilf.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 04:04:13 +0000 (05:04 +0100)]
New module 'floorf-ieee'.
* modules/floorf-ieee: New file.
* m4/floorf.m4 (gl_FUNC_FLOORF): If gl_FUNC_FLOORF_IEEE is also used,
test whether floorf works according to ISO C 99 with IEC 60559.
* m4/floorf-ieee.m4: New file.
* modules/floorf-ieee-tests: New file.
* tests/test-floorf-ieee.c: New file, based on tests/test-floorf1.c.
* tests/test-floorf1.c (main): Remove signbit tests.
* modules/floorf-tests (Depends-on): Remove 'signbit'.
* doc/posix-functions/floorf.texi: Mention the new module.
Bruno Haible [Tue, 21 Dec 2010 13:18:46 +0000 (14:18 +0100)]
Support for minus zero in autoconf macros.
* m4/minus-zero.m4: New file, based on tests/minus-zero.h.
* m4/signbit.m4 (gl_FLOAT_SIGNBIT_CODE, gl_DOUBLE_SIGNBIT_CODE,
gl_LONG_DOUBLE_SIGNBIT_CODE, gl_FLOATTYPE_SIGNBIT_CODE): New macros.
* tests/minus-zero.h: Update comments.
Bruno Haible [Tue, 21 Dec 2010 16:28:25 +0000 (17:28 +0100)]
Tests for module 'ceil'.
* modules/ceil-tests: New file.
* tests/test-ceil1.c: New file, based on tests/test-ceill.c.
* tests/test-ceil2.c: New file, based on tests/test-ceilf2.c.
Bruno Haible [Tue, 21 Dec 2010 16:16:09 +0000 (17:16 +0100)]
Tests for module 'floor'.
* modules/floor-tests: New file.
* tests/test-floor1.c: New file, based on tests/test-floorl.c.
* tests/test-floor2.c: New file, based on tests/test-floorf2.c.
Bruno Haible [Tue, 21 Dec 2010 11:54:21 +0000 (12:54 +0100)]
Fix cross-compilation guesses on Solaris.
* m4/fopen.m4 (gl_FUNC_FOPEN): Correct shell pattern so that it does
not match "solaris2.10".
* m4/open.m4 (gl_FUNC_OPEN): Likewise.
* m4/printf.m4 (gl_SNPRINTF_TRUNCATION_C99, gl_SNPRINTF_DIRECTIVE_N,
gl_VSNPRINTF_ZEROSIZE_C99): Likewise.
Paul Eggert [Tue, 21 Dec 2010 09:15:32 +0000 (01:15 -0800)]
snprintf: port snprintf (NULL, 0, ...) to Solaris 8 and 9
This fixes a problem observed with the latest coreutils snapshot
that caused a test to fail on Solaris 8. src/csplit.c's call
snprintf (NULL, 0, format, UINT_MAX) returns -1 on Solaris 9 and
earlier, instead of returning the number of bytes that would have
been generated; this causes csplit to incorrectly report memory
exhaustion.
* m4/printf.m4 (gl_SNPRINTF_RETVAL_C99): Also check for
snprintf (NULL, 0, ...) and (for good measure) snprintf (buf, 0, ...).
Guess that it doesn't work on Solaris 2.6 through 9. Adjust
comments to match.
(gl_PRINTF_SIZES_C99, gl_PRINTF_DIRECTIVE_F, gl_SNPRINTF_RETVAL_C99):
Fix typo in matching older versions of Solaris: "solaris2.10"
is matched by the shell pattern "solaris2.[0-9]*". This matters
only for guessing while cross-compiling.
* m4/snprintf.m4 (gl_FUNC_SNPRINTF): Also check gl_SNPRINTF_RETVAL_C99.
Paul Eggert [Tue, 21 Dec 2010 07:48:19 +0000 (23:48 -0800)]
ftoastr: fix comment again
* lib/ftoastr.h: Fix typo in comment. Noted by Ben Pfaff in
<http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00149.html>.
Also, simplify example a bit by using flags = 0.
Bruno Haible [Mon, 20 Dec 2010 12:10:22 +0000 (13:10 +0100)]
ttyname_r: Add missing declaration on HP-UX 11.
* lib/unistd.in.h (ttyname_r): Test HAVE_DECL_TTYNAME_R instead of
HAVE_TTYNAME_R.
* m4/ttyname_r.m4 (gl_FUNC_TTYNAME_R): Test whether ttyname_r is
declared. Set HAVE_TTYNAME_R always.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
HAVE_DECL_TTYNAME_R, not HAVE_TTYNAME_R.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_TTYNAME_R, not
HAVE_TTYNAME_R.
* doc/posix-functions/ttyname_r.texi: Document the HP-UX 11 problem.
Bruno Haible [Mon, 20 Dec 2010 01:18:07 +0000 (02:18 +0100)]
wctype: Make it work in C++ mode on OSF/1 5.1.
* lib/wctype.in.h (iswblank): Declare but not define here.
* lib/iswblank.c: New file, extracted from lib/wctype.in.h.
* m4/wctype_h.m4 (gl_WCTYPE_H): Arrange to compile it if needed.
* modules/wctype (Files): Add lib/iswblank.c.
Bruno Haible [Sun, 19 Dec 2010 23:47:57 +0000 (00:47 +0100)]
tcgetsid: Add missing declaration on OSF/1 5.1.
* lib/termios.in.h (tcgetsid): Test HAVE_DECL_TCGETSID instead of
HAVE_TCGETSID.
* m4/tcgetsid.m4 (gl_FUNC_TCGETSID): Test whether tcgetsid is declared.
Don't set HAVE_TCGETSID.
* m4/termios_h.m4 (gl_TERMIOS_H_DEFAULTS): Initialize
HAVE_DECL_TCGETSID, not HAVE_TCGETSID.
* modules/termios (Makefile.am): Substitute HAVE_DECL_TCGETSID, not
HAVE_TCGETSID.
* doc/posix-functions/tcgetsid.texi: Mention the OSF/1 5.1 problem.
Jim Meyering [Sun, 19 Dec 2010 21:48:27 +0000 (22:48 +0100)]
setenv: restore to working order
$HAVE_SETENV is used in gl_FUNC_SETENV, yet its definitions were
mistakenly removed.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Restore code to set
HAVE_SETENV.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Restore code to initialize
HAVE_SETENV.
Bruno Haible [Sun, 19 Dec 2010 17:35:54 +0000 (18:35 +0100)]
unsetenv: Add missing declaration on OSF/1 5.1.
* lib/stdlib.in.h (setenv): Test HAVE_DECL_UNSETENV, not HAVE_UNSETENV.
* m4/setenv.m4 (gl_FUNC_UNSETENV): Test whether unsetenv is declared.
Don't set HAVE_UNSETENV. In the test program, set _BSD.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_UNSETENV,
not HAVE_UNSETENV.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_UNSETENV, not
HAVE_UNSETENV.
* doc/posix-functions/unsetenv.texi: Mention the OSF/1 5.1 problem.
Bruno Haible [Sun, 19 Dec 2010 17:08:03 +0000 (18:08 +0100)]
setenv: Add missing declaration on OSF/1 5.1.
* lib/stdlib.in.h (setenv): Test HAVE_DECL_SETENV, not HAVE_SETENV.
* m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test whether setenv is
declared. Don't set HAVE_SETENV.
* m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_SETENV,
not HAVE_SETENV.
* modules/stdlib (Makefile.am): Substitute HAVE_DECL_SETENV, not
HAVE_SETENV.
* doc/posix-functions/setenv.texi: Mention the OSF/1 5.1 problem.
Bruno Haible [Sun, 19 Dec 2010 10:59:10 +0000 (11:59 +0100)]
relocatable-prog-wrapper: Separate from relocatable-prog.
* modules/relocatable-prog (Makefile.am): Define uninstall-hook and
uninstall-relocwrapper rule here.
* modules/relocatable-prog-wrapper (Makefile.am): ... not here.
Reported by Ian Beckwith <ianb@erislabs.net>.
Paul Eggert [Sun, 19 Dec 2010 06:22:43 +0000 (22:22 -0800)]
acl: port to Solaris 8 when copying from tmpfs to ufs
* lib/copy-acl.c (qcopy_acl): Also allow EINVAL as an ignorable
error number. Problem observed on Solaris 8 with latest
coreutils, with "mv A B", where A is on a tmpfs file system and B
is on a ufs file system. This caused coreutils' mv/part-symlink
test to fail.
Paul Eggert [Sun, 19 Dec 2010 03:54:27 +0000 (19:54 -0800)]
tests: set fail=0 at start
* tests/init.sh (setup_): Move fail=0 initialization here ...
(mktempd_): ... from here, so that tests can rely on fail being
set to 0 initially. This fixes a problem in coreutils; see:
http://lists.gnu.org/archive/html/coreutils/2010-12/msg00083.html
Pádraig Brady [Tue, 22 Jun 2010 23:42:54 +0000 (00:42 +0100)]
memmem: rearrange memmem and expand memmem-simple modules
Move all functional checks to memmem-simple so that one has
a fully functional memmem by using just this module.
Restrict the memmem module to performance checks only.
Document exactly how the memmem and memmem-simple modules
relate to each other.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE, gl_FUNC_MEMMEM): Move the
empty needle check from the memmem module to memmem-simple.
Also expand the empty needle check to ensure the correct
pointer is returned, not just a non NULL pointer.
In gl_FUNC_MEMMEM, make the cross compilation check only
consider the versions with performance issues.
* doc/glibc-functions/memmem.texi: Rearrange the portability
documentation to correlate with the rearranged checks.
Pádraig Brady [Wed, 15 Dec 2010 19:28:52 +0000 (20:28 +0100)]
Improve cross-compilation guesses for uClibc.
* m4/memmem.m4 (gl_FUNC_MEMMEM_SIMPLE): When cross-compiling, assume
that uClibc does not have the glibc bug.
* m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Likewise.
* m4/strstr.m4 (gl_FUNC_STRSTR_SIMPLE): Likewise.
Pádraig Brady [Mon, 13 Dec 2010 08:08:23 +0000 (08:08 +0000)]
read-file: reorganize to avoid various issues
* lib/read-file.c (fread_file): Read 1 more byte than is
currently in a regular file, to immediately detect EOF,
and thus avoid any realloc()s. As well as being slower,
these may fail, thus artificially limiting the supported size.
Allocate up to SIZE_MAX for streams, rather than limiting
to about SIZE_MAX - SIZE_MAX/5.
Don't use the 'size + BUFSIZ + 1' expression, which
could overflow and cause invalid operation.
As a style decision, explicitly check for overflow rather
than using a temporary roll over variable (new_alloc).
Eric Blake [Fri, 10 Dec 2010 22:18:38 +0000 (15:18 -0700)]
pipe-posix: new module
* modules/pipe-posix: New file.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Set default.
(gl_UNISTD_H): Check for declaration.
* modules/unistd (Makefile.am): Substitute it.
* lib/unistd.in.h (pipe): Provide it for mingw.
* doc/posix-functions/pipe.texi (pipe): Update documentation.
* MODULES.html.sh (File descriptor based Input/Output): Likewise.
Paul Eggert [Thu, 2 Dec 2010 05:25:56 +0000 (21:25 -0800)]
utimecmp: fine-grained src to nearby coarse-grained dest
* lib/utimecmp.c (utimecmp): When UTIMECMP_TRUNCATE_SOURCE is set,
and the source is on a file system with higher-resolution time
stamps, than the destination, and _PC_TIMESTAMP_RESOLUTION does
not work, and the time stamps are close together, the algorithm to
determine the exact resolution from the read-back mtime was buggy:
it had a "!=" where it should have had an "==". This bug has been
in the code ever since it was introduced to gnulib.
Problem reported by Dan Jacobson in
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7529>.
Bruno Haible [Tue, 30 Nov 2010 20:27:21 +0000 (21:27 +0100)]
getdomainname: Use the system function when possible.
* lib/unistd.in.h: Include <netdb.h>, for getdomainname's declaration.
(getdomainname): Replace if needed. Provide the declaration if it is
missing. Don't use _GL_CXXALIAS_SYS_CAST.
* lib/getdomainname.c: Include <limits.h> and <sys/systeminfo.h>.
(getdomainname): When the system has getdomainname, call the system
function. When sysinfo (SI_SRPC_DOMAIN, ...) is possible, use that.
* m4/getdomainname.m4 (gl_FUNC_GETDOMAINNAME): Require
gl_HEADER_SYS_SOCKET and gl_HEADER_NETDB. Test whether the function is
found in libnsl. Look for the declaration also in <netdb.h>. Replace
the function if its second argument is of type 'int' or if it is found
in libnsl.
(gl_PREREQ_GETDOMAINNAME): Define HAVE_GETDOMAINNAME. Check for
<sys/systeminfo.h> and sysinfo().
* modules/getdomainname (Depends-on): Add netdb, sys_socket.
* m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize
HAVE_DECL_GETDOMAINNAME and REPLACE_GETDOMAINNAME instead of
HAVE_GETDOMAINNAME.
* modules/unistd (Makefile.am): Substitute HAVE_DECL_GETDOMAINNAME and
REPLACE_GETDOMAINNAME instead of HAVE_GETDOMAINNAME.
* doc/glibc-functions/getdomainname.texi: Document the problems with
the getdomainname declaration.