coreutils/coreutils-gnulib-tests-fix-nap-race.patch
Bernhard Voelker 3e051dbc3b Accepting request 176187 from home:bernhard-voelker:branches:Base:System
- Try to fix nap() races in gnulib-tests.
  (coreutils-gnulib-tests-fix-nap-race.patch: add upstream patch)
  (coreutils-gnulib-tests-fix-nap-race-obs.patch: add openSUSE patch for OBS)

OBS-URL: https://build.opensuse.org/request/show/176187
OBS-URL: https://build.opensuse.org/package/show/Base:System/coreutils?expand=0&rev=186
2013-05-20 20:13:40 +00:00

1072 lines
40 KiB
Diff

From: Bernhard Voelker <mail@bernhard-voelker.de>
Date: Mon, 20 May 2013 00:03:20 +0200
Subject: [PATCH] gnulib-tests: utimensat-tests, etc.: try to fix some races
Some nap()-related tests often fail in OBS.
Cherry-pick the following attempt to avoid some races from
upstream gnulib:
http://git.sv.gnu.org/cgit/gnulib.git/commit/?id=5191133e
To be removed with coreutils-8.22.
---
ChangeLog | 5 +
Makefile.in | 7 +-
aclocal.m4 | 1
configure | 99 ---------------------------------
gnulib-tests/Makefile.in | 126 ++++++++++++++++++------------------------
gnulib-tests/gnulib.mk | 33 +++--------
gnulib-tests/nap.h | 113 ++++++++++++++++++++++++-------------
gnulib-tests/test-stat-time.c | 45 +--------------
gnulib-tests/test-usleep.c | 40 -------------
gnulib-tests/usleep.c | 58 -------------------
lib/config.hin | 9 ---
m4/gnulib-comp.m4 | 10 ---
m4/usleep.m4 | 45 ---------------
13 files changed, 151 insertions(+), 440 deletions(-)
delete mode 100644 gnulib-tests/test-usleep.c
delete mode 100644 gnulib-tests/usleep.c
delete mode 100644 m4/usleep.m4
Index: ChangeLog
===================================================================
--- ChangeLog.orig
+++ ChangeLog
@@ -1,3 +1,8 @@
+2013-05-17 Bernhard Voelker <mail@bernhard-voelker.de>
+
+ gnulib: cherry-pick gnulib commit 5191133e
+ utimensat-tests, etc.: try to fix some races
+
2013-02-14 Pádraig Brady <P@draigBrady.com>
version 8.21
Index: Makefile.in
===================================================================
--- Makefile.in.orig
+++ Makefile.in
@@ -346,10 +346,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/0
$(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
$(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
$(top_srcdir)/m4/uptime.m4 $(top_srcdir)/m4/userspec.m4 \
- $(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/utimbuf.m4 \
- $(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
- $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
- $(top_srcdir)/m4/vasnprintf.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimecmp.m4 \
+ $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
+ $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
$(top_srcdir)/m4/vasprintf-posix.m4 \
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
$(top_srcdir)/m4/vfprintf-posix.m4 \
Index: aclocal.m4
===================================================================
--- aclocal.m4.orig
+++ aclocal.m4
@@ -1425,7 +1425,6 @@ m4_include([m4/unlinkdir.m4])
m4_include([m4/unlocked-io.m4])
m4_include([m4/uptime.m4])
m4_include([m4/userspec.m4])
-m4_include([m4/usleep.m4])
m4_include([m4/utimbuf.m4])
m4_include([m4/utimecmp.m4])
m4_include([m4/utimens.m4])
Index: configure
===================================================================
--- configure.orig
+++ configure
@@ -3876,7 +3876,6 @@ as_fn_append ac_func_list " sleep"
as_fn_append ac_func_list " catgets"
as_fn_append ac_func_list " symlinkat"
as_fn_append ac_func_list " shutdown"
-as_fn_append ac_func_list " usleep"
as_fn_append ac_func_list " wctob"
as_fn_append ac_header_list " hurd.h"
as_fn_append ac_header_list " paths.h"
@@ -7942,8 +7941,6 @@ $as_echo "$as_me: autobuild timestamp...
# Code from module useless-if-before-free:
# Code from module userspec:
# Code from module userspec-tests:
- # Code from module usleep:
- # Code from module usleep-tests:
# Code from module utimecmp:
# Code from module utimens:
# Code from module utimens-tests:
@@ -58743,102 +58740,6 @@ $as_echo "#define UNLINK_CANNOT_UNLINK_D
abs_aux_dir=`cd "$ac_aux_dir"; pwd`
-
-
-
- ac_fn_c_check_type "$LINENO" "useconds_t" "ac_cv_type_useconds_t" "$ac_includes_default"
-if test "x$ac_cv_type_useconds_t" = xyes; then :
-
-else
-
-$as_echo "#define useconds_t unsigned int" >>confdefs.h
-
-fi
-
- if test $ac_cv_func_usleep = no; then
- HAVE_USLEEP=0
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether usleep allows large arguments" >&5
-$as_echo_n "checking whether usleep allows large arguments... " >&6; }
-if ${gl_cv_func_usleep_works+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_usleep_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_usleep_works="guessing no" ;;
- esac
-
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#include <unistd.h>
-
-int
-main ()
-{
-return !!usleep (1000000);
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- gl_cv_func_usleep_works=yes
-else
- gl_cv_func_usleep_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_usleep_works" >&5
-$as_echo "$gl_cv_func_usleep_works" >&6; }
- case "$gl_cv_func_usleep_works" in
- *yes) ;;
- *)
- REPLACE_USLEEP=1
- ;;
- esac
- fi
-
- if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then
-
-
-
-
-
-
-
-
- gltests_LIBOBJS="$gltests_LIBOBJS usleep.$ac_objext"
-
- fi
-
-
-
-
-
- if test "$GNULIB_USLEEP" != 1; then
- if test "$GNULIB_USLEEP" = 0; then
- GNULIB_USLEEP=$gl_module_indicator_condition
- else
- GNULIB_USLEEP="($GNULIB_USLEEP || $gl_module_indicator_condition)"
- fi
- fi
-
-
-
-
-
-$as_echo "#define GNULIB_TEST_USLEEP 1" >>confdefs.h
-
-
-
-
abs_aux_dir=`cd "$ac_aux_dir"; pwd`
Index: gnulib-tests/Makefile.in
===================================================================
--- gnulib-tests/Makefile.in.orig
+++ gnulib-tests/Makefile.in
@@ -198,19 +198,19 @@ TESTS = test-accept$(EXEEXT) test-file-h
test-uc_width$(EXEEXT) uniwidth/test-uc_width2.sh \
test-unlink$(EXEEXT) test-unlinkat$(EXEEXT) \
test-unsetenv$(EXEEXT) test-update-copyright.sh \
- test-userspec$(EXEEXT) test-usleep$(EXEEXT) \
- test-utimens$(EXEEXT) test-utimensat$(EXEEXT) \
- test-vasnprintf$(EXEEXT) test-vasprintf-posix$(EXEEXT) \
- test-vasprintf$(EXEEXT) test-vc-list-files-git.sh \
- test-vc-list-files-cvs.sh test-verify$(EXEEXT) test-verify.sh \
- test-version-etc.sh test-vfprintf-posix.sh \
- test-vprintf-posix.sh test-wchar$(EXEEXT) test-wcrtomb.sh \
- test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh \
- test-wcrtomb-w32-3.sh test-wcrtomb-w32-4.sh \
- test-wcrtomb-w32-5.sh test-wctype-h$(EXEEXT) \
- test-wcwidth$(EXEEXT) test-write$(EXEEXT) test-xalloc-die.sh \
- test-xprintf-posix.sh test-xstrtoimax.sh test-xstrtol.sh \
- test-xstrtoumax.sh test-xvasprintf$(EXEEXT) test-yesno.sh
+ test-userspec$(EXEEXT) test-utimens$(EXEEXT) \
+ test-utimensat$(EXEEXT) test-vasnprintf$(EXEEXT) \
+ test-vasprintf-posix$(EXEEXT) test-vasprintf$(EXEEXT) \
+ test-vc-list-files-git.sh test-vc-list-files-cvs.sh \
+ test-verify$(EXEEXT) test-verify.sh test-version-etc.sh \
+ test-vfprintf-posix.sh test-vprintf-posix.sh \
+ test-wchar$(EXEEXT) test-wcrtomb.sh test-wcrtomb-w32-1.sh \
+ test-wcrtomb-w32-2.sh test-wcrtomb-w32-3.sh \
+ test-wcrtomb-w32-4.sh test-wcrtomb-w32-5.sh \
+ test-wctype-h$(EXEEXT) test-wcwidth$(EXEEXT) \
+ test-write$(EXEEXT) test-xalloc-die.sh test-xprintf-posix.sh \
+ test-xstrtoimax.sh test-xstrtol.sh test-xstrtoumax.sh \
+ test-xvasprintf$(EXEEXT) test-yesno.sh
XFAIL_TESTS =
noinst_PROGRAMS =
check_PROGRAMS = test-accept$(EXEEXT) test-file-has-acl$(EXEEXT) \
@@ -335,19 +335,18 @@ check_PROGRAMS = test-accept$(EXEEXT) te
test-uc_width$(EXEEXT) test-uc_width2$(EXEEXT) \
test-unlink$(EXEEXT) test-unlinkat$(EXEEXT) \
test-unsetenv$(EXEEXT) test-userspec$(EXEEXT) \
- test-usleep$(EXEEXT) test-utimens$(EXEEXT) \
- test-utimensat$(EXEEXT) test-vasnprintf$(EXEEXT) \
- test-vasprintf-posix$(EXEEXT) test-vasprintf$(EXEEXT) \
- test-verify$(EXEEXT) test-version-etc$(EXEEXT) \
- test-vfprintf-posix$(EXEEXT) test-vprintf-posix$(EXEEXT) \
- test-wchar$(EXEEXT) test-wcrtomb$(EXEEXT) \
- test-wcrtomb-w32$(EXEEXT) test-wctype-h$(EXEEXT) \
- test-wcwidth$(EXEEXT) test-write$(EXEEXT) \
- test-xalloc-die$(EXEEXT) test-xfprintf-posix$(EXEEXT) \
- test-xprintf-posix$(EXEEXT) test-xstrtoimax$(EXEEXT) \
- test-xstrtol$(EXEEXT) test-xstrtoul$(EXEEXT) \
- test-xstrtoumax$(EXEEXT) test-xvasprintf$(EXEEXT) \
- test-yesno$(EXEEXT)
+ test-utimens$(EXEEXT) test-utimensat$(EXEEXT) \
+ test-vasnprintf$(EXEEXT) test-vasprintf-posix$(EXEEXT) \
+ test-vasprintf$(EXEEXT) test-verify$(EXEEXT) \
+ test-version-etc$(EXEEXT) test-vfprintf-posix$(EXEEXT) \
+ test-vprintf-posix$(EXEEXT) test-wchar$(EXEEXT) \
+ test-wcrtomb$(EXEEXT) test-wcrtomb-w32$(EXEEXT) \
+ test-wctype-h$(EXEEXT) test-wcwidth$(EXEEXT) \
+ test-write$(EXEEXT) test-xalloc-die$(EXEEXT) \
+ test-xfprintf-posix$(EXEEXT) test-xprintf-posix$(EXEEXT) \
+ test-xstrtoimax$(EXEEXT) test-xstrtol$(EXEEXT) \
+ test-xstrtoul$(EXEEXT) test-xstrtoumax$(EXEEXT) \
+ test-xvasprintf$(EXEEXT) test-yesno$(EXEEXT)
@POSIX_SPAWN_PORTED_TRUE@am__append_1 = test-posix_spawn1 test-posix_spawn2
@POSIX_SPAWN_PORTED_TRUE@am__append_2 = test-posix_spawn1 test-posix_spawn2
@POSIX_SPAWN_PORTED_TRUE@am__append_3 = test-posix_spawn1.sh \
@@ -553,10 +552,9 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/0
$(top_srcdir)/m4/unlink.m4 $(top_srcdir)/m4/unlinkat.m4 \
$(top_srcdir)/m4/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
$(top_srcdir)/m4/uptime.m4 $(top_srcdir)/m4/userspec.m4 \
- $(top_srcdir)/m4/usleep.m4 $(top_srcdir)/m4/utimbuf.m4 \
- $(top_srcdir)/m4/utimecmp.m4 $(top_srcdir)/m4/utimens.m4 \
- $(top_srcdir)/m4/utimensat.m4 $(top_srcdir)/m4/utimes.m4 \
- $(top_srcdir)/m4/vasnprintf.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimecmp.m4 \
+ $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimensat.m4 \
+ $(top_srcdir)/m4/utimes.m4 $(top_srcdir)/m4/vasnprintf.m4 \
$(top_srcdir)/m4/vasprintf-posix.m4 \
$(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
$(top_srcdir)/m4/vfprintf-posix.m4 \
@@ -693,9 +691,7 @@ test_chdir_DEPENDENCIES = libtests.a ../
$(am__DEPENDENCIES_1)
test_chown_SOURCES = test-chown.c
test_chown_OBJECTS = test-chown.$(OBJEXT)
-test_chown_LDADD = $(LDADD)
-test_chown_DEPENDENCIES = libtests.a ../lib/libcoreutils.a libtests.a \
- $(am__DEPENDENCIES_1)
+test_chown_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
test_cloexec_SOURCES = test-cloexec.c
test_cloexec_OBJECTS = test-cloexec.$(OBJEXT)
test_cloexec_LDADD = $(LDADD)
@@ -784,7 +780,8 @@ test_fchmodat_OBJECTS = test-fchmodat.$(
test_fchmodat_DEPENDENCIES = $(am__DEPENDENCIES_2)
test_fchownat_SOURCES = test-fchownat.c
test_fchownat_OBJECTS = test-fchownat.$(OBJEXT)
-test_fchownat_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_fchownat_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_1)
test_fclose_SOURCES = test-fclose.c
test_fclose_OBJECTS = test-fclose.$(OBJEXT)
test_fclose_LDADD = $(LDADD)
@@ -820,7 +817,7 @@ test_fdopendir_DEPENDENCIES = $(am__DEPE
test_fdutimensat_SOURCES = test-fdutimensat.c
test_fdutimensat_OBJECTS = test-fdutimensat.$(OBJEXT)
test_fdutimensat_DEPENDENCIES = $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
test_fflush_SOURCES = test-fflush.c
test_fflush_OBJECTS = test-fflush.$(OBJEXT)
test_fflush_LDADD = $(LDADD)
@@ -1005,7 +1002,7 @@ test_ftruncate_DEPENDENCIES = libtests.a
test_futimens_SOURCES = test-futimens.c
test_futimens_OBJECTS = test-futimens.$(OBJEXT)
test_futimens_DEPENDENCIES = $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
test_fwrite_SOURCES = test-fwrite.c
test_fwrite_OBJECTS = test-fwrite.$(OBJEXT)
test_fwrite_LDADD = $(LDADD)
@@ -1156,9 +1153,7 @@ test_langinfo_DEPENDENCIES = libtests.a
libtests.a $(am__DEPENDENCIES_1)
test_lchown_SOURCES = test-lchown.c
test_lchown_OBJECTS = test-lchown.$(OBJEXT)
-test_lchown_LDADD = $(LDADD)
-test_lchown_DEPENDENCIES = libtests.a ../lib/libcoreutils.a libtests.a \
- $(am__DEPENDENCIES_1)
+test_lchown_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
test_link_SOURCES = test-link.c
test_link_OBJECTS = test-link.$(OBJEXT)
test_link_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -1564,9 +1559,8 @@ test_stat_OBJECTS = test-stat.$(OBJEXT)
test_stat_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
test_stat_time_SOURCES = test-stat-time.c
test_stat_time_OBJECTS = test-stat-time.$(OBJEXT)
-test_stat_time_LDADD = $(LDADD)
-test_stat_time_DEPENDENCIES = libtests.a ../lib/libcoreutils.a \
- libtests.a $(am__DEPENDENCIES_1)
+test_stat_time_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+ $(am__DEPENDENCIES_1)
test_statat_SOURCES = test-statat.c
test_statat_OBJECTS = test-statat.$(OBJEXT)
test_statat_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -1787,19 +1781,14 @@ test_unsetenv_DEPENDENCIES = libtests.a
test_userspec_SOURCES = test-userspec.c
test_userspec_OBJECTS = test-userspec.$(OBJEXT)
test_userspec_DEPENDENCIES = $(am__DEPENDENCIES_2)
-test_usleep_SOURCES = test-usleep.c
-test_usleep_OBJECTS = test-usleep.$(OBJEXT)
-test_usleep_LDADD = $(LDADD)
-test_usleep_DEPENDENCIES = libtests.a ../lib/libcoreutils.a libtests.a \
- $(am__DEPENDENCIES_1)
test_utimens_SOURCES = test-utimens.c
test_utimens_OBJECTS = test-utimens.$(OBJEXT)
test_utimens_DEPENDENCIES = $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
test_utimensat_SOURCES = test-utimensat.c
test_utimensat_OBJECTS = test-utimensat.$(OBJEXT)
test_utimensat_DEPENDENCIES = $(am__DEPENDENCIES_2) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
test_vasnprintf_SOURCES = test-vasnprintf.c
test_vasnprintf_OBJECTS = test-vasnprintf.$(OBJEXT)
test_vasnprintf_LDADD = $(LDADD)
@@ -1990,7 +1979,7 @@ SOURCES = $(libtests_a_SOURCES) $(EXTRA_
$(test_u8_mbtoucr_SOURCES) $(test_u8_uctomb_SOURCES) \
$(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
test-uname.c test-unistd.c test-unlink.c test-unlinkat.c \
- test-unsetenv.c test-userspec.c test-usleep.c test-utimens.c \
+ test-unsetenv.c test-userspec.c test-utimens.c \
test-utimensat.c test-vasnprintf.c test-vasprintf.c \
test-vasprintf-posix.c test-verify.c test-version-etc.c \
test-vfprintf-posix.c test-vprintf-posix.c test-wchar.c \
@@ -2077,7 +2066,7 @@ DIST_SOURCES = $(libtests_a_SOURCES) $(E
$(test_u8_mbtoucr_SOURCES) $(test_u8_uctomb_SOURCES) \
$(test_uc_width_SOURCES) $(test_uc_width2_SOURCES) \
test-uname.c test-unistd.c test-unlink.c test-unlinkat.c \
- test-unsetenv.c test-userspec.c test-usleep.c test-utimens.c \
+ test-unsetenv.c test-userspec.c test-utimens.c \
test-utimensat.c test-vasnprintf.c test-vasprintf.c \
test-vasprintf-posix.c test-verify.c test-version-etc.c \
test-vfprintf-posix.c test-vprintf-posix.c test-wchar.c \
@@ -3725,7 +3714,7 @@ EXTRA_DIST = accept.c w32sock.h test-acc
test-spawn-pipe.sh test-spawn-pipe-main.c \
test-spawn-pipe-child.c macros.h test-spawn.c test-stat.h \
test-stat.c signature.h macros.h test-stat-time.c macros.h \
- test-statat.c test-stdalign.c macros.h test-stdbool.c \
+ nap.h test-statat.c test-stdalign.c macros.h test-stdbool.c \
test-stddef.c test-stdint.c test-stdio.c test-stdlib.c \
test-sys_wait.h test-strchrnul.c signature.h macros.h \
test-strerror.c signature.h macros.h strerror_r.c \
@@ -3753,10 +3742,9 @@ EXTRA_DIST = accept.c w32sock.h test-acc
test-unlink.c signature.h macros.h test-unlinkat.c \
test-rmdir.h test-unlink.h signature.h macros.h unlinkdir.h \
test-unsetenv.c signature.h macros.h test-update-copyright.sh \
- test-userspec.c usleep.c test-usleep.c signature.h macros.h \
- nap.h test-futimens.h test-lutimens.h test-utimens.h \
- test-utimens-common.h test-utimens.c macros.h nap.h \
- test-lutimens.h test-utimens.h test-utimens-common.h \
+ test-userspec.c nap.h test-futimens.h test-lutimens.h \
+ test-utimens.h test-utimens-common.h test-utimens.c macros.h \
+ nap.h test-lutimens.h test-utimens.h test-utimens-common.h \
test-utimensat.c signature.h macros.h test-vasnprintf.c \
macros.h test-vasprintf-posix.c minus-zero.h infinity.h nan.h \
macros.h test-vasprintf.c signature.h macros.h \
@@ -3827,8 +3815,8 @@ libtests_a_LIBADD = $(gltests_LIBOBJS)
libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
EXTRA_libtests_a_SOURCES = accept.c bind.c connect.c inet_pton.c \
ioctl.c listen.c perror.c pipe.c setlocale.c setsockopt.c \
- sleep.c socket.c strerror_r.c at-func.c symlinkat.c usleep.c \
- wctob.c wctomb.c
+ sleep.c socket.c strerror_r.c at-func.c symlinkat.c wctob.c \
+ wctomb.c
AM_LIBTOOLFLAGS = --preserve-dup-deps
test_accept_LDADD = $(LDADD) @LIBSOCKET@
test_file_has_acl_LDADD = $(LDADD) $(LIB_ACL)
@@ -3839,6 +3827,7 @@ test_areadlinkat_LDADD = $(LDADD) @LIBIN
test_argmatch_LDADD = $(LDADD) @LIBINTL@
test_bind_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
test_canonicalize_LDADD = $(LDADD) @LIBINTL@
+test_chown_LDADD = $(LDADD) $(LIB_NANOSLEEP)
test_closein_LDADD = $(LDADD) @LIBINTL@
test_connect_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
# Link with libintl when needed. dirent-safer uses fdopendir if it is present,
@@ -3849,15 +3838,17 @@ test_exclude_LDADD = $(LDADD) @LIBINTL@
test_faccessat_LDADD = $(LDADD) $(LIB_EACCESS) @LIBINTL@
test_fchdir_LDADD = $(LDADD) $(LIBINTL)
test_fchmodat_LDADD = $(LDADD) @LIBINTL@
-test_fchownat_LDADD = $(LDADD) @LIBINTL@
+test_fchownat_LDADD = $(LDADD) $(LIB_NANOSLEEP) @LIBINTL@
test_fdatasync_LDADD = $(LDADD) $(LIB_FDATASYNC)
test_fdopendir_LDADD = $(LDADD) @LIBINTL@
-test_fdutimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_fdutimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) \
+ $(LIB_NANOSLEEP) @LIBINTL@
+
test_filenamecat_LDADD = $(LDADD) @LIBINTL@
test_frexp_nolibm_SOURCES = test-frexp.c randomd.c
test_frexpl_nolibm_SOURCES = test-frexpl.c randoml.c
test_fstatat_LDADD = $(LDADD) @LIBINTL@
-test_futimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_futimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) @LIBINTL@
test_getaddrinfo_LDADD = $(LDADD) @GETADDRINFO_LIB@ @LIBINTL@
test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL)
test_getcwd_LDADD = $(LDADD) @LIBINTL@
@@ -3867,6 +3858,7 @@ test_getopt_LDADD = $(LDADD) $(LIBINTL)
test_iconv_LDADD = $(LDADD) @LIBICONV@
test_inet_ntop_LDADD = $(LDADD) @INET_NTOP_LIB@
test_inet_pton_LDADD = $(LDADD) @INET_PTON_LIB@
+test_lchown_LDADD = $(LDADD) $(LIB_NANOSLEEP)
test_link_LDADD = $(LDADD) @LIBINTL@
test_linkat_LDADD = $(LDADD) @LIBINTL@
test_listen_LDADD = $(LDADD) @LIBSOCKET@
@@ -3902,6 +3894,7 @@ test_spawn_pipe_main_LDADD = $(LDADD) @L
# Therefore don't link it against any libraries other than -lc.
test_spawn_pipe_child_LDADD =
test_stat_LDADD = $(LDADD) $(LIBINTL)
+test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP)
test_statat_LDADD = $(LDADD) @LIBINTL@
test_striconv_LDADD = $(LDADD) @LIBICONV@
test_strsignal_LDADD = $(LDADD) @LIBINTL@ $(LIBTHREAD)
@@ -3920,8 +3913,8 @@ test_uc_width2_SOURCES = uniwidth/test-u
test_uc_width2_LDADD = $(LDADD) $(LIBUNISTRING)
test_unlinkat_LDADD = $(LDADD) @LIBINTL@
test_userspec_LDADD = $(LDADD) @LIBINTL@
-test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
-test_utimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) @LIBINTL@
+test_utimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) @LIBINTL@
test_version_etc_LDADD = $(LDADD) @LIBINTL@
test_xalloc_die_LDADD = $(LDADD) @LIBINTL@
test_xfprintf_posix_LDADD = $(LDADD) @LIBINTL@
@@ -4893,9 +4886,6 @@ test-unsetenv$(EXEEXT): $(test_unsetenv_
test-userspec$(EXEEXT): $(test_userspec_OBJECTS) $(test_userspec_DEPENDENCIES) $(EXTRA_test_userspec_DEPENDENCIES)
@rm -f test-userspec$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_userspec_OBJECTS) $(test_userspec_LDADD) $(LIBS)
-test-usleep$(EXEEXT): $(test_usleep_OBJECTS) $(test_usleep_DEPENDENCIES) $(EXTRA_test_usleep_DEPENDENCIES)
- @rm -f test-usleep$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(test_usleep_OBJECTS) $(test_usleep_LDADD) $(LIBS)
test-utimens$(EXEEXT): $(test_utimens_OBJECTS) $(test_utimens_DEPENDENCIES) $(EXTRA_test_utimens_DEPENDENCIES)
@rm -f test-utimens$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(test_utimens_OBJECTS) $(test_utimens_LDADD) $(LIBS)
@@ -5252,7 +5242,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unlinkat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-userspec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-usleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-utimens.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-utimensat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vasnprintf.Po@am__quote@
@@ -5280,7 +5269,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_tls-test-tls.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_xvasprintf-test-xvasprintf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlinkdir.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usleep.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/thread.Po@am__quote@
@@ -6223,8 +6211,6 @@ test-update-copyright.sh.log: test-updat
@p='test-update-copyright.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
test-userspec.log: test-userspec$(EXEEXT)
@p='test-userspec$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
-test-usleep.log: test-usleep$(EXEEXT)
- @p='test-usleep$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
test-utimens.log: test-utimens$(EXEEXT)
@p='test-utimens$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
test-utimensat.log: test-utimensat$(EXEEXT)
Index: gnulib-tests/gnulib.mk
===================================================================
--- gnulib-tests/gnulib.mk.orig
+++ gnulib-tests/gnulib.mk
@@ -261,6 +261,7 @@ EXTRA_DIST += test-chdir.c signature.h m
TESTS += test-chown
check_PROGRAMS += test-chown
+test_chown_LDADD = $(LDADD) $(LIB_NANOSLEEP)
EXTRA_DIST += nap.h test-chown.h test-chown.c signature.h macros.h
## end gnulib module chown-tests
@@ -459,7 +460,7 @@ EXTRA_DIST += test-fchmodat.c signature.
TESTS += test-fchownat
check_PROGRAMS += test-fchownat
-test_fchownat_LDADD = $(LDADD) @LIBINTL@
+test_fchownat_LDADD = $(LDADD) $(LIB_NANOSLEEP) @LIBINTL@
EXTRA_DIST += nap.h test-chown.h test-lchown.h test-fchownat.c signature.h macros.h
## end gnulib module fchownat-tests
@@ -526,7 +527,8 @@ EXTRA_DIST += test-fdopendir.c signature
TESTS += test-fdutimensat
check_PROGRAMS += test-fdutimensat
-test_fdutimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_fdutimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) \
+ $(LIB_NANOSLEEP) @LIBINTL@
EXTRA_DIST += nap.h test-futimens.h test-lutimens.h test-utimens.h test-utimens-common.h test-fdutimensat.c macros.h
## end gnulib module fdutimensat-tests
@@ -780,7 +782,7 @@ EXTRA_DIST += test-ftruncate.c test-ftru
TESTS += test-futimens
check_PROGRAMS += test-futimens
-test_futimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_futimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) @LIBINTL@
EXTRA_DIST += nap.h test-futimens.h test-utimens-common.h test-futimens.c signature.h macros.h
## end gnulib module futimens-tests
@@ -1104,6 +1106,7 @@ EXTRA_DIST += test-langinfo.c
TESTS += test-lchown
check_PROGRAMS += test-lchown
+test_lchown_LDADD = $(LDADD) $(LIB_NANOSLEEP)
EXTRA_DIST += nap.h test-lchown.h test-lchown.c signature.h macros.h
## end gnulib module lchown-tests
@@ -1963,7 +1966,8 @@ EXTRA_DIST += test-stat.h test-stat.c si
TESTS += test-stat-time
check_PROGRAMS += test-stat-time
-EXTRA_DIST += test-stat-time.c macros.h
+test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP)
+EXTRA_DIST += test-stat-time.c macros.h nap.h
## end gnulib module stat-time-tests
@@ -2419,28 +2423,11 @@ EXTRA_DIST += test-userspec.c
## end gnulib module userspec-tests
-## begin gnulib module usleep
-
-
-EXTRA_DIST += usleep.c
-
-EXTRA_libtests_a_SOURCES += usleep.c
-
-## end gnulib module usleep
-
-## begin gnulib module usleep-tests
-
-TESTS += test-usleep
-check_PROGRAMS += test-usleep
-EXTRA_DIST += test-usleep.c signature.h macros.h
-
-## end gnulib module usleep-tests
-
## begin gnulib module utimens-tests
TESTS += test-utimens
check_PROGRAMS += test-utimens
-test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_utimens_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) @LIBINTL@
EXTRA_DIST += nap.h test-futimens.h test-lutimens.h test-utimens.h test-utimens-common.h test-utimens.c macros.h
## end gnulib module utimens-tests
@@ -2449,7 +2436,7 @@ EXTRA_DIST += nap.h test-futimens.h test
TESTS += test-utimensat
check_PROGRAMS += test-utimensat
-test_utimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) @LIBINTL@
+test_utimensat_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME) $(LIB_NANOSLEEP) @LIBINTL@
EXTRA_DIST += nap.h test-lutimens.h test-utimens.h test-utimens-common.h test-utimensat.c signature.h macros.h
## end gnulib module utimensat-tests
Index: gnulib-tests/nap.h
===================================================================
--- gnulib-tests/nap.h.orig
+++ gnulib-tests/nap.h
@@ -19,19 +19,33 @@
#ifndef GLTEST_NAP_H
# define GLTEST_NAP_H
+# include <limits.h>
+
+/* Return A - B, in ns.
+ Return 0 if the true result would be negative.
+ Return INT_MAX if the true result would be greater than INT_MAX. */
static int
-lt_mtime (struct stat const *a, struct stat const *b)
+diff_timespec (struct timespec a, struct timespec b)
{
- time_t as = a->st_mtime;
- time_t bs = b->st_mtime;
- int ans = get_stat_mtime_ns (a);
- int bns = get_stat_mtime_ns (b);
+ time_t as = a.tv_sec;
+ time_t bs = b.tv_sec;
+ int ans = a.tv_nsec;
+ int bns = b.tv_nsec;
- return as < bs || (as == bs && ans < bns);
+ if (! (bs < as || (bs == as && bns < ans)))
+ return 0;
+ if (as - bs <= INT_MAX / 1000000000)
+ {
+ int sdiff = (as - bs) * 1000000000;
+ int usdiff = ans - bns;
+ if (usdiff < INT_MAX - sdiff)
+ return sdiff + usdiff;
+ }
+ return INT_MAX;
}
static void
-get_mtime (int fd, struct stat *st, int do_write)
+get_stat (int fd, struct stat *st, int do_write)
{
if (do_write)
ASSERT (write (fd, "\n", 1) == 1);
@@ -39,50 +53,61 @@ get_mtime (int fd, struct stat *st, int
}
/* Given a file whose descriptor is FD, see whether delaying by DELAY
- microseconds causes a change in a file's time stamp. If the time
- stamps differ, repeat the test one more time, in case we crossed a
- quantization boundary on a file system with lower resolution. *ST
- is the file's status, recently gotten. Update *ST to reflect the
- latest status gotten. */
+ nanoseconds causes a change in a file's time stamp. *ST is the
+ file's status, recently gotten. Update *ST to reflect the latest
+ status gotten. If successful, return the needed delay, in
+ nanoseconds as determined by the observed time stamps; this may be
+ greater than DELAY if we crossed a quantization boundary. If
+ unsuccessful, return 0. */
static int
nap_works (int fd, int delay, struct stat *st)
{
- struct stat old_st;
- old_st = *st;
- usleep (delay);
- get_mtime (fd, st, 1);
- if (! lt_mtime (&old_st, st))
- return 0;
- old_st = *st;
- usleep (delay);
- get_mtime (fd, st, 1);
- return lt_mtime (&old_st, st);
+ struct stat old_st = *st;
+ struct timespec delay_spec;
+ int cdiff, mdiff;
+ delay_spec.tv_sec = delay / 1000000000;
+ delay_spec.tv_nsec = delay % 1000000000;
+ ASSERT (nanosleep (&delay_spec, 0) == 0);
+ get_stat (fd, st, 1);
+
+ /* Return the greater of the ctime and the mtime differences, or
+ zero if it cannot be determined, or INT_MAX if either overflows. */
+ cdiff = diff_timespec (get_stat_ctime (st), get_stat_ctime (&old_st));
+ if (cdiff != 0)
+ {
+ mdiff = diff_timespec (get_stat_mtime (st), get_stat_mtime (&old_st));
+ if (mdiff != 0)
+ return cdiff < mdiff ? mdiff : cdiff;
+ }
+ return 0;
}
static int
guess_delay (void)
{
- /* Try a 1-microsecond sleep first, for speed. If that doesn't
- work, try a 1 ms sleep; that should work with ext. If it doesn't
- work, try a 20 ms sleep. xfs has a quantization of about 10
+ /* Try a 1-ns sleep first, for speed. If that doesn't work, try 100
+ ns, 1 microsecond, 1 ms, etc. xfs has a quantization of about 10
milliseconds, even though it has a granularity of 1 nanosecond,
and NTFS has a default quantization of 15.25 milliseconds, even
- though it has a granularity of 100 nanoseconds, so 20 ms is a
+ though it has a granularity of 100 nanoseconds, so 15.25 ms is a
good quantization to try. If that doesn't work, try 1 second.
The worst case is 2 seconds, needed for FAT. */
- static int const delaytab[] = {1, 1000, 20000, 1000000 };
+ static int const delaytab[] = {1, 1000, 1000000, 15250000, 1000000000 };
int fd = creat (BASE "tmp", 0600);
int i;
- int delay = 2000000;
+ int delay = 2000000000;
struct stat st;
ASSERT (0 <= fd);
- get_mtime (fd, &st, 0);
+ get_stat (fd, &st, 0);
for (i = 0; i < sizeof delaytab / sizeof delaytab[0]; i++)
- if (nap_works (fd, delaytab[i], &st))
- {
- delay = delaytab[i];
- break;
- }
+ {
+ int d = nap_works (fd, delaytab[i], &st);
+ if (d != 0)
+ {
+ delay = d;
+ break;
+ }
+ }
ASSERT (close (fd) == 0);
ASSERT (unlink (BASE "tmp") == 0);
return delay;
@@ -90,14 +115,24 @@ guess_delay (void)
/* Sleep long enough to notice a timestamp difference on the file
system in the current directory. Assumes that BASE is defined,
- and requires that the test module depends on usleep. */
+ and requires that the test module depends on nanosleep. */
static void
nap (void)
{
- static int delay;
- if (!delay)
- delay = guess_delay ();
- usleep (delay);
+ static struct timespec delay;
+ if (!delay.tv_sec && !delay.tv_nsec)
+ {
+ int d = guess_delay ();
+
+ /* Multiply by 1.125 (rounding up), to avoid problems if the
+ file system's clock is a bit slower than nanosleep's.
+ Ceiling it at INT_MAX, though. */
+ int delta = (d >> 3) + ((d & 7) != 0);
+ d = delta < INT_MAX - d ? d + delta : INT_MAX;
+ delay.tv_sec = d / 1000000000;
+ delay.tv_nsec = d % 1000000000;
+ }
+ ASSERT (nanosleep (&delay, 0) == 0);
}
#endif /* GLTEST_NAP_H */
Index: gnulib-tests/test-stat-time.c
===================================================================
--- gnulib-tests/test-stat-time.c.orig
+++ gnulib-tests/test-stat-time.c
@@ -27,6 +27,9 @@
#include "macros.h"
+#define BASE "test-stat-time.t"
+#include "nap.h"
+
enum { NFILES = 4 };
static int
@@ -79,48 +82,6 @@ do_stat (const char *filename, struct st
ASSERT (stat (filename, p) == 0);
}
-/* Sleep long enough to notice a timestamp difference on the file
- system in the current directory. */
-static void
-nap (void)
-{
- static long delay;
- if (!delay)
- {
- /* Initialize only once, by sleeping for 20 milliseconds (needed
- since xfs has a quantization of about 10 milliseconds, even
- though it has a granularity of 1 nanosecond, and since NTFS
- has a default quantization of 15.25 milliseconds, even though
- it has a granularity of 100 nanoseconds). If the seconds
- differ, repeat the test one more time (in case we crossed a
- quantization boundary on a file system with 1 second
- resolution). If we can't observe a difference in only the
- nanoseconds, then fall back to 1 second if the time is odd,
- and 2 seconds (needed for FAT) if time is even. */
- struct stat st1;
- struct stat st2;
- ASSERT (stat ("t-stt-stamp1", &st1) == 0);
- ASSERT (force_unlink ("t-stt-stamp1") == 0);
- delay = 20000;
- usleep (delay);
- create_file ("t-stt-stamp1");
- ASSERT (stat ("t-stt-stamp1", &st2) == 0);
- if (st1.st_mtime != st2.st_mtime)
- {
- /* Seconds differ, give it one more shot. */
- st1 = st2;
- ASSERT (force_unlink ("t-stt-stamp1") == 0);
- usleep (delay);
- create_file ("t-stt-stamp1");
- ASSERT (stat ("t-stt-stamp1", &st2) == 0);
- }
- if (! (st1.st_mtime == st2.st_mtime
- && get_stat_mtime_ns (&st1) < get_stat_mtime_ns (&st2)))
- delay = (st1.st_mtime & 1) ? 1000000 : 2000000;
- }
- usleep (delay);
-}
-
static void
prepare_test (struct stat *statinfo, struct timespec *modtimes)
{
Index: gnulib-tests/test-usleep.c
===================================================================
--- gnulib-tests/test-usleep.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Test of usleep() function.
- Copyright (C) 2009-2013 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* Written by Eric Blake <ebb9@byu.net>, 2009. */
-
-#include <config.h>
-
-#include <unistd.h>
-
-#include "signature.h"
-SIGNATURE_CHECK (usleep, int, (useconds_t));
-
-#include <time.h>
-
-#include "macros.h"
-
-int
-main (void)
-{
- time_t start = time (NULL);
- ASSERT (usleep (1000000) == 0);
- ASSERT (start < time (NULL));
-
- ASSERT (usleep (0) == 0);
-
- return 0;
-}
Index: gnulib-tests/usleep.c
===================================================================
--- gnulib-tests/usleep.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Pausing execution of the current thread.
- Copyright (C) 2009-2013 Free Software Foundation, Inc.
- Written by Eric Blake <ebb9@byu.net>, 2009.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* This file is _intentionally_ light-weight. Rather than using
- select or nanosleep, both of which drag in external libraries on
- some platforms, this merely rounds up to the nearest second if
- usleep() does not exist. If sub-second resolution is important,
- then use a more powerful interface to begin with. */
-
-#include <config.h>
-
-/* Specification. */
-#include <unistd.h>
-
-#include <errno.h>
-
-#ifndef HAVE_USLEEP
-# define HAVE_USLEEP 0
-#endif
-
-/* Sleep for MICRO microseconds, which can be greater than 1 second.
- Return -1 and set errno to EINVAL on range error (about 4295
- seconds), or 0 on success. Interaction with SIGALARM is
- unspecified. */
-
-int
-usleep (useconds_t micro)
-{
- unsigned int seconds = micro / 1000000;
- if (sizeof seconds < sizeof micro && micro / 1000000 != seconds)
- {
- errno = EINVAL;
- return -1;
- }
- if (!HAVE_USLEEP && micro % 1000000)
- seconds++;
- while ((seconds = sleep (seconds)) != 0);
-
-#undef usleep
-#if !HAVE_USLEEP
-# define usleep(x) 0
-#endif
- return usleep (micro % 1000000);
-}
Index: lib/config.hin
===================================================================
--- lib/config.hin.orig
+++ lib/config.hin
@@ -735,9 +735,6 @@
/* Define to 1 when the gnulib module unsetenv should be tested. */
#undef GNULIB_TEST_UNSETENV
-/* Define to 1 when the gnulib module usleep should be tested. */
-#undef GNULIB_TEST_USLEEP
-
/* Define to 1 when the gnulib module utimensat should be tested. */
#undef GNULIB_TEST_UTIMENSAT
@@ -2387,9 +2384,6 @@
/* Define to 1 if you have the `uselocale' function. */
#undef HAVE_USELOCALE
-/* Define to 1 if you have the `usleep' function. */
-#undef HAVE_USLEEP
-
/* Define to 1 if you have the `utimensat' function. */
#undef HAVE_UTIMENSAT
@@ -3348,9 +3342,6 @@
#endif
-/* Define to an unsigned 32-bit type if <sys/types.h> lacks this type. */
-#undef useconds_t
-
/* Define as a macro for copying va_list variables. */
#undef va_copy
Index: m4/gnulib-comp.m4
===================================================================
--- m4/gnulib-comp.m4.orig
+++ m4/gnulib-comp.m4
@@ -741,8 +741,6 @@ AC_DEFUN([gl_EARLY],
# Code from module useless-if-before-free:
# Code from module userspec:
# Code from module userspec-tests:
- # Code from module usleep:
- # Code from module usleep-tests:
# Code from module utimecmp:
# Code from module utimens:
# Code from module utimens-tests:
@@ -2255,11 +2253,6 @@ changequote([, ])dnl
gl_UNLINKDIR
abs_aux_dir=`cd "$ac_aux_dir"; pwd`
AC_SUBST([abs_aux_dir])
- gl_FUNC_USLEEP
- if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then
- AC_LIBOBJ([usleep])
- fi
- gl_UNISTD_MODULE_INDICATOR([usleep])
AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
abs_aux_dir=`cd "$ac_aux_dir"; pwd`
AC_SUBST([abs_aux_dir])
@@ -3436,7 +3429,6 @@ AC_DEFUN([gl_FILE_LIST], [
m4/unlocked-io.m4
m4/uptime.m4
m4/userspec.m4
- m4/usleep.m4
m4/utimbuf.m4
m4/utimecmp.m4
m4/utimens.m4
@@ -3839,7 +3831,6 @@ AC_DEFUN([gl_FILE_LIST], [
tests/test-unsetenv.c
tests/test-update-copyright.sh
tests/test-userspec.c
- tests/test-usleep.c
tests/test-utimens-common.h
tests/test-utimens.c
tests/test-utimens.h
@@ -3913,7 +3904,6 @@ AC_DEFUN([gl_FILE_LIST], [
tests=lib/symlinkat.c
tests=lib/unlinkdir.c
tests=lib/unlinkdir.h
- tests=lib/usleep.c
tests=lib/w32sock.h
tests=lib/wctob.c
tests=lib/wctomb-impl.h
Index: m4/usleep.m4
===================================================================
--- m4/usleep.m4
+++ /dev/null
@@ -1,45 +0,0 @@
-# usleep.m4 serial 3
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This macro intentionally does not check for select or nanosleep;
-dnl both of those modules can require external libraries.
-AC_DEFUN([gl_FUNC_USLEEP],
-[
- AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
- dnl usleep was required in POSIX 2001, but dropped as obsolete in
- dnl POSIX 2008; therefore, it is not always exposed in headers.
- AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- AC_CHECK_FUNCS_ONCE([usleep])
- AC_CHECK_TYPE([useconds_t], [],
- [AC_DEFINE([useconds_t], [unsigned int], [Define to an unsigned 32-bit
- type if <sys/types.h> lacks this type.])])
- if test $ac_cv_func_usleep = no; then
- HAVE_USLEEP=0
- else
- dnl POSIX allows implementations to reject arguments larger than
- dnl 999999, but GNU guarantees it will work.
- AC_CACHE_CHECK([whether usleep allows large arguments],
- [gl_cv_func_usleep_works],
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <unistd.h>
-]], [[return !!usleep (1000000);]])],
- [gl_cv_func_usleep_works=yes], [gl_cv_func_usleep_works=no],
- [case "$host_os" in
- # Guess yes on glibc systems.
- *-gnu*) gl_cv_func_usleep_works="guessing yes" ;;
- # If we don't know, assume the worst.
- *) gl_cv_func_usleep_works="guessing no" ;;
- esac
- ])])
- case "$gl_cv_func_usleep_works" in
- *yes) ;;
- *)
- REPLACE_USLEEP=1
- ;;
- esac
- fi
-])