[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commits] r21337 - in /fsf/trunk/libc: ./ catgets/ elf/ grp/ iconv/ iconvdata/ include/ intl/ io/ libio/ localedata/ malloc/ misc/ npt...



Author: eglibc
Date: Thu Oct 25 00:02:08 2012
New Revision: 21337

Log:
Import glibc-mainline for 2012-10-25

Added:
    fsf/trunk/libc/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c
    fsf/trunk/libc/rt/clock-compat.c
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/Makeconfig
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/Rules
    fsf/trunk/libc/catgets/Makefile
    fsf/trunk/libc/config.h.in
    fsf/trunk/libc/configure
    fsf/trunk/libc/configure.in
    fsf/trunk/libc/elf/Makefile
    fsf/trunk/libc/elf/tst-pathopt.sh
    fsf/trunk/libc/elf/tst-rtld-load-self.sh
    fsf/trunk/libc/grp/Makefile
    fsf/trunk/libc/iconv/Makefile
    fsf/trunk/libc/iconvdata/Makefile
    fsf/trunk/libc/iconvdata/run-iconv-test.sh
    fsf/trunk/libc/include/time.h
    fsf/trunk/libc/intl/Makefile
    fsf/trunk/libc/io/Makefile
    fsf/trunk/libc/io/fcntl.h
    fsf/trunk/libc/io/ftwtest-sh
    fsf/trunk/libc/libio/Makefile
    fsf/trunk/libc/localedata/ChangeLog
    fsf/trunk/libc/localedata/Makefile
    fsf/trunk/libc/malloc/Makefile
    fsf/trunk/libc/misc/Makefile
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/Makefile
    fsf/trunk/libc/nptl/tst-oddstacklimit.c
    fsf/trunk/libc/nptl/tst-tls6.sh
    fsf/trunk/libc/nscd/Makefile
    fsf/trunk/libc/ports/ChangeLog.alpha
    fsf/trunk/libc/ports/ChangeLog.arm
    fsf/trunk/libc/ports/ChangeLog.hppa
    fsf/trunk/libc/ports/ChangeLog.ia64
    fsf/trunk/libc/ports/ChangeLog.m68k
    fsf/trunk/libc/ports/ChangeLog.mips
    fsf/trunk/libc/ports/ChangeLog.powerpc
    fsf/trunk/libc/ports/ChangeLog.tile
    fsf/trunk/libc/ports/sysdeps/hppa/nptl/Makefile
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
    fsf/trunk/libc/posix/Makefile
    fsf/trunk/libc/posix/globtest.sh
    fsf/trunk/libc/resolv/Makefile
    fsf/trunk/libc/rt/Makefile
    fsf/trunk/libc/rt/Versions
    fsf/trunk/libc/rt/clock_getcpuclockid.c
    fsf/trunk/libc/rt/clock_getres.c
    fsf/trunk/libc/rt/clock_gettime.c
    fsf/trunk/libc/rt/clock_nanosleep.c
    fsf/trunk/libc/rt/clock_settime.c
    fsf/trunk/libc/stdio-common/Makefile
    fsf/trunk/libc/stdlib/Makefile
    fsf/trunk/libc/string/Makefile
    fsf/trunk/libc/sysdeps/posix/clock_getres.c
    fsf/trunk/libc/sysdeps/unix/clock_gettime.c
    fsf/trunk/libc/sysdeps/unix/clock_nanosleep.c
    fsf/trunk/libc/sysdeps/unix/clock_settime.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/clock_nanosleep.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/get_clockfreq.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/Makefile
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
    fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Oct 25 00:02:08 2012
@@ -1,4 +1,171 @@
+2012-10-24  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
+
+	* Makeconfig (test-wrapper): New variable,
+	(test-wrapper-env): Likewise.
+	[$(cross-compiling) = yes && $(test-wrapper) != ""]
+	(run-built-tests): Define to yes.
+	(run-program-prefix): Use $(test-wrapper).
+	(built-program-cmd): Likewise.
+	* Rules (make-test-out): Use $(test-wrapper-env) and
+	$(host-built-program-cmd).
+	* elf/Makefile ($(objpfx)order.out): Use $(test-wrapper).
+	($(objpfx)tst-pathopt.out): Pass $(test-wrapper-env) to
+	tst-pathopt.sh.
+	($(objpfx)tst-rtld-load-self.out): Pass $(test-wrapper) and
+	$(test-wrapper-env) to tst-rtld-load-self.sh.
+	($(objpfx)order2.out): Use $(test-wrapper).
+	($(objpfx)tst-initorder.out): Likewise.
+	($(objpfx)tst-initorder2.out): Likewise.
+	($(objpfx)tst-unused-dep.out): Use $(test-wrapper-env).
+	* elf/tst-pathopt.sh (run_program_prefix): Remove unused variable.
+	(test_wrapper_env): New variable.  Use it to run ld.so.
+	* elf/tst-rtld-load-self.sh (test_wrapper): New variable.
+	Use it to run ld.so.
+	(test_wrapper_env): Likewise.
+	* iconvdata/Makefile ($(objpfx)iconv-test.out): Pass
+	$(test-wrapper) to run-iconv-test.sh.
+	* iconvdata/run-iconv-test.sh (test_wrapper): New variable.
+	(ICONV): Use $test_wrapper.
+	* posix/Makefile ($(objpfx)globtest.out): Pass
+	$(run-via-rtld-prefix), $(test-wrapper) and $(test-wrapper-env) to
+	globtest.sh, not $(run-program-prefix).
+	* posix/globtest.sh (run_via_rtld_prefix): New variable.
+	(test_wrapper): Likewise.
+	(test_wrapper_env): Likewise.  Use it to run globtest with HOME
+	set together with run_via_rtld_prefix.
+	(run_program_prefix): Define in terms of test_wrapper and
+	run_via_rtld_prefix.
+
+2012-10-24  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* nscd/Makefile ($(objpfx)nscd): Remove librt dependency.
+	* posix/Makefile ($(objpfx)tst-regex, $(objpfx)tst-regex2):
+	Targets	removed.
+
+	[BZ #14743]
+	* include/time.h: Remove librt_hidden_proto (clock_gettime).
+	Declare __clock_getres, __clock_gettime, __clock_settime,
+	__clock_nanosleep, and __clock_getcpuclockid.
+	* rt/clock_gettime.c: Define __clock_gettime as an alias.
+	Remove librt_hidden_def (clock_gettime).
+	* sysdeps/unix/clock_gettime.c: Likewise.
+	* rt/clock_getcpuclockid.c: Define __clock_getcpuclockid as an alias.
+	* sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise.
+	* rt/clock_getres.c: Define __clock_getres as an alias.
+	* sysdeps/posix/clock_getres.c: Likewise.
+	* rt/clock_settime.c: Define __clock_settime as an alias.
+	* sysdeps/unix/clock_settime.c: Likewise.
+	* rt/clock_nanosleep.c: Define __clock_nanosleep as an alias.
+	* sysdeps/unix/clock_nanosleep.c: Likewise.
+	* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
+	* rt/clock-compat.c: New file.
+	* rt/Makefile (librt-routines): Add clock-compat and move
+	$(clock-routines) to ...
+	(routines): ... here, new variable.
+	* sysdeps/unix/sysv/linux/powerpc/Makefile (sysdep_routines):
+	Don't add get_clockfreq here.
+	* rt/Versions (libc: GLIBC_2.17): New version set.
+	Add clock_* symbols here.
+	(libc: GLIBC_PRIVATE): New version set.  Add __clock_* symbols here.
+	* sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
+	(GLIBC_2.17): Add clock_* symbols.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist: Likewise.
+	* sysdeps/unix/sysv/linux/sh/nptl/libc.abilist: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist:
+	Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist:
+	Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist: Likewise.
+	* sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: Likewise.
+	* NEWS: Mention the move.
+
+	* sysdeps/unix/sysv/linux/i386/get_clockfreq.c (__get_clockfreq):
+	Use __open, __read, __close rather than their public counterparts.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
+	(__get_clockfreq_via_cpuinfo): Likewise.
+	(__get_clockfreq_via_proc_openprom): Likewise, and __getdirentries.
+	(__get_clockfreq_via_dev_openprom): Likewise, and __ioctl.
+
+	* config.h.in (HAVE_IFUNC): New #undef.
+	* configure.in: Define it if libc_cv_ld_gnu_indirect_function
+	was successful.
+	* configure: Regenerated.
+
+2012-10-24  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	* configure.in: Move READELF check to start of file.
+	(libc_cv_ld_gnu_indirect_function): Change to a link test. Rename from
+	libc_cv_asm_gnu_indirect_function in the process.
+	* configure: Regenerated.
+
+2012-10-24  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	* configure.in (libc_cv_gcc_static_libgcc): Drop -q flag to grep and
+	send the output to /dev/null.
+	(libc_cv_cc_with_libunwind): Likewise.
+	(libc_cv_as_noexecstack): Likewise.
+	* configure: Regenerate.
+
+2012-10-24  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* io/ftwtest-sh (tmp): Define to ${objpfx}io, not using `pwd`.
+
+	* posix/globtest.sh (TMPDIR): Do not set.
+	(testdir): Define using ${common_objpfx}posix not $TMPDIR.
+	(testout): Likewise.
+
+2012-10-24  Andreas Jaeger  <aj@xxxxxxx>
+
+	* io/fcntl.h: Always define mode_t, off_t, pid_t and use these
+	types for creat, creat64, lockf, posix_fadvise, posix_fallocate.
+	[__USE_LARGEFILE64 && !__off64_t_defined]: Define off64_t.
+	[__USE_LARGEFILE64]: Use off64_t in declaration of lock64,
+	posix_fadvise64, posix_fallocate64.
+
+	* sysdeps/unix/sysv/linux/x86/bits/fcntl.h (F_GETLK, F_SETLK)
+	(F_SETLKW) [__x86_64]: Remove, provided by <bits/fcntl-linux.h>.
+	(F_GETLK, F_SETLK, F_SETLKW) [!__USE_FILE_OFFSET64 && !__x86_64__]:
+	Likewise.
+	(F_GETLK, F_SETLK, F_SETLKW) [__USE_FILE_OFFSET64 && ! __x86_64__]:
+	Likewise.
+	(F_GETLK64, F_SETLK64, F_SETLKW64) [!__x86_64__]: Likewise.
+
+	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (F_GETLK, F_SETLK)
+	(F_SETLKW) [__USE_FILE_OFFSET64]: Remove, provided by
+	<bits/fcntl-linux.h>.
+	(F_GETLK64, F_SETLK64, F_SETLKW64) [__WORDSIZE == 64]: Likewise.
+
+	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (F_DUPFD, F_GETFD)
+	(F_SETFD, F_GETFL, F_SETFL): Remove, provided by <bits/fcntl-linux.h>.
+	(F_GETLK, F_SETLK, F_SETLKW) [__WORDSIZE == 64]: Likewise.
+	(F_GETLK, F_SETLK, F_SETLKW, F_GETLK64, F_SETLK64, F_SETLKW64)
+	[__WORDSIZE != 64]: Likewise.
+
 2012-10-23  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* Makeconfig (run-built-tests): New variable.
+	* Rules [$(cross-compiling) = yes]: Change condition to
+	[$(run-built-tests) = no].
+	* catgets/Makefile [$(cross-compiling) != yes]: Change condition
+	to [$(run-built-tests) = yes].
+	* elf/Makefile [$(cross-compiling) = no]: Likewise
+	* grp/Makefile [$(cross-compiling) = no]: Likewise.
+	* iconv/Makefile [$(cross-compiling) != yes]: Likewise.
+	* iconvdata/Makefile [$(cross-compiling) = no]: Likewise.
+	* intl/Makefile [$(cross-compiling) = no]: Likewise.
+	* io/Makefile [$(cross-compiling) = no]: Likewise.
+	* libio/Makefile [$(cross-compiling) = no]: Likewise.
+	* malloc/Makefile [$(cross-compiling) = no]: Likewise.
+	* misc/Makefile [$(cross-compiling) = no]: Likewise.
+	* posix/Makefile [$(cross-compiling) = no]: Likewise.
+	* resolv/Makefile [$(cross-compiling) = no]: Likewise.
+	* stdio-common/Makefile [$(cross-compiling) = no]: Likewise.
+	* stdlib/Makefile [$(cross-compiling) = no]: Likewise.
+	* string/Makefile [$(cross-compiling) = no]: Likewise.
 
 	* posix/Makefile ($(objpfx)globtest.out): Pass
 	$(run-program-prefix) to globtest.sh, not $(elf-objpfx) and

Modified: fsf/trunk/libc/Makeconfig
==============================================================================
--- fsf/trunk/libc/Makeconfig (original)
+++ fsf/trunk/libc/Makeconfig Thu Oct 25 00:02:08 2012
@@ -564,6 +564,27 @@
 csu-objpfx = $(common-objpfx)csu/
 elf-objpfx = $(common-objpfx)elf/
 
+# A command that, prepended to the name and arguments of a program,
+# and run on the build system, causes that program with those
+# arguments to be run on the host for which the library is built.
+ifndef test-wrapper
+test-wrapper =
+endif
+# Likewise, but the name of the program is preceded by
+# <variable>=<value> assignments for environment variables.
+ifndef test-wrapper-env
+test-wrapper-env = $(test-wrapper) env
+endif
+
+# Whether to run test programs built for the library's host system.
+ifndef run-built-tests
+ifeq (yes|,$(cross-compiling)|$(test-wrapper))
+run-built-tests = no
+else
+run-built-tests = yes
+endif
+endif
+
 # How to run a program we just linked with our library.
 # The program binary is assumed to be $(word 2,$^).
 built-program-file = $(dir $(word 2,$^))$(notdir $(word 2,$^))
@@ -591,12 +612,13 @@
 # of a program built with the newly built library, produces a command
 # that, executed on the build system on which "make" is run, runs that
 # program.
-run-program-prefix = $(run-via-rtld-prefix)
+run-program-prefix = $(test-wrapper) $(run-via-rtld-prefix)
 # $(built-program-cmd) is a command that, executed on the build system
 # on which "make" is run, runs the newly built program that is the
 # second dependency of the makefile target in which
 # $(built-program-cmd) is used.
-built-program-cmd = $(run-via-rtld-prefix) $(built-program-file)
+built-program-cmd = $(test-wrapper) \
+		    $(run-via-rtld-prefix) $(built-program-file)
 # $(host-built-program-cmd) is a command that, executed on the host
 # for which the library is built, runs the newly built program that is
 # the second dependency of the makefile target in which

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Oct 25 00:02:08 2012
@@ -16,7 +16,8 @@
   14328, 14331, 14336, 14337, 14347, 14349, 14376, 14417, 14459, 14476,
   14477, 14505, 14510, 14516, 14518, 14519, 14530, 14532, 14538, 14543,
   14544, 14545, 14557, 14562, 14568, 14576, 14579, 14583, 14587, 14602,
-  14621, 14638, 14645, 14648, 14652, 14660, 14661, 14683, 14694, 14716.
+  14621, 14638, 14645, 14648, 14652, 14660, 14661, 14683, 14694, 14716,
+  14743.
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and
@@ -54,6 +55,13 @@
   enabled, and fail on encrypted strings using the MD5 or DES algorithm
   when the mode is enabled.
 
+* The `clock_*' suite of functions (declared in <time.h>) is now available
+  directly in the main C library.  Previously it was necessary to link with
+  -lrt to use these functions.  This change has the effect that a
+  single-threaded program that uses a function such as `clock_gettime' (and
+  is not linked with -lrt) will no longer implicitly load the pthreads
+  library at runtime and so will not suffer the overheads associated with
+  multi-thread support in other code such as the C++ runtime library.
 
 Version 2.16
 
@@ -81,7 +89,7 @@
   14043, 14044, 14048, 14049, 14050, 14053, 14055, 14059, 14064, 14075,
   14080, 14083, 14103, 14104, 14109, 14112, 14117, 14122, 14123, 14134,
   14153, 14183, 14188, 14199, 14210, 14218, 14229, 14241, 14273, 14277,
-  14278,
+  14278.
 
 * Support for the x32 ABI on x86-64 added.  The x32 target is selected by
   configuring glibc with:

Modified: fsf/trunk/libc/Rules
==============================================================================
--- fsf/trunk/libc/Rules (original)
+++ fsf/trunk/libc/Rules Thu Oct 25 00:02:08 2012
@@ -94,7 +94,7 @@
 else
 others: $(addprefix $(objpfx),$(extra-objs))
 endif
-ifeq ($(cross-compiling),yes)
+ifeq ($(run-built-tests),no)
 tests: $(addprefix $(objpfx),$(tests) $(test-srcs))
 xtests: tests
 else
@@ -180,8 +180,9 @@
 # These are the implicit rules for making test outputs
 # from the test programs and whatever input files are present.
 
-make-test-out = GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
-		$($*-ENV) $(built-program-cmd) $($*-ARGS)
+make-test-out = $(test-wrapper-env) \
+		GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
+		$($*-ENV) $(host-built-program-cmd) $($*-ARGS)
 $(objpfx)%-bp.out: %.input $(objpfx)%-bp
 	$(make-test-out) > $@ < $(word 1,$^)
 $(objpfx)%.out: %.input $(objpfx)%

Modified: fsf/trunk/libc/catgets/Makefile
==============================================================================
--- fsf/trunk/libc/catgets/Makefile (original)
+++ fsf/trunk/libc/catgets/Makefile Thu Oct 25 00:02:08 2012
@@ -50,7 +50,7 @@
 
 tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de
 
-ifneq ($(cross-compiling),yes)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \
        $(objpfx)test-gencat.out
 # This test just checks whether the program produces any error or not.

Modified: fsf/trunk/libc/config.h.in
==============================================================================
--- fsf/trunk/libc/config.h.in (original)
+++ fsf/trunk/libc/config.h.in Thu Oct 25 00:02:08 2012
@@ -179,6 +179,9 @@
 
 /* Define if the dynamic linker should consult an ld.so.cache file.  */
 #undef USE_LDCONFIG
+
+/* Define if STT_GNU_IFUNC support actually works.  */
+#undef HAVE_IFUNC
 
 /*
  */

Modified: fsf/trunk/libc/configure
==============================================================================
--- fsf/trunk/libc/configure (original)
+++ fsf/trunk/libc/configure Thu Oct 25 00:02:08 2012
@@ -631,7 +631,6 @@
 SYSINCLUDES
 AUTOCONF
 NM
-READELF
 AWK
 SED
 MAKEINFO
@@ -664,6 +663,7 @@
 use_default_link
 sysheaders
 with_fp
+READELF
 ac_ct_CXX
 CXXFLAGS
 CXX
@@ -3397,6 +3397,98 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
+set dummy ${ac_tool_prefix}readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_READELF+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$READELF"; then
+  ac_cv_prog_READELF="$READELF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_READELF="${ac_tool_prefix}readelf"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_READELF"; then
+  ac_ct_READELF=$READELF
+  # Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_READELF+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_READELF"; then
+  ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_READELF="readelf"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
+$as_echo "$ac_ct_READELF" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_READELF" = x; then
+    READELF="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    READELF=$ac_ct_READELF
+  fi
+else
+  READELF="$ac_cv_prog_READELF"
+fi
+
 
 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
   as_fn_error $? "you must configure in a separate build directory" "$LINENO" 5
@@ -4053,25 +4145,36 @@
 
 fi
 
-# For the multi-arch option we need support in the assembler.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler gnu_indirect_function symbol type support" >&5
-$as_echo_n "checking for assembler gnu_indirect_function symbol type support... " >&6; }
-if ${libc_cv_asm_gnu_indirect_function+:} false; then :
+# For the multi-arch option we need support in the assembler & linker.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler and linker STT_GNU_IFUNC support" >&5
+$as_echo_n "checking for assembler and linker STT_GNU_IFUNC support... " >&6; }
+if ${libc_cv_ld_gnu_indirect_function+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat > conftest.s <<EOF
 .type foo,%gnu_indirect_function
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+.long foo
 EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&5 2>&5;
-then
-  libc_cv_asm_gnu_indirect_function=yes
-else
-  libc_cv_asm_gnu_indirect_function=no
+libc_cv_ld_gnu_indirect_function=no
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -nostartfiles -nostdlib \
+	    -o conftest conftest.s 1>&5 2>&5; then
+  # Do a link to see if the backend supports IFUNC relocs.
+  $READELF -r conftest 1>&5
+  LC_ALL=C $READELF -r conftest | grep 'no relocations' >/dev/null || {
+    libc_cv_ld_gnu_indirect_function=yes
+  }
 fi
 rm -f conftest*
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_gnu_indirect_function" >&5
-$as_echo "$libc_cv_asm_gnu_indirect_function" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_ld_gnu_indirect_function" >&5
+$as_echo "$libc_cv_ld_gnu_indirect_function" >&6; }
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether .text pseudo-op must be used" >&5
 $as_echo_n "checking whether .text pseudo-op must be used... " >&6; }
@@ -4101,7 +4204,7 @@
 $as_echo "yes" >&6; }
 fi
 
-if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
+if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
   if test x"$multi_arch" = xyes; then
     as_fn_error $? "--enable-multi-arch support requires assembler and linker support" "$LINENO" 5
   else
@@ -5066,98 +5169,6 @@
 
 
 if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
-set dummy ${ac_tool_prefix}readelf; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_READELF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$READELF"; then
-  ac_cv_prog_READELF="$READELF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_READELF="${ac_tool_prefix}readelf"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-READELF=$ac_cv_prog_READELF
-if test -n "$READELF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
-$as_echo "$READELF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_READELF"; then
-  ac_ct_READELF=$READELF
-  # Extract the first word of "readelf", so it can be a program name with args.
-set dummy readelf; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_READELF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_READELF"; then
-  ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_READELF="readelf"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
-if test -n "$ac_ct_READELF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
-$as_echo "$ac_ct_READELF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_READELF" = x; then
-    READELF="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    READELF=$ac_ct_READELF
-  fi
-else
-  READELF="$ac_cv_prog_READELF"
-fi
-
-if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nm; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
@@ -5384,7 +5395,7 @@
 if ${libc_cv_gcc_static_libgcc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
+  if $CC -v -static-libgcc 2>&1 | grep 'unrecognized option.*static-libgcc' >/dev/null; then
   libc_cv_gcc_static_libgcc=
 else
   libc_cv_gcc_static_libgcc=-static-libgcc
@@ -6139,7 +6150,7 @@
 int main (void) { return 0; }
 EOF
   if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
-     conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
+     conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
     libc_cv_cc_with_libunwind=yes
   else
     libc_cv_cc_with_libunwind=no
@@ -6370,7 +6381,7 @@
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; } \
-   && grep -q .note.GNU-stack conftest.s \
+   && grep .note.GNU-stack conftest.s >/dev/null \
    && { ac_try='${CC-cc} $ASFLAGS -Wa,--noexecstack
 		      -c -o conftest.o conftest.s 1>&5'
   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
@@ -7444,6 +7455,13 @@
 
 fi
 
+
+# A sysdeps configure fragment can reset this if IFUNC is not actually
+# usable even though the assembler knows how to generate the symbol type.
+if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
+  $as_echo "#define HAVE_IFUNC 1" >>confdefs.h
+
+fi
 
 # This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
 # configure fragment can override the value to prevent this AC_DEFINE.

Modified: fsf/trunk/libc/configure.in
==============================================================================
--- fsf/trunk/libc/configure.in (original)
+++ fsf/trunk/libc/configure.in Thu Oct 25 00:02:08 2012
@@ -23,6 +23,7 @@
 AC_PROG_CPP
 # We need the C++ compiler only for testing.
 AC_PROG_CXX
+AC_CHECK_TOOL(READELF, readelf, false)
 
 if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then
   AC_MSG_ERROR([you must configure in a separate build directory])
@@ -566,17 +567,28 @@
   AC_DEFINE(USE_REGPARMS)
 fi
 
-# For the multi-arch option we need support in the assembler.
-AC_CACHE_CHECK([for assembler gnu_indirect_function symbol type support],
-	       libc_cv_asm_gnu_indirect_function, [dnl
+# For the multi-arch option we need support in the assembler & linker.
+AC_CACHE_CHECK([for assembler and linker STT_GNU_IFUNC support],
+	       libc_cv_ld_gnu_indirect_function, [dnl
 cat > conftest.s <<EOF
 .type foo,%gnu_indirect_function
-EOF
-if ${CC-cc} -c $ASFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD;
-then
-  libc_cv_asm_gnu_indirect_function=yes
-else
-  libc_cv_asm_gnu_indirect_function=no
+foo:
+.globl _start
+_start:
+.globl __start
+__start:
+.data
+.long foo
+EOF
+libc_cv_ld_gnu_indirect_function=no
+if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \
+	    -nostartfiles -nostdlib \
+	    -o conftest conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then
+  # Do a link to see if the backend supports IFUNC relocs.
+  $READELF -r conftest 1>&AS_MESSAGE_LOG_FD
+  LC_ALL=C $READELF -r conftest | grep 'no relocations' >/dev/null || {
+    libc_cv_ld_gnu_indirect_function=yes
+  }
 fi
 rm -f conftest*])
 
@@ -596,7 +608,7 @@
   AC_MSG_RESULT(yes)
 fi
 
-if test x"$libc_cv_asm_gnu_indirect_function" != xyes; then
+if test x"$libc_cv_ld_gnu_indirect_function" != xyes; then
   if test x"$multi_arch" = xyes; then
     AC_MSG_ERROR([--enable-multi-arch support requires assembler and linker support])
   else
@@ -930,7 +942,6 @@
   [GNU Awk[^0-9]*\([0-9][0-9.]*\)],
   [[3-9].*], critic_missing="$critic_missing gawk")
 
-AC_CHECK_TOOL(READELF, readelf, false)
 AC_CHECK_TOOL(NM, nm, false)
 
 AC_CHECK_PROGS(AUTOCONF, autoconf, no)
@@ -1011,7 +1022,7 @@
 fi
 
 AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl
-if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then
+if $CC -v -static-libgcc 2>&1 | grep 'unrecognized option.*static-libgcc' >/dev/null; then
   libc_cv_gcc_static_libgcc=
 else
   libc_cv_gcc_static_libgcc=-static-libgcc
@@ -1376,7 +1387,7 @@
 int main (void) { return 0; }
 EOF
   if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
-     conftest.c -v 2>&1 >/dev/null | grep -q " -lunwind "; then
+     conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
     libc_cv_cc_with_libunwind=yes
   else
     libc_cv_cc_with_libunwind=no
@@ -1526,7 +1537,7 @@
 EOF
 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
 		   -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
-   && grep -q .note.GNU-stack conftest.s \
+   && grep .note.GNU-stack conftest.s >/dev/null \
    && AC_TRY_COMMAND([${CC-cc} $ASFLAGS -Wa,--noexecstack
 		      -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
 then
@@ -2112,6 +2123,12 @@
 fi
 AC_SUBST(libc_cv_gcc_unwind_find_fde)
 
+# A sysdeps configure fragment can reset this if IFUNC is not actually
+# usable even though the assembler knows how to generate the symbol type.
+if test x"$libc_cv_ld_gnu_indirect_function" = xyes; then
+  AC_DEFINE(HAVE_IFUNC)
+fi
+
 # This is far from the AC_ARG_ENABLE that sets it so that a sysdeps
 # configure fragment can override the value to prevent this AC_DEFINE.
 AC_SUBST(use_nscd)

Modified: fsf/trunk/libc/elf/Makefile
==============================================================================
--- fsf/trunk/libc/elf/Makefile (original)
+++ fsf/trunk/libc/elf/Makefile Thu Oct 25 00:02:08 2012
@@ -161,7 +161,7 @@
 endif
 endif
 endif
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \
        $(objpfx)noload-mem
 endif
@@ -438,7 +438,7 @@
 generated += $(addsuffix .so,$(strip $(modules-names)))
 
 ifeq (yes,$(build-shared))
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out
 endif
 endif
@@ -644,6 +644,7 @@
 $(objpfx)order: $(addprefix $(objpfx),dep4.so dep3.so dep2.so dep1.so)
 
 $(objpfx)order.out: $(objpfx)order
+	$(test-wrapper) \
 	$(elf-objpfx)$(rtld-installed-name) \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $(objpfx)order > $@
@@ -710,10 +711,10 @@
 $(objpfx)tst-pathopt: $(libdl)
 $(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
 			  $(objpfx)pathoptobj.so
-	$(SHELL) $< $(common-objpfx)
+	$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)'
 
 $(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so
-	$(SHELL) $^ > $@
+	$(SHELL) $^ '$(test-wrapper)' '$(test-wrapper-env)' > $@
 
 $(objpfx)initfirst: $(libdl)
 $(objpfx)initfirst.out: $(objpfx)firstobj.so
@@ -1035,6 +1036,7 @@
 $(objpfx)order2: $(libdl)
 $(objpfx)order2.out: $(objpfx)order2 $(objpfx)order2mod1.so \
 		     $(objpfx)order2mod2.so
+	$(test-wrapper) \
 	$(elf-objpfx)$(rtld-installed-name) \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $(objpfx)order2 > $@
@@ -1129,6 +1131,7 @@
 $(objpfx)tst-unique4: $(objpfx)tst-unique4lib.so
 
 $(objpfx)tst-initorder.out: $(objpfx)tst-initorder
+	$(test-wrapper) \
 	$(elf-objpfx)${rtld-installed-name} \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $< > $@
@@ -1150,6 +1153,7 @@
 include $(o-iterator)
 
 $(objpfx)tst-initorder2.out: $(objpfx)tst-initorder2
+	$(test-wrapper) \
 	$(elf-objpfx)${rtld-installed-name} \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $< > $@
@@ -1174,11 +1178,12 @@
 $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
 			   $(objpfx)tst-relsort1mod2.so
 
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-unused-dep.out
 endif
 
 $(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so
+	$(test-wrapper-env) \
 	LD_TRACE_LOADED_OBJECTS=1 \
 	LD_DEBUG=unused \
 	LD_PRELOAD= \

Modified: fsf/trunk/libc/elf/tst-pathopt.sh
==============================================================================
--- fsf/trunk/libc/elf/tst-pathopt.sh (original)
+++ fsf/trunk/libc/elf/tst-pathopt.sh Thu Oct 25 00:02:08 2012
@@ -20,7 +20,7 @@
 set -e
 
 common_objpfx=$1
-run_program_prefix=$2
+test_wrapper_env=$2
 
 test -e ${common_objpfx}elf/will-be-empty &&
   rm -fr ${common_objpfx}elf/will-be-empty
@@ -29,6 +29,7 @@
 
 cp ${common_objpfx}elf/pathoptobj.so ${common_objpfx}elf/for-renamed/renamed.so
 
+${test_wrapper_env} \
 LOCPATH=${common_objpfx}localedata GCONV_PATH=${common_objpfx}iconvdata \
 LC_ALL=C LD_LIBRARY_PATH=${common_objpfx}elf/will-be-empty:${common_objpfx}elf/for-renamed:${common_objpfx}.:${common_objpfx}dlfcn \
   ${common_objpfx}elf/ld.so ${common_objpfx}elf/tst-pathopt \

Modified: fsf/trunk/libc/elf/tst-rtld-load-self.sh
==============================================================================
--- fsf/trunk/libc/elf/tst-rtld-load-self.sh (original)
+++ fsf/trunk/libc/elf/tst-rtld-load-self.sh Thu Oct 25 00:02:08 2012
@@ -21,25 +21,28 @@
 set -e
 
 rtld=$1
+test_wrapper=$2
+test_wrapper_env=$3
 result=0
 
 echo '# normal mode'
-$rtld $rtld 2>&1 && rc=0 || rc=$?
+${test_wrapper} $rtld $rtld 2>&1 && rc=0 || rc=$?
 echo "# exit status $rc"
 test $rc -le 127 || result=1
 
 echo '# list mode'
-$rtld --list $rtld 2>&1 && rc=0 || rc=$?
+${test_wrapper} $rtld --list $rtld 2>&1 && rc=0 || rc=$?
 echo "# exit status $rc"
 test $rc -eq 0 || result=1
 
 echo '# verify mode'
-$rtld --verify $rtld 2>&1 && rc=0 || rc=$?
+${test_wrapper} $rtld --verify $rtld 2>&1 && rc=0 || rc=$?
 echo "# exit status $rc"
 test $rc -eq 2 || result=1
 
 echo '# trace mode'
-LD_TRACE_LOADED_OBJECTS=1 $rtld $rtld 2>&1 && rc=0 || rc=$?
+${test_wrapper_env} LD_TRACE_LOADED_OBJECTS=1 \
+    $rtld $rtld 2>&1 && rc=0 || rc=$?
 echo "# exit status $rc"
 test $rc -eq 0 || result=1
 

Modified: fsf/trunk/libc/grp/Makefile
==============================================================================
--- fsf/trunk/libc/grp/Makefile (original)
+++ fsf/trunk/libc/grp/Makefile Thu Oct 25 00:02:08 2012
@@ -50,7 +50,7 @@
 
 endif
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 # tst_fgetgrent currently only works with shared libraries
 ifeq (yes,$(build-shared))
 tests: $(objpfx)tst_fgetgrent.out

Modified: fsf/trunk/libc/iconv/Makefile
==============================================================================
--- fsf/trunk/libc/iconv/Makefile (original)
+++ fsf/trunk/libc/iconv/Makefile Thu Oct 25 00:02:08 2012
@@ -69,7 +69,7 @@
 $(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o)
 $(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o)
 
-ifneq ($(cross-compiling),yes)
+ifeq ($(run-built-tests),yes)
 xtests: test-iconvconfig
 endif
 

Modified: fsf/trunk/libc/iconvdata/Makefile
==============================================================================
--- fsf/trunk/libc/iconvdata/Makefile (original)
+++ fsf/trunk/libc/iconvdata/Makefile Thu Oct 25 00:02:08 2012
@@ -267,7 +267,7 @@
 
 include ../Rules
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 tests: $(objpfx)iconv-test.out $(objpfx)tst-tables.out
 ifneq (no,$(PERL))
@@ -299,7 +299,7 @@
 $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(common-objdir)/iconv/iconv_prog TESTS
-	$(SHELL) $< $(common-objdir) > $@
+	$(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@
 
 $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so)) \

Modified: fsf/trunk/libc/iconvdata/run-iconv-test.sh
==============================================================================
--- fsf/trunk/libc/iconvdata/run-iconv-test.sh (original)
+++ fsf/trunk/libc/iconvdata/run-iconv-test.sh Thu Oct 25 00:02:08 2012
@@ -21,6 +21,7 @@
 set -e
 
 codir=$1
+test_wrapper="$2"
 
 # We use always the same temporary file.
 temp1=$codir/iconvdata/iconv-test.xxx
@@ -39,6 +40,7 @@
 # How the start the iconv(1) program.
 ICONV='$codir/elf/ld.so --library-path $LIBPATH --inhibit-rpath ${from}.so \
        $codir/iconv/iconv_prog'
+ICONV="$test_wrapper $ICONV"
 
 # Which echo?
 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then

Modified: fsf/trunk/libc/include/time.h
==============================================================================
--- fsf/trunk/libc/include/time.h (original)
+++ fsf/trunk/libc/include/time.h Thu Oct 25 00:02:08 2012
@@ -19,7 +19,11 @@
 libc_hidden_proto (strftime)
 libc_hidden_proto (strptime)
 
-librt_hidden_proto (clock_gettime)
+extern __typeof (clock_getres) __clock_getres;
+extern __typeof (clock_gettime) __clock_gettime;
+extern __typeof (clock_settime) __clock_settime;
+extern __typeof (clock_nanosleep) __clock_nanosleep;
+extern __typeof (clock_getcpuclockid) __clock_getcpuclockid;
 
 /* Now define the internal interfaces.  */
 struct tm;

Modified: fsf/trunk/libc/intl/Makefile
==============================================================================
--- fsf/trunk/libc/intl/Makefile (original)
+++ fsf/trunk/libc/intl/Makefile Thu Oct 25 00:02:08 2012
@@ -48,7 +48,7 @@
 
 include ../Rules
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 ifneq ($(strip $(MSGFMT)),:)
 tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \

Modified: fsf/trunk/libc/io/Makefile
==============================================================================
--- fsf/trunk/libc/io/Makefile (original)
+++ fsf/trunk/libc/io/Makefile Thu Oct 25 00:02:08 2012
@@ -98,7 +98,7 @@
 
 tst-statvfs-ARGS = $(objpfx)tst-statvfs tst-statvfs.c /tmp
 
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)ftwtest.out
 
 $(objpfx)ftwtest.out: ftwtest-sh $(objpfx)ftwtest

Modified: fsf/trunk/libc/io/fcntl.h
==============================================================================
--- fsf/trunk/libc/io/fcntl.h (original)
+++ fsf/trunk/libc/io/fcntl.h Thu Oct 25 00:02:08 2012
@@ -34,28 +34,32 @@
    numbers and flag bits for `open', `fcntl', et al.  */
 #include <bits/fcntl.h>
 
-#if defined __USE_XOPEN || defined __USE_XOPEN2K
-/* The Single Unix specification says that some more types are
-   available here.  */
-# ifndef __mode_t_defined
+/* POSIX.1-2001 specifies that these types are defined by <fcntl.h>.
+   Earlier POSIX standards permitted any type ending in `_t' to be defined
+   by any POSIX header, so we don't conditionalize the definitions here.  */
+#ifndef __mode_t_defined
 typedef __mode_t mode_t;
-#  define __mode_t_defined
-# endif
-
-# ifndef __off_t_defined
-#  ifndef __USE_FILE_OFFSET64
+# define __mode_t_defined
+#endif
+
+#ifndef __off_t_defined
+# ifndef __USE_FILE_OFFSET64
 typedef __off_t off_t;
-#  else
+# else
 typedef __off64_t off_t;
-#  endif
-#  define __off_t_defined
-# endif
-
-# ifndef __pid_t_defined
+# endif
+# define __off_t_defined
+#endif
+
+#if defined __USE_LARGEFILE64 && !defined __off64_t_defined
+typedef __off64_t off64_t;
+# define __off64_t_defined
+#endif
+
+#ifndef __pid_t_defined
 typedef __pid_t pid_t;
-#  define __pid_t_defined
-# endif
-#endif	/* X/Open */
+# define __pid_t_defined
+#endif
 
 /* For XPG all symbols from <sys/stat.h> should also be available.  */
 #if defined __USE_XOPEN || defined __USE_XOPEN2K8
@@ -202,17 +206,17 @@
    This function is a cancellation point and therefore not marked with
    __THROW.  */
 #ifndef __USE_FILE_OFFSET64
-extern int creat (const char *__file, __mode_t __mode) __nonnull ((1));
+extern int creat (const char *__file, mode_t __mode) __nonnull ((1));
 #else
 # ifdef __REDIRECT
-extern int __REDIRECT (creat, (const char *__file, __mode_t __mode),
+extern int __REDIRECT (creat, (const char *__file, mode_t __mode),
 		       creat64) __nonnull ((1));
 # else
 #  define creat creat64
 # endif
 #endif
 #ifdef __USE_LARGEFILE64
-extern int creat64 (const char *__file, __mode_t __mode) __nonnull ((1));
+extern int creat64 (const char *__file, mode_t __mode) __nonnull ((1));
 #endif
 
 #if !defined F_LOCK && (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \
@@ -231,7 +235,7 @@
 # define F_TEST  3	/* Test a region for other processes locks.  */
 
 # ifndef __USE_FILE_OFFSET64
-extern int lockf (int __fd, int __cmd, __off_t __len);
+extern int lockf (int __fd, int __cmd, off_t __len);
 # else
 #  ifdef __REDIRECT
 extern int __REDIRECT (lockf, (int __fd, int __cmd, __off64_t __len), lockf64);
@@ -240,7 +244,7 @@
 #  endif
 # endif
 # ifdef __USE_LARGEFILE64
-extern int lockf64 (int __fd, int __cmd, __off64_t __len);
+extern int lockf64 (int __fd, int __cmd, off64_t __len);
 # endif
 #endif
 
@@ -248,7 +252,7 @@
 /* Advice the system about the expected behaviour of the application with
    respect to the file associated with FD.  */
 # ifndef __USE_FILE_OFFSET64
-extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
+extern int posix_fadvise (int __fd, off_t __offset, off_t __len,
 			  int __advise) __THROW;
 # else
  # ifdef __REDIRECT_NTH
@@ -260,7 +264,7 @@
 #  endif
 # endif
 # ifdef __USE_LARGEFILE64
-extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len,
+extern int posix_fadvise64 (int __fd, off64_t __offset, off64_t __len,
 			    int __advise) __THROW;
 # endif
 
@@ -270,7 +274,7 @@
    This function is a possible cancellation point and therefore not
    marked with __THROW.  */
 # ifndef __USE_FILE_OFFSET64
-extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
+extern int posix_fallocate (int __fd, off_t __offset, off_t __len);
 # else
  # ifdef __REDIRECT
 extern int __REDIRECT (posix_fallocate, (int __fd, __off64_t __offset,
@@ -281,7 +285,7 @@
 #  endif
 # endif
 # ifdef __USE_LARGEFILE64
-extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
+extern int posix_fallocate64 (int __fd, off64_t __offset, off64_t __len);
 # endif
 #endif
 

Modified: fsf/trunk/libc/io/ftwtest-sh
==============================================================================
--- fsf/trunk/libc/io/ftwtest-sh (original)
+++ fsf/trunk/libc/io/ftwtest-sh Thu Oct 25 00:02:08 2012
@@ -44,7 +44,7 @@
 export LANG
 
 # First create our scenario:
-tmp=`pwd | sed 's|\(.\)/*$|\1|'`
+tmp=${objpfx}io
 tmpdir=$tmp/ftwtest.d
 
 trap 'chmod -fR a+x $tmpdir; rm -fr $tmpdir $testout' 1 2 3 15

Modified: fsf/trunk/libc/libio/Makefile
==============================================================================
--- fsf/trunk/libc/libio/Makefile (original)
+++ fsf/trunk/libc/libio/Makefile Thu Oct 25 00:02:08 2012
@@ -175,7 +175,7 @@
 
 include ../Rules
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)test-freopen.out
 ifeq (yes,$(build-shared))
 # Run tst-fopenloc.check only if shared library is enabled since it

Modified: fsf/trunk/libc/localedata/ChangeLog
==============================================================================
--- fsf/trunk/libc/localedata/ChangeLog (original)
+++ fsf/trunk/libc/localedata/ChangeLog Thu Oct 25 00:02:08 2012
@@ -1,3 +1,8 @@
+2012-10-23  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* Makefile [$(cross-compiling) = no]: Change condition to
+	[$(run-built-tests) = yes].
+
 2012-10-22  Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
 	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 

Modified: fsf/trunk/libc/localedata/Makefile
==============================================================================
--- fsf/trunk/libc/localedata/Makefile (original)
+++ fsf/trunk/libc/localedata/Makefile Thu Oct 25 00:02:08 2012
@@ -59,7 +59,7 @@
 # Get $(inst_i18ndir) defined.
 include ../Makeconfig
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 locale_test_suite := tst_iswalnum tst_iswalpha tst_iswcntrl            \
 		     tst_iswctype tst_iswdigit tst_iswgraph            \
 		     tst_iswlower tst_iswprint tst_iswpunct            \
@@ -113,7 +113,7 @@
 CFLAGS-tst-trans.c = -Wno-format
 
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 # We have to generate locales
 LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 \
 	   en_US.ISO-8859-1 ja_JP.EUC-JP da_DK.ISO-8859-1 \

Modified: fsf/trunk/libc/malloc/Makefile
==============================================================================
--- fsf/trunk/libc/malloc/Makefile (original)
+++ fsf/trunk/libc/malloc/Makefile Thu Oct 25 00:02:08 2012
@@ -104,7 +104,7 @@
 
 lib: $(objpfx)libmcheck.a
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 ifneq ($(PERL),no)
 tests: $(objpfx)tst-mtrace.out

Modified: fsf/trunk/libc/misc/Makefile
==============================================================================
--- fsf/trunk/libc/misc/Makefile (original)
+++ fsf/trunk/libc/misc/Makefile Thu Oct 25 00:02:08 2012
@@ -77,7 +77,7 @@
 
 tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
 	 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-error1-mem
 endif
 

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Thu Oct 25 00:02:08 2012
@@ -1,3 +1,35 @@
+2012-10-24  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
+
+	* Makefile ($(objpfx)tst-tls6.out): Pass $(test-wrapper-env) to
+	tst-tls6.sh.
+	* tst-tls6.sh (test_wrapper_env): New variable.  Use it to run
+	programs with LD_PRELOAD set.
+
+2012-10-24  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* Makefile ($(objpfx)tst-cond11, $(objpfx)tst-cond19): Targets removed.
+	($(objpfx)tst-sem5, $(objpfx)tst-cancel18): Likewise.
+	((objpfx)tst-cancelx18, $(objpfx)tst-clock2): Likewise.
+	($(objpfx)tst-rwlock14): Likewise.
+
+2012-10-24  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* Makefile (tests): Remove tst-oddstacklimit.
+	(test-srcs): New variable.
+	(tst-oddstacklimit-ENV): Remove.
+	[$(run-built-tests) = yes] (tests): Depend on
+	$(objpfx)tst-oddstacklimit.out.
+	[$(run-built-tests) = yes] ($(objpfx)tst-oddstacklimit.out): New
+	target.
+	* tst-oddstacklimit.c: Do not include "tst-basic1.c".  Use
+	setrlimit before executing tst-basic1 test passed to --command.
+
+2012-10-23  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* Makefile [$(cross-compiling) = no]: Change condition to
+	[$(run-built-tests) = yes].
+
 2012-10-23  Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
 	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 

Modified: fsf/trunk/libc/nptl/Makefile
==============================================================================
--- fsf/trunk/libc/nptl/Makefile (original)
+++ fsf/trunk/libc/nptl/Makefile Thu Oct 25 00:02:08 2012
@@ -257,19 +257,15 @@
 	tst-context1 \
 	tst-sched1 \
 	tst-backtrace1 \
-	tst-oddstacklimit \
 	tst-abstime \
 	tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
 	tst-getpid1 tst-getpid2 tst-getpid3 \
 	tst-initializers1 $(patsubst %,tst-initializers1-%,c89 gnu89 c99 gnu99)
 xtests = tst-setuid1 tst-setuid1-static tst-mutexpp1 tst-mutexpp6 tst-mutexpp10
+test-srcs = tst-oddstacklimit
 
 # Files which must not be linked with libpthread.
 tests-nolibpthread = tst-unload
-
-# This sets the stack resource limit to 1023kb, which is not a multiple
-# of the page size since every architecture's page size is > 1k.
-tst-oddstacklimit-ENV = ; ulimit -s 1023;
 
 gen-as-const-headers = pthread-errnos.sym
 
@@ -448,7 +444,7 @@
 tst-atfork2-ENV = MALLOC_TRACE=$(objpfx)tst-atfork2.mtrace
 $(objpfx)tst-atfork2mod.so: $(shared-thread-library)
 
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-stack3-mem
 endif
 tst-stack3-ENV = MALLOC_TRACE=$(objpfx)tst-stack3.mtrace
@@ -472,7 +468,7 @@
 LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
 
 ifeq ($(build-shared),yes)
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-tls6.out
 endif
 $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
@@ -480,7 +476,7 @@
 		       $(objpfx)tst-tls5modc.so $(objpfx)tst-tls5modd.so \
 		       $(objpfx)tst-tls5mode.so $(objpfx)tst-tls5modf.so
 	$(SHELL) $< $(common-objpfx) $(elf-objpfx) \
-		    $(rtld-installed-name)
+		    $(rtld-installed-name) '$(test-wrapper-env)'
 endif
 
 $(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library)
@@ -488,31 +484,18 @@
 $(objpfx)tst-fini1: $(shared-thread-library) $(objpfx)tst-fini1mod.so
 
 ifeq (yes,$(build-shared))
-$(objpfx)tst-cond11: $(common-objpfx)rt/librt.so
-$(objpfx)tst-cond19: $(common-objpfx)rt/librt.so
-$(objpfx)tst-sem5: $(common-objpfx)rt/librt.so
-$(objpfx)tst-cancel17: $(common-objpfx)rt/librt.so
-$(objpfx)tst-cancelx17: $(common-objpfx)rt/librt.so
-$(objpfx)tst-cancel18: $(common-objpfx)rt/librt.so
-$(objpfx)tst-cancelx18: $(common-objpfx)rt/librt.so
-$(objpfx)tst-clock2: $(common-objpfx)rt/librt.so
-$(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.so
+librt = $(common-objpfx)rt/librt.so
+else
+librt = $(common-objpfx)rt/librt.a
+endif
+
+$(objpfx)tst-cancel17: $(librt)
+$(objpfx)tst-cancelx17: $(librt)
 $(objpfx)tst-_res1mod2.so: $(objpfx)tst-_res1mod1.so
 LDFLAGS-tst-_res1mod1.so = -Wl,-soname,tst-_res1mod1.so
 LDFLAGS-tst-_res1mod2.so = -Wl,-soname,tst-_res1mod2.so
 $(objpfx)tst-_res1: $(objpfx)tst-_res1mod1.so $(objpfx)tst-_res1mod2.so \
 		    $(shared-thread-library)
-else
-$(objpfx)tst-cond11: $(common-objpfx)rt/librt.a
-$(objpfx)tst-cond19: $(common-objpfx)rt/librt.a
-$(objpfx)tst-sem5: $(common-objpfx)rt/librt.a
-$(objpfx)tst-cancel17: $(common-objpfx)rt/librt.a
-$(objpfx)tst-cancelx17: $(common-objpfx)rt/librt.a
-$(objpfx)tst-cancel18: $(common-objpfx)rt/librt.a
-$(objpfx)tst-cancelx18: $(common-objpfx)rt/librt.a
-$(objpfx)tst-clock2: $(common-objpfx)rt/librt.a
-$(objpfx)tst-rwlock14: $(common-objpfx)rt/librt.a
-endif
 
 LDLIBS-tst-cancel24 = $(no-as-needed) -lstdc++
 LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
@@ -583,7 +566,7 @@
 LDFLAGS-pthread.so += -e __nptl_main
 endif
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 tests: $(objpfx)tst-cancel-wrappers.out
 $(objpfx)tst-cancel-wrappers.out: tst-cancel-wrappers.sh
@@ -606,6 +589,13 @@
 tst-stackguard1-ARGS = --command "$(host-built-program-cmd) --child"
 tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
 
+ifeq ($(run-built-tests),yes)
+tests: $(objpfx)tst-oddstacklimit.out
+
+$(objpfx)tst-oddstacklimit.out: $(objpfx)tst-oddstacklimit $(objpfx)tst-basic1
+	$(run-program-prefix) $< --command '$(host-built-program-cmd)' > $@
+endif
+
 # The tests here better do not run in parallel
 ifneq ($(filter %tests,$(MAKECMDGOALS)),)
 .NOTPARALLEL:

Modified: fsf/trunk/libc/nptl/tst-oddstacklimit.c
==============================================================================
--- fsf/trunk/libc/nptl/tst-oddstacklimit.c (original)
+++ fsf/trunk/libc/nptl/tst-oddstacklimit.c Thu Oct 25 00:02:08 2012
@@ -1,1 +1,72 @@
-#include "tst-basic1.c"
+/* Test NPTL with stack limit that is not a multiple of the page size.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/resource.h>
+#include <sys/wait.h>
+
+/* This sets the stack resource limit to 1023kb, which is not a multiple
+   of the page size since every architecture's page size is > 1k.  */
+#ifndef ODD_STACK_LIMIT
+# define ODD_STACK_LIMIT (1023 * 1024)
+#endif
+
+static const char *command;
+
+static int
+do_test (void)
+{
+  int ret;
+  struct rlimit rlim;
+
+  ret = getrlimit (RLIMIT_STACK, &rlim);
+  if (ret != 0)
+    {
+      printf ("getrlimit failed: %s\n", strerror (errno));
+      return 1;
+    }
+  rlim.rlim_cur = ODD_STACK_LIMIT;
+  ret = setrlimit (RLIMIT_STACK, &rlim);
+  if (ret != 0)
+    {
+      printf ("setrlimit failed: %s\n", strerror (errno));
+      return 1;
+    }
+  ret = system (command);
+  if (ret == -1)
+    {
+      printf ("system failed: %s\n", strerror (errno));
+      return 1;
+    }
+  if (WIFEXITED (ret))
+    return WEXITSTATUS (ret);
+  else
+    return 1;
+}
+
+#define OPT_COMMAND	10000
+#define CMDLINE_OPTIONS	\
+  { "command", required_argument, NULL, OPT_COMMAND },
+#define CMDLINE_PROCESS	\
+  case OPT_COMMAND:	\
+    command = optarg;	\
+    break;
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"

Modified: fsf/trunk/libc/nptl/tst-tls6.sh
==============================================================================
--- fsf/trunk/libc/nptl/tst-tls6.sh (original)
+++ fsf/trunk/libc/nptl/tst-tls6.sh Thu Oct 25 00:02:08 2012
@@ -22,6 +22,7 @@
 common_objpfx=$1; shift
 elf_objpfx=$1; shift
 rtld_installed_name=$1; shift
+test_wrapper_env=$1; shift
 logfile=$common_objpfx/nptl/tst-tls6.out
 
 # We have to find libc and nptl
@@ -40,33 +41,38 @@
 for aligned in a e f; do
   echo "preload tst-tls5mod{$aligned,b,c,d}.so" >> $logfile
   echo "===============" >> $logfile
-  LD_PRELOAD=`echo ${common_objpfx}nptl/tst-tls5mod{$aligned,b,c,d}.so \
-	      | sed 's/:$//;s/: /:/g'` ${tst_tls5} >> $logfile || fail=1
+  ${test_wrapper_env} \
+  LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{$aligned,b,c,d}.so \
+	      | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
   echo >> $logfile
 
   echo "preload tst-tls5mod{b,$aligned,c,d}.so" >> $logfile
   echo "===============" >> $logfile
-  LD_PRELOAD=`echo ${common_objpfx}nptl/tst-tls5mod{b,$aligned,c,d}.so \
-	      | sed 's/:$//;s/: /:/g'` ${tst_tls5} >> $logfile || fail=1
+  ${test_wrapper_env} \
+  LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{b,$aligned,c,d}.so \
+	      | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
   echo >> $logfile
 
   echo "preload tst-tls5mod{b,c,d,$aligned}.so" >> $logfile
   echo "===============" >> $logfile
-  LD_PRELOAD=`echo ${common_objpfx}nptl/tst-tls5mod{b,c,d,$aligned}.so \
-	      | sed 's/:$//;s/: /:/g'` ${tst_tls5} >> $logfile || fail=1
+  ${test_wrapper_env} \
+  LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{b,c,d,$aligned}.so \
+	      | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
   echo >> $logfile
 done
 
 echo "preload tst-tls5mod{d,a,b,c,e}" >> $logfile
 echo "===============" >> $logfile
-LD_PRELOAD=`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,c,e}.so \
-	    | sed 's/:$//;s/: /:/g'` ${tst_tls5} >> $logfile || fail=1
+${test_wrapper_env} \
+LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,c,e}.so \
+	    | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
 echo >> $logfile
 
 echo "preload tst-tls5mod{d,a,b,e,f}" >> $logfile
 echo "===============" >> $logfile
-LD_PRELOAD=`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,e,f}.so \
-	    | sed 's/:$//;s/: /:/g'` ${tst_tls5} >> $logfile || fail=1
+${test_wrapper_env} \
+LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,e,f}.so \
+	    | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
 echo >> $logfile
 
 exit $fail

Modified: fsf/trunk/libc/nscd/Makefile
==============================================================================
--- fsf/trunk/libc/nscd/Makefile (original)
+++ fsf/trunk/libc/nscd/Makefile Thu Oct 25 00:02:08 2012
@@ -101,9 +101,7 @@
 $(objpfx)nscd: $(nscd-modules:%=$(objpfx)%.o)
 
 ifeq ($(build-shared),yes)
-$(objpfx)nscd: $(common-objpfx)rt/librt.so $(shared-thread-library) \
-	       $(common-objpfx)nis/libnsl.so
+$(objpfx)nscd: $(shared-thread-library) $(common-objpfx)nis/libnsl.so
 else
-$(objpfx)nscd: $(common-objpfx)rt/librt.a $(static-thread-library) \
-	       $(common-objpfx)nis/libnsl.a
+$(objpfx)nscd: $(static-thread-library) $(common-objpfx)nis/libnsl.a
 endif

Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Thu Oct 25 00:02:08 2012
@@ -1,3 +1,8 @@
+2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
+	(GLIBC_2.17): Add clock_* symbols.
+
 2012-10-09  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* sysdeps/alpha/configure: Regenerated.

Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Thu Oct 25 00:02:08 2012
@@ -1,3 +1,8 @@
+2012-10-22  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
+	(GLIBC_2.17): Add clock_* symbols.
+
 2012-10-22  Andreas Jaeger  <aj@xxxxxxx>
 
 	* ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h (__O_LARGEFILE):

Modified: fsf/trunk/libc/ports/ChangeLog.hppa
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.hppa (original)
+++ fsf/trunk/libc/ports/ChangeLog.hppa Thu Oct 25 00:02:08 2012
@@ -1,3 +1,8 @@
+2012-10-24  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/hppa/nptl/Makefile (tst-oddstacklimit-ENV): Remove.
+	* sysdeps/hppa/nptl/tst-oddstacklimit.c: New file.
+
 2012-10-10  Carlos O'Donell  <carlos@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/hppa/nptl/pthread.h: Update.

Modified: fsf/trunk/libc/ports/ChangeLog.ia64
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.ia64 (original)
+++ fsf/trunk/libc/ports/ChangeLog.ia64 Thu Oct 25 00:02:08 2012
@@ -1,3 +1,11 @@
+2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
+	(GLIBC_2.17): Add clock_* symbols.
+
+	* sysdeps/unix/sysv/linux/ia64/get_clockfreq.c (__get_clockfreq):
+	Use __open, __read, __close rather than their public counterparts.
+
 2012-10-09  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* sysdeps/ia64/configure: Regenerated.

Modified: fsf/trunk/libc/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.m68k (original)
+++ fsf/trunk/libc/ports/ChangeLog.m68k Thu Oct 25 00:02:08 2012
@@ -1,3 +1,9 @@
+2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist:
+	(GLIBC_2.17): Add clock_* symbols.
+	* sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist: Likewise.
+
 2012-10-02  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/m68k/nptl/lowlevellock.h: Fix clone

Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Thu Oct 25 00:02:08 2012
@@ -1,3 +1,15 @@
+2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
+	(GLIBC_2.17): Add clock_* symbols.
+	* sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist: Likewise.
+
+2012-10-24  Andreas Jaeger  <aj@xxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Remove all
+	definitions and declarations that are provided by
+	<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
+
 2012-10-03  Steve Ellcey  <sellcey@xxxxxxxx>
 
 	* sysdeps/mips/ieee754.h: Move to...

Modified: fsf/trunk/libc/ports/ChangeLog.powerpc
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.powerpc (original)
+++ fsf/trunk/libc/ports/ChangeLog.powerpc Thu Oct 25 00:02:08 2012
@@ -1,3 +1,8 @@
+2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
+	(GLIBC_2.17): Add clock_* symbols.
+
 2012-09-26  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist:
@@ -180,7 +185,7 @@
 	* sysdeps/powerpc/nofpu/Makefile
 	[subdirs-soft-fp] (sysdep_routines): Remove gcc-quad-routines.
 	[subdirs-math] (CPPFLAGS): Add -I../soft-fp.
-	[subdirs-math] (CFLAGS-e_powl.c): Add -fno-builtin-fabsl. 
+	[subdirs-math] (CFLAGS-e_powl.c): Add -fno-builtin-fabsl.
 	[subdirs-math] (CFLAGS-s_ccoshl.c): Likewise.
 	[subdirs-math] (CFLAGS-s_csinhl.c): Likewise.
 	[subdirs-math] (CFLAGS-s_clogl.c): Likewise.

Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Thu Oct 25 00:02:08 2012
@@ -1,3 +1,12 @@
+2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist:
+	(GLIBC_2.17): Add clock_* symbols.
+	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist:
+	Likewise.
+	* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist:
+	Likewise.
+
 2012-10-11  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c: New file.

Modified: fsf/trunk/libc/ports/sysdeps/hppa/nptl/Makefile
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/hppa/nptl/Makefile (original)
+++ fsf/trunk/libc/ports/sysdeps/hppa/nptl/Makefile Thu Oct 25 00:02:08 2012
@@ -1,4 +1,4 @@
-# Copyright (C) 2005 Free Software Foundation, Inc.
+# Copyright (C) 2005-2012 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 #
 # The GNU C Library is free software; you can redistribute it and/or
@@ -18,9 +18,3 @@
 ifeq ($(subdir),csu)
 gen-as-const-headers += tcb-offsets.sym
 endif
-
-# This sets the stack resource limit to 8193kb, which is not a multiple
-# of the page size, and therefore an odd sized stack limit. We override
-# this because the default is too small to run with. 
-tst-oddstacklimit-ENV = ; ulimit -s 8193;
-

Added: fsf/trunk/libc/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c (added)
+++ fsf/trunk/libc/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c Thu Oct 25 00:02:08 2012
@@ -1,0 +1,26 @@
+/* Test NPTL with stack limit that is not a multiple of the page size.
+   HPPA version.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This sets the stack resource limit to 8193kb, which is not a multiple
+   of the page size, and therefore an odd sized stack limit.  We override
+   this because the default is too small to run with.  */
+
+#define ODD_STACK_LIMIT (8193 * 1024)
+
+#include <sysdeps/../nptl/tst-oddstacklimit.c>

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -1813,6 +1813,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
 GLIBC_2.2
  GLIBC_2.2 A

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -80,6 +80,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
 GLIBC_2.4
  GLIBC_2.4 A

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c Thu Oct 25 00:02:08 2012
@@ -1,5 +1,5 @@
 /* Get frequency of the system processor.  IA-64/Linux version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -37,7 +37,7 @@
   if (result != 0)
     return result;
 
-  fd = open ("/proc/cpuinfo", O_RDONLY);
+  fd = __open ("/proc/cpuinfo", O_RDONLY);
   if (__builtin_expect (fd != -1, 1))
     {
       /* XXX AFAIK the /proc filesystem can generate "files" only up
@@ -45,7 +45,7 @@
       char buf[4096];
       ssize_t n;
 
-      n = read (fd, buf, sizeof buf);
+      n = __read (fd, buf, sizeof buf);
       if (__builtin_expect (n, 1) > 0)
 	{
 	  char *mhz = memmem (buf, n, "itc MHz", 7);
@@ -81,7 +81,7 @@
 	    }
 	}
 
-      close (fd);
+      __close (fd);
     }
 
   return result;

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -80,6 +80,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
 GLIBC_2.2
  GLIBC_2.2 A

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -81,6 +81,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
 GLIBC_2.4
  GLIBC_2.4 A

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -1769,6 +1769,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
 GLIBC_2.2
  GLIBC_2.2 A

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h Thu Oct 25 00:02:08 2012
@@ -1,6 +1,5 @@
 /* O_*, F_*, FD_* bit values for Linux.
-   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2006,
-   2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1995-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -22,58 +21,26 @@
 #endif
 
 #include <sgidefs.h>
-#include <sys/types.h>
-#ifdef __USE_GNU
-# include <bits/uio.h>
-#endif
 
-
-/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
-   located on an ext2 file system */
-#define O_ACCMODE	   0003
-#define O_RDONLY	     00
-#define O_WRONLY	     01
-#define O_RDWR		     02
 #define O_APPEND	 0x0008
 #define O_SYNC		 0x4010
 #define O_NONBLOCK	 0x0080
-#define O_NDELAY	O_NONBLOCK
 #define O_CREAT		 0x0100	/* not fcntl */
 #define O_TRUNC		 0x0200	/* not fcntl */
 #define O_EXCL		 0x0400	/* not fcntl */
 #define O_NOCTTY	 0x0800	/* not fcntl */
-#define O_FSYNC		 O_SYNC
 #define O_ASYNC		 0x1000
 
-#ifdef __USE_XOPEN2K8
-# define O_NOFOLLOW	0x20000	/* Do not follow links.	 */
-# define O_DIRECTORY	0x10000	/* Must be a directory.	 */
-# define O_CLOEXEC     02000000 /* Set close_on_exec.  */
-#endif
-#ifdef __USE_GNU
-# define O_DIRECT	0x8000	/* Direct disk access hint.  */
-# define O_NOATIME	0x40000	/* Do not set atime.  */
-# define O_PATH	      010000000 /* Resolve pathname but do not open file.  */
+#define __O_DIRECT	 0x8000	/* Direct disk access hint.  */
+#define __O_DSYNC	 0x0010	/* Synchronize data.  */
+
+#if _MIPS_SIM == _ABI64
+/* Not necessary, files are always with 64bit off_t.  */
+# define __O_LARGEFILE  0
+#else
+# define __O_LARGEFILE	0x2000	/* Allow large file opens.  */
 #endif
 
-/* For now Linux has no synchronisity options for data and read operations.
-   We define the symbols here but let them do the same as O_SYNC since
-   this is a superset.	*/
-#if defined __USE_POSIX199309 || defined __USE_UNIX98
-# define O_DSYNC	0x0010	/* Synchronize data.  */
-# define O_RSYNC	O_SYNC	/* Synchronize read operations.	 */
-#endif
-
-#ifdef __USE_LARGEFILE64
-# define O_LARGEFILE	0x2000	/* Allow large file opens.  */
-#endif
-
-/* Values for the second argument to `fcntl'.  */
-#define F_DUPFD		0	/* Duplicate file descriptor.  */
-#define F_GETFD		1	/* Get file descriptor flags.  */
-#define F_SETFD		2	/* Set file descriptor flags.  */
-#define F_GETFL		3	/* Get file status flags.  */
-#define F_SETFL		4	/* Set file status flags.  */
 #ifndef __USE_FILE_OFFSET64
 # define F_GETLK	14	/* Get record locking info.  */
 # define F_SETLK	6	/* Set record locking info (non-blocking).  */
@@ -84,72 +51,18 @@
 # define F_SETLKW	F_SETLKW64 /* Set record locking info (blocking).  */
 #endif
 
-#define F_GETLK64	33	/* Get record locking info.  */
-#define F_SETLK64	34	/* Set record locking info (non-blocking).  */
-#define F_SETLKW64	35	/* Set record locking info (blocking).	*/
-
-#if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K8
-# define F_SETOWN	24	/* Get owner (process receiving SIGIO).  */
-# define F_GETOWN	23	/* Set owner (process receiving SIGIO).  */
+#if _MIPS_SIM != _ABI64
+# define F_GETLK64	33	/* Get record locking info.  */
+# define F_SETLK64	34	/* Set record locking info (non-blocking).  */
+# define F_SETLKW64	35	/* Set record locking info (blocking).	*/
+#else
+# define F_GETLK64	14	/* Get record locking info.	*/
+# define F_SETLK64	6	/* Set record locking info (non-blocking).*/
+# define F_SETLKW64	7	/* Set record locking info (blocking).  */
 #endif
 
-#ifdef __USE_GNU
-# define F_SETSIG	10	/* Set number of signal to be sent.  */
-# define F_GETSIG	11	/* Get number of signal to be sent.  */
-# define F_SETOWN_EX	15	/* Get owner (thread receiving SIGIO).  */
-# define F_GETOWN_EX	16	/* Set owner (thread receiving SIGIO).  */
-#endif
-
-#ifdef __USE_GNU
-# define F_SETLEASE	1024	/* Set a lease.	 */
-# define F_GETLEASE	1025	/* Enquire what lease is active.  */
-# define F_NOTIFY	1026	/* Request notfications on a directory.	 */
-# define F_SETPIPE_SZ	1031	/* Set pipe page size array.  */
-# define F_GETPIPE_SZ	1032	/* Set pipe page size array.  */
-#endif
-#ifdef __USE_XOPEN2K8
-# define F_DUPFD_CLOEXEC 1030	/* Duplicate file descriptor with
-				   close-on-exit set.  */
-#endif
-
-/* For F_[GET|SET]FD.  */
-#define FD_CLOEXEC	1	/* actually anything with low bit set goes */
-
-/* For posix fcntl() and `l_type' field of a `struct flock' for lockf().  */
-#define F_RDLCK		0	/* Read lock.  */
-#define F_WRLCK		1	/* Write lock.	*/
-#define F_UNLCK		2	/* Remove lock.	 */
-
-/* For old implementation of bsd flock().  */
-#define F_EXLCK		4	/* or 3 */
-#define F_SHLCK		8	/* or 4 */
-
-#ifdef __USE_BSD
-/* Operations for bsd flock(), also used by the kernel implementation.	*/
-# define LOCK_SH	1	/* shared lock */
-# define LOCK_EX	2	/* exclusive lock */
-# define LOCK_NB	4	/* or'd with one of the above to prevent
-				   blocking */
-# define LOCK_UN	8	/* remove lock */
-#endif
-
-#ifdef __USE_GNU
-# define LOCK_MAND	32	/* This is a mandatory flock:	*/
-# define LOCK_READ	64	/* ... which allows concurrent read operations.	 */
-# define LOCK_WRITE	128	/* ... which allows concurrent write operations.  */
-# define LOCK_RW	192	/* ... Which allows concurrent read & write operations.	 */
-#endif
-
-#ifdef __USE_GNU
-/* Types of directory notifications that may be requested with F_NOTIFY.  */
-# define DN_ACCESS	0x00000001	/* File accessed.  */
-# define DN_MODIFY	0x00000002	/* File modified.  */
-# define DN_CREATE	0x00000004	/* File created.  */
-# define DN_DELETE	0x00000008	/* File removed.  */
-# define DN_RENAME	0x00000010	/* File renamed.  */
-# define DN_ATTRIB	0x00000020	/* File changed attibutes.  */
-# define DN_MULTISHOT	0x80000000	/* Don't remove notifier.  */
-#endif
+#define __F_SETOWN	24	/* Get owner (process receiving SIGIO).  */
+#define __F_GETOWN	23	/* Set owner (process receiving SIGIO).  */
 
 struct flock
   {
@@ -187,148 +100,5 @@
   };
 #endif
 
-#ifdef __USE_GNU
-/* Owner types.  */
-enum __pid_type
-  {
-    F_OWNER_TID = 0,		/* Kernel thread.  */
-    F_OWNER_PID,		/* Process.  */
-    F_OWNER_PGRP,		/* Process group.  */
-    F_OWNER_GID = F_OWNER_PGRP	/* Alternative, obsolete name.  */
-  };
-
-/* Structure to use with F_GETOWN_EX and F_SETOWN_EX.  */
-struct f_owner_ex
-  {
-    enum __pid_type type;	/* Owner type of ID.  */
-    __pid_t pid;		/* ID of owner.  */
-  };
-#endif
-
-/* Define some more compatibility macros to be backward compatible with
-   BSD systems which did not managed to hide these kernel macros.  */
-#ifdef	__USE_BSD
-# define FAPPEND	O_APPEND
-# define FFSYNC		O_FSYNC
-# define FASYNC		O_ASYNC
-# define FNONBLOCK	O_NONBLOCK
-# define FNDELAY	O_NDELAY
-#endif /* Use BSD.  */
-
-/* Advise to `posix_fadvise'.  */
-#ifdef __USE_XOPEN2K
-# define POSIX_FADV_NORMAL	0 /* No further special treatment.  */
-# define POSIX_FADV_RANDOM	1 /* Expect random page references.  */
-# define POSIX_FADV_SEQUENTIAL	2 /* Expect sequential page references.	 */
-# define POSIX_FADV_WILLNEED	3 /* Will need these pages.  */
-# define POSIX_FADV_DONTNEED	4 /* Don't need these pages.  */
-# define POSIX_FADV_NOREUSE	5 /* Data will be accessed once.  */
-#endif
-
-
-#ifdef __USE_GNU
-/* Flags for SYNC_FILE_RANGE.  */
-# define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
-					     in the range before performing the
-					     write.  */
-# define SYNC_FILE_RANGE_WRITE		2 /* Initiate writeout of all those
-					     dirty pages in the range which are
-					     not presently under writeback.  */
-# define SYNC_FILE_RANGE_WAIT_AFTER	4 /* Wait upon writeout of all pages in
-					     the range after performing the
-					     write.  */
-
-/* Flags for SPLICE and VMSPLICE.  */
-# define SPLICE_F_MOVE		1	/* Move pages instead of copying.  */
-# define SPLICE_F_NONBLOCK	2	/* Don't block on the pipe splicing
-					   (but we may still block on the fd
-					   we splice from/to).  */
-# define SPLICE_F_MORE		4	/* Expect more data.  */
-# define SPLICE_F_GIFT		8	/* Pages passed in are a gift.  */
-
-
-/* File handle structure.  */
-struct file_handle
-{
-  unsigned int handle_bytes;
-  int handle_type;
-  /* File identifier.  */
-  unsigned char f_handle[0];
-};
-
-/* Maximum handle size (for now).  */
-# define MAX_HANDLE_SZ	128
-#endif
-
-__BEGIN_DECLS
-
-#ifdef __USE_GNU
-
-/* Provide kernel hint to read ahead.  */
-extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-    __THROW;
-
-
-/* Selective file content synch'ing.  */
-extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count,
-			    unsigned int __flags);
-
-
-/* Splice address range into a pipe.
-
-   This function is a possible cancellation point and therefore not
-   marked with __THROW.  */
-extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
-			 size_t __count, unsigned int __flags);
-
-/* Splice two files together.
-
-   This function is a possible cancellation point and therefore not
-   marked with __THROW.  */
-extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
-		       __off64_t *__offout, size_t __len,
-		       unsigned int __flags);
-
-/* In-kernel implementation of tee for pipe buffers.
-
-   This function is a possible cancellation point and therefore not
-   marked with __THROW.  */
-extern ssize_t tee (int __fdin, int __fdout, size_t __len,
-		    unsigned int __flags);
-
-/* Reserve storage for the data of the file associated with FD.
-
-   This function is a possible cancellation point and therefore not
-   marked with __THROW.  */
-# ifndef __USE_FILE_OFFSET64
-extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
-# else
-#  ifdef __REDIRECT
-extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset,
-				   __off64_t __len),
-		       fallocate64);
-#  else
-#   define fallocate fallocate64
-#  endif
-# endif
-# ifdef __USE_LARGEFILE64
-extern int fallocate64 (int __fd, int __mode, __off64_t __offset,
-			__off64_t __len);
-# endif
-
-
-/* Map file name to file handle.  */
-extern int name_to_handle_at (int __dfd, const char *__name,
-			      struct file_handle *__handle, int *__mnt_id,
-			      int __flags) __THROW;
-
-/* Open file using the file handle.
-
-   This function is a possible cancellation point and therefore not
-   marked with __THROW.  */
-extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle,
-			      int __flags);
-
-#endif
-
-__END_DECLS
+/* Include generic Linux declarations.  */
+#include <bits/fcntl-linux.h>

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -2244,4 +2244,9 @@
  _gp_disp A
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -1390,6 +1390,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
 GLIBC_2.2
  GLIBC_2.2 A

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -1774,6 +1774,11 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F
  __ppc_get_timebase_freq F
 GLIBC_2.2

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -2082,4 +2082,9 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -2082,4 +2082,9 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist Thu Oct 25 00:02:08 2012
@@ -2082,4 +2082,9 @@
  timespec_get F
 GLIBC_2.17
  GLIBC_2.17 A
+ clock_getcpuclockid F
+ clock_getres F
+ clock_gettime F
+ clock_nanosleep F
+ clock_settime F
  secure_getenv F

Modified: fsf/trunk/libc/posix/Makefile
==============================================================================
--- fsf/trunk/libc/posix/Makefile (original)
+++ fsf/trunk/libc/posix/Makefile Thu Oct 25 00:02:08 2012
@@ -112,12 +112,13 @@
 
 include ../Rules
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 # globtest and wordexp-test currently only works with shared libraries
 ifeq (yes,$(build-shared))
 tests: $(objpfx)globtest.out $(objpfx)wordexp-tst.out
 $(objpfx)globtest.out: globtest.sh $(objpfx)globtest
-	$(SHELL) $< $(common-objpfx) '$(run-program-prefix)'
+	$(SHELL) $< $(common-objpfx) '$(run-via-rtld-prefix)' \
+		'$(test-wrapper)' '$(test-wrapper-env)'
 $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test
 	$(SHELL) $< $(common-objpfx) '$(run-program-prefix)'
 endif
@@ -211,7 +212,7 @@
 # Run a test on the header files we use.
 # XXX Please note that for now we ignore the result of this test.
 tests: $(objpfx)annexc.out
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \
   $(objpfx)bug-regex21-mem $(objpfx)bug-regex31-mem $(objpfx)tst-rxspencer-mem\
   $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \
@@ -276,14 +277,6 @@
 
 $(objpfx)tst-getconf.out: tst-getconf.sh $(objpfx)getconf
 	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)'
-
-ifeq (yes,$(build-shared))
-$(objpfx)tst-regex: $(common-objpfx)rt/librt.so
-$(objpfx)tst-regex2: $(common-objpfx)rt/librt.so
-else
-$(objpfx)tst-regex: $(common-objpfx)rt/librt.a
-$(objpfx)tst-regex2: $(common-objpfx)rt/librt.a
-endif
 
 $(objpfx)bug-ga2-mem: $(objpfx)bug-ga2.out
 	$(common-objpfx)malloc/mtrace $(objpfx)bug-ga2.mtrace > $@

Modified: fsf/trunk/libc/posix/globtest.sh
==============================================================================
--- fsf/trunk/libc/posix/globtest.sh (original)
+++ fsf/trunk/libc/posix/globtest.sh Thu Oct 25 00:02:08 2012
@@ -20,7 +20,10 @@
 set -e
 
 common_objpfx=$1; shift
-run_program_prefix=$1; shift
+run_via_rtld_prefix=$1; shift
+test_wrapper=$1; shift
+test_wrapper_env=$1; shift
+run_program_prefix="${test_wrapper} ${run_via_rtld_prefix}"
 logfile=$common_objpfx/posix/globtest.out
 
 #CMP=cmp
@@ -42,9 +45,10 @@
 export LANG
 
 # Create the arena
-: ${TMPDIR=/tmp}
-testdir=$(mktemp -d $TMPDIR/globtest-dir.XXXXXX)
-testout=$(mktemp $TMPDIR/globtest-out.XXXXXX)
+testdir=${common_objpfx}posix/globtest-dir
+testout=${common_objpfx}posix/globtest-out
+rm -rf $testdir $testout
+mkdir $testdir
 
 trap 'chmod 777 $testdir/noread; rm -fr $testdir $testout' 1 2 3 15
 
@@ -757,8 +761,9 @@
 `dir6/file1[ab]'
 `nondir\/'
 EOF
+${test_wrapper_env} \
 HOME="$testdir" \
-${run_program_prefix} \
+${run_via_rtld_prefix} \
 ${common_objpfx}posix/globtest -ct "$testdir" \
 '~/dir1/file1_1' '~/dir1/file1_9' '~/dir3\*/file1' '~/dir3\*/file2' \
 '~\/dir1/file1_2' |

Modified: fsf/trunk/libc/resolv/Makefile
==============================================================================
--- fsf/trunk/libc/resolv/Makefile (original)
+++ fsf/trunk/libc/resolv/Makefile Thu Oct 25 00:02:08 2012
@@ -108,7 +108,7 @@
 tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace
 $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
 	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 ifneq (no,$(PERL))
 tests: $(objpfx)mtrace-tst-leaks
 endif
@@ -117,7 +117,7 @@
 tst-leaks2-ENV = MALLOC_TRACE=$(objpfx)tst-leaks2.mtrace
 $(objpfx)mtrace-tst-leaks2: $(objpfx)tst-leaks2.out
 	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace > $@
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 ifneq (no,$(PERL))
 xtests: $(objpfx)mtrace-tst-leaks2
 endif

Modified: fsf/trunk/libc/rt/Makefile
==============================================================================
--- fsf/trunk/libc/rt/Makefile (original)
+++ fsf/trunk/libc/rt/Makefile Thu Oct 25 00:02:08 2012
@@ -36,9 +36,12 @@
 		  mq_notify mq_send mq_receive mq_timedsend		\
 		  mq_timedreceive
 
+routines = $(clock-routines)
+
 librt-routines = $(aio-routines) \
-		 $(clock-routines) $(timer-routines) \
-		 $(shm-routines) $(mq-routines)
+		 $(timer-routines) \
+		 $(shm-routines) $(mq-routines) \
+		 clock-compat
 
 tests := tst-shm tst-clock tst-clock_nanosleep tst-timer tst-timer2 \
 	 tst-aio tst-aio64 tst-aio2 tst-aio3 tst-aio4 tst-aio5 tst-aio6 \

Modified: fsf/trunk/libc/rt/Versions
==============================================================================
--- fsf/trunk/libc/rt/Versions (original)
+++ fsf/trunk/libc/rt/Versions Thu Oct 25 00:02:08 2012
@@ -1,3 +1,15 @@
+libc {
+  GLIBC_2.17 {
+    # c*
+    clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
+    clock_nanosleep;
+  }
+  GLIBC_PRIVATE {
+    __clock_getres; __clock_gettime; __clock_settime; __clock_getcpuclockid;
+    __clock_nanosleep;
+  }
+}
+
 librt {
   GLIBC_2.1 {
     # AIO functions.
@@ -6,7 +18,7 @@
     aio_suspend64; aio_write; aio_write64; lio_listio; lio_listio64;
   }
   GLIBC_2.2 {
-    # c*
+    # These have moved to libc and are still here only for compatibility.
     clock_getres; clock_gettime; clock_settime; clock_getcpuclockid;
     clock_nanosleep;
 

Added: fsf/trunk/libc/rt/clock-compat.c
==============================================================================
--- fsf/trunk/libc/rt/clock-compat.c (added)
+++ fsf/trunk/libc/rt/clock-compat.c Thu Oct 25 00:02:08 2012
@@ -1,0 +1,65 @@
+/* ABI compatibility redirects for clock_* symbols in librt.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <shlib-compat.h>
+
+/* The clock_* symbols were originally defined in librt and so
+   are part of its ABI.  As of 2.17, they have moved to libc.
+   So we supply definitions for librt that just redirect to
+   their libc counterparts.  */
+
+#if SHLIB_COMPAT (librt, GLIBC_2_2, GLIBC_2_17)
+
+#include <time.h>
+
+#ifdef HAVE_IFUNC
+# define COMPAT_REDIRECT(name, proto, arglist)				      \
+  __typeof (name) *name##_ifunc (void) asm (#name);			      \
+  __typeof (name) *name##_ifunc (void)					      \
+  {									      \
+    return &__##name;							      \
+  }									      \
+  asm (".type " #name ", %gnu_indirect_function");
+#else
+# define COMPAT_REDIRECT(name, proto, arglist)				      \
+  int									      \
+  name proto								      \
+  {									      \
+    return __##name arglist;						      \
+  }
+#endif
+
+COMPAT_REDIRECT (clock_getres,
+                 (clockid_t clock_id, struct timespec *res),
+                 (clock_id, res))
+COMPAT_REDIRECT (clock_gettime,
+                 (clockid_t clock_id, struct timespec *tp),
+                 (clock_id, tp))
+COMPAT_REDIRECT (clock_settime,
+                 (clockid_t clock_id, const struct timespec *tp),
+                 (clock_id, tp))
+COMPAT_REDIRECT (clock_getcpuclockid,
+                 (pid_t pid, clockid_t *clock_id),
+                 (pid, clock_id))
+COMPAT_REDIRECT (clock_nanosleep,
+                 (clockid_t clock_id, int flags,
+                  const struct timespec *req,
+                  struct timespec *rem),
+                 (clock_id, flags, req, rem))
+
+#endif

Modified: fsf/trunk/libc/rt/clock_getcpuclockid.c
==============================================================================
--- fsf/trunk/libc/rt/clock_getcpuclockid.c (original)
+++ fsf/trunk/libc/rt/clock_getcpuclockid.c Thu Oct 25 00:02:08 2012
@@ -1,4 +1,5 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Get a clockid_t for the process CPU clock of a given process.  Generic.
+   Copyright (C) 2000-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -36,3 +37,4 @@
   return ENOENT;
 #endif
 }
+strong_alias (clock_getcpuclockid, __clock_getcpuclockid)

Modified: fsf/trunk/libc/rt/clock_getres.c
==============================================================================
--- fsf/trunk/libc/rt/clock_getres.c (original)
+++ fsf/trunk/libc/rt/clock_getres.c Thu Oct 25 00:02:08 2012
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Get the resolution of a clock.  Stub version.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,5 +26,6 @@
   __set_errno (ENOSYS);
   return -1;
 }
+strong_alias (clock_getres, __clock_getres)
 stub_warning (clock_getres)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/rt/clock_gettime.c
==============================================================================
--- fsf/trunk/libc/rt/clock_gettime.c (original)
+++ fsf/trunk/libc/rt/clock_gettime.c Thu Oct 25 00:02:08 2012
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999, 2005 Free Software Foundation, Inc.
+/* Get the current value of a clock.  Stub version.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,6 +26,6 @@
   __set_errno (ENOSYS);
   return -1;
 }
-librt_hidden_def (clock_gettime)
+strong_alias (clock_gettime, __clock_gettime)
 stub_warning (clock_gettime)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/rt/clock_nanosleep.c
==============================================================================
--- fsf/trunk/libc/rt/clock_nanosleep.c (original)
+++ fsf/trunk/libc/rt/clock_nanosleep.c Thu Oct 25 00:02:08 2012
@@ -33,5 +33,6 @@
   /* Not implemented.  */
   return ENOSYS;
 }
+strong_alias (clock_nanosleep, __clock_nanosleep)
 stub_warning (clock_nanosleep)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/rt/clock_settime.c
==============================================================================
--- fsf/trunk/libc/rt/clock_settime.c (original)
+++ fsf/trunk/libc/rt/clock_settime.c Thu Oct 25 00:02:08 2012
@@ -1,4 +1,5 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Set a clock to a given value.  Stub version.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,5 +26,6 @@
   __set_errno (ENOSYS);
   return -1;
 }
+strong_alias (clock_settime, __clock_settime)
 stub_warning (clock_settime)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/stdio-common/Makefile
==============================================================================
--- fsf/trunk/libc/stdio-common/Makefile (original)
+++ fsf/trunk/libc/stdio-common/Makefile Thu Oct 25 00:02:08 2012
@@ -63,7 +63,7 @@
 
 include ../Rules
 
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 .PHONY: do-tst-unbputc do-tst-printf
 tests: do-tst-unbputc do-tst-printf
 

Modified: fsf/trunk/libc/stdlib/Makefile
==============================================================================
--- fsf/trunk/libc/stdlib/Makefile (original)
+++ fsf/trunk/libc/stdlib/Makefile Thu Oct 25 00:02:08 2012
@@ -122,7 +122,7 @@
 # Run a test on the header files we use.
 tests: $(objpfx)isomac.out
 
-ifeq (no,$(cross-compiling))
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-fmtmsg.out
 endif
 

Modified: fsf/trunk/libc/string/Makefile
==============================================================================
--- fsf/trunk/libc/string/Makefile (original)
+++ fsf/trunk/libc/string/Makefile Thu Oct 25 00:02:08 2012
@@ -78,7 +78,7 @@
 CFLAGS-bug-strstr1.c = -fno-builtin
 CFLAGS-bug-strcasestr1.c = -fno-builtin
 
-ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-svc.out
 $(objpfx)tst-svc.out: tst-svc.input $(objpfx)tst-svc
 	GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \

Modified: fsf/trunk/libc/sysdeps/posix/clock_getres.c
==============================================================================
--- fsf/trunk/libc/sysdeps/posix/clock_getres.c (original)
+++ fsf/trunk/libc/sysdeps/posix/clock_getres.c Thu Oct 25 00:02:08 2012
@@ -1,5 +1,5 @@
 /* clock_getres -- Get the resolution of a POSIX clockid_t.
-   Copyright (C) 1999,2000,2001,2003,2004,2008 Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -115,3 +115,4 @@
 
   return retval;
 }
+strong_alias (clock_getres, __clock_getres)

Modified: fsf/trunk/libc/sysdeps/unix/clock_gettime.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/clock_gettime.c (original)
+++ fsf/trunk/libc/sysdeps/unix/clock_gettime.c Thu Oct 25 00:02:08 2012
@@ -1,5 +1,5 @@
 /* clock_gettime -- Get the current time from a POSIX clockid_t.  Unix version.
-   Copyright (C) 1999-2004, 2005, 2007, 2011 Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -132,4 +132,4 @@
 
   return retval;
 }
-librt_hidden_def (clock_gettime)
+strong_alias (clock_gettime, __clock_gettime)

Modified: fsf/trunk/libc/sysdeps/unix/clock_nanosleep.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/clock_nanosleep.c (original)
+++ fsf/trunk/libc/sysdeps/unix/clock_nanosleep.c Thu Oct 25 00:02:08 2012
@@ -1,5 +1,5 @@
 /* High-resolution sleep with the specified clock.
-   Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 2000-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -98,3 +98,4 @@
 
   return __builtin_expect (nanosleep (req, rem), 0) ? errno : 0;
 }
+strong_alias (clock_nanosleep, __clock_nanosleep)

Modified: fsf/trunk/libc/sysdeps/unix/clock_settime.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/clock_settime.c (original)

[... 476 lines stripped ...]
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits