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

[Commits] r21353 - in /trunk: ./ libc/ libc/catgets/ libc/crypt/ libc/debug/ libc/dlfcn/ libc/elf/ libc/grp/ libc/iconv/ libc/iconvdat...



Author: joseph
Date: Thu Oct 25 17:18:12 2012
New Revision: 21353

Log:
Merge changes between r21108 and r21352 from /fsf/trunk.

Added:
    trunk/libc/crypt/badsalttest.c
      - copied unchanged from r21352, fsf/trunk/libc/crypt/badsalttest.c
    trunk/libc/debug/test-stpcpy_chk-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/debug/test-stpcpy_chk-ifunc.c
    trunk/libc/debug/test-strcpy_chk-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/debug/test-strcpy_chk-ifunc.c
    trunk/libc/elf/tst-leaks1-static.c
      - copied unchanged from r21352, fsf/trunk/libc/elf/tst-leaks1-static.c
    trunk/libc/include/ifunc-impl-list.h
      - copied unchanged from r21352, fsf/trunk/libc/include/ifunc-impl-list.h
    trunk/libc/misc/ifunc-impl-list.c
      - copied unchanged from r21352, fsf/trunk/libc/misc/ifunc-impl-list.c
    trunk/libc/nptl/tst-cond25.c
      - copied unchanged from r21352, fsf/trunk/libc/nptl/tst-cond25.c
    trunk/libc/ports/sysdeps/hppa/nptl/shlib-versions
      - copied unchanged from r21352, fsf/trunk/libc/ports/sysdeps/hppa/nptl/shlib-versions
    trunk/libc/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c
      - copied unchanged from r21352, fsf/trunk/libc/ports/sysdeps/hppa/nptl/tst-oddstacklimit.c
    trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
      - copied unchanged from r21352, fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/sched_getcpu.c
    trunk/libc/rt/clock-compat.c
      - copied unchanged from r21352, fsf/trunk/libc/rt/clock-compat.c
    trunk/libc/string/test-bcopy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-bcopy-ifunc.c
    trunk/libc/string/test-bcopy.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-bcopy.c
    trunk/libc/string/test-bzero-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-bzero-ifunc.c
    trunk/libc/string/test-bzero.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-bzero.c
    trunk/libc/string/test-memccpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memccpy-ifunc.c
    trunk/libc/string/test-memchr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memchr-ifunc.c
    trunk/libc/string/test-memcmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memcmp-ifunc.c
    trunk/libc/string/test-memcpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memcpy-ifunc.c
    trunk/libc/string/test-memmem-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memmem-ifunc.c
    trunk/libc/string/test-memmove-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memmove-ifunc.c
    trunk/libc/string/test-mempcpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-mempcpy-ifunc.c
    trunk/libc/string/test-memset-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-memset-ifunc.c
    trunk/libc/string/test-rawmemchr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-rawmemchr-ifunc.c
    trunk/libc/string/test-stpcpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-stpcpy-ifunc.c
    trunk/libc/string/test-stpncpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-stpncpy-ifunc.c
    trunk/libc/string/test-strcasecmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strcasecmp-ifunc.c
    trunk/libc/string/test-strcasestr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strcasestr-ifunc.c
    trunk/libc/string/test-strcat-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strcat-ifunc.c
    trunk/libc/string/test-strchr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strchr-ifunc.c
    trunk/libc/string/test-strchrnul-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strchrnul-ifunc.c
    trunk/libc/string/test-strcmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strcmp-ifunc.c
    trunk/libc/string/test-strcpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strcpy-ifunc.c
    trunk/libc/string/test-strcspn-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strcspn-ifunc.c
    trunk/libc/string/test-strlen-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strlen-ifunc.c
    trunk/libc/string/test-strncasecmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strncasecmp-ifunc.c
    trunk/libc/string/test-strncat-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strncat-ifunc.c
    trunk/libc/string/test-strncmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strncmp-ifunc.c
    trunk/libc/string/test-strncpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strncpy-ifunc.c
    trunk/libc/string/test-strnlen-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strnlen-ifunc.c
    trunk/libc/string/test-strpbrk-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strpbrk-ifunc.c
    trunk/libc/string/test-strrchr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strrchr-ifunc.c
    trunk/libc/string/test-strspn-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strspn-ifunc.c
    trunk/libc/string/test-strstr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/string/test-strstr-ifunc.c
    trunk/libc/sysdeps/generic/fips-private.h
      - copied unchanged from r21352, fsf/trunk/libc/sysdeps/generic/fips-private.h
    trunk/libc/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
      - copied unchanged from r21352, fsf/trunk/libc/sysdeps/i386/i686/multiarch/ifunc-impl-list.c
    trunk/libc/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
      - copied unchanged from r21352, fsf/trunk/libc/sysdeps/unix/sysv/linux/bits/fcntl-linux.h
    trunk/libc/sysdeps/unix/sysv/linux/fips-private.h
      - copied unchanged from r21352, fsf/trunk/libc/sysdeps/unix/sysv/linux/fips-private.h
    trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
      - copied unchanged from r21352, fsf/trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
    trunk/libc/wcsmbs/test-wcschr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/wcsmbs/test-wcschr-ifunc.c
    trunk/libc/wcsmbs/test-wcscmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/wcsmbs/test-wcscmp-ifunc.c
    trunk/libc/wcsmbs/test-wcscpy-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/wcsmbs/test-wcscpy-ifunc.c
    trunk/libc/wcsmbs/test-wcslen-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/wcsmbs/test-wcslen-ifunc.c
    trunk/libc/wcsmbs/test-wcsrchr-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/wcsmbs/test-wcsrchr-ifunc.c
    trunk/libc/wcsmbs/test-wmemcmp-ifunc.c
      - copied unchanged from r21352, fsf/trunk/libc/wcsmbs/test-wmemcmp-ifunc.c
Removed:
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pt-initfini.c
    trunk/libc/scripts/run-with-env.sh
Modified:
    trunk/   (props changed)
    trunk/libc/ChangeLog
    trunk/libc/Makeconfig
    trunk/libc/NEWS
    trunk/libc/Rules
    trunk/libc/catgets/Makefile
    trunk/libc/config.h.in
    trunk/libc/configure
    trunk/libc/configure.in
    trunk/libc/crypt/Makefile
    trunk/libc/crypt/crypt-entry.c
    trunk/libc/crypt/crypt-private.h
    trunk/libc/crypt/crypt_util.c
    trunk/libc/crypt/md5c-test.c
    trunk/libc/debug/Makefile
    trunk/libc/debug/test-stpcpy_chk.c
    trunk/libc/debug/test-strcpy_chk.c
    trunk/libc/dlfcn/Makefile
    trunk/libc/elf/Makefile
    trunk/libc/elf/dl-load.c
    trunk/libc/elf/dl-open.c
    trunk/libc/elf/tst-pathopt.sh
    trunk/libc/elf/tst-rtld-load-self.sh
    trunk/libc/grp/Makefile
    trunk/libc/grp/tst_fgetgrent.sh
    trunk/libc/iconv/Makefile
    trunk/libc/iconvdata/Makefile
    trunk/libc/iconvdata/run-iconv-test.sh
    trunk/libc/iconvdata/tst-table.sh
    trunk/libc/iconvdata/tst-tables.sh
    trunk/libc/include/string.h
    trunk/libc/include/time.h
    trunk/libc/intl/Makefile
    trunk/libc/intl/tst-gettext.sh
    trunk/libc/intl/tst-gettext2.sh
    trunk/libc/intl/tst-translit.sh
    trunk/libc/io/Makefile
    trunk/libc/io/fcntl.h
    trunk/libc/io/ftwtest-sh
    trunk/libc/libio/Makefile
    trunk/libc/libio/fileops.c
    trunk/libc/libio/freopen64.c
    trunk/libc/libio/fseeko64.c
    trunk/libc/libio/ftello64.c
    trunk/libc/libio/iofgetpos64.c
    trunk/libc/libio/iofopen64.c
    trunk/libc/libio/iofsetpos64.c
    trunk/libc/libio/libio.h
    trunk/libc/libio/oldiofgetpos64.c
    trunk/libc/libio/oldiofsetpos64.c
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/Makefile
    trunk/libc/localedata/locales/de_AT
    trunk/libc/localedata/locales/mr_IN
    trunk/libc/localedata/tst-fmon.sh
    trunk/libc/localedata/tst-numeric.sh
    trunk/libc/localedata/tst-rpmatch.sh
    trunk/libc/malloc/Makefile
    trunk/libc/malloc/tst-mtrace.sh
    trunk/libc/manual/memory.texi
    trunk/libc/math/Makefile
    trunk/libc/math/libm-test.inc
    trunk/libc/misc/Makefile
    trunk/libc/misc/Versions
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/Makefile
    trunk/libc/nptl/sysdeps/pthread/pthread.h
    trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
    trunk/libc/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
    trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread-pi-defines.sym
    trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
    trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
    trunk/libc/nptl/tst-cancel-wrappers.sh
    trunk/libc/nptl/tst-oddstacklimit.c
    trunk/libc/nptl/tst-tls6.sh
    trunk/libc/nscd/Makefile
    trunk/libc/ports/ChangeLog.alpha
    trunk/libc/ports/ChangeLog.arm
    trunk/libc/ports/ChangeLog.hppa
    trunk/libc/ports/ChangeLog.ia64
    trunk/libc/ports/ChangeLog.m68k
    trunk/libc/ports/ChangeLog.mips
    trunk/libc/ports/ChangeLog.powerpc
    trunk/libc/ports/ChangeLog.tile
    trunk/libc/ports/sysdeps/hppa/nptl/Makefile
    trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/get_clockfreq.c
    trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/mips/bits/fcntl.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/c++-types.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/nptl/localplt.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/c++-types.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/e500/single/nptl/localplt.data   (props changed)
    trunk/libc/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libc.abilist
    trunk/libc/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist
    trunk/libc/posix/Makefile
    trunk/libc/posix/globtest.sh
    trunk/libc/posix/tst-getconf.sh
    trunk/libc/posix/wordexp-tst.sh
    trunk/libc/resolv/Makefile
    trunk/libc/rt/Makefile
    trunk/libc/rt/Versions
    trunk/libc/rt/clock_getcpuclockid.c
    trunk/libc/rt/clock_getres.c
    trunk/libc/rt/clock_gettime.c
    trunk/libc/rt/clock_nanosleep.c
    trunk/libc/rt/clock_settime.c
    trunk/libc/stdio-common/Makefile
    trunk/libc/stdlib/Makefile
    trunk/libc/string/Makefile
    trunk/libc/string/memmem.c
    trunk/libc/string/str-two-way.h
    trunk/libc/string/test-memccpy.c
    trunk/libc/string/test-memchr.c
    trunk/libc/string/test-memcmp.c
    trunk/libc/string/test-memcpy.c
    trunk/libc/string/test-memmem.c
    trunk/libc/string/test-memmove.c
    trunk/libc/string/test-mempcpy.c
    trunk/libc/string/test-memset.c
    trunk/libc/string/test-rawmemchr.c
    trunk/libc/string/test-stpcpy.c
    trunk/libc/string/test-stpncpy.c
    trunk/libc/string/test-strcasecmp.c
    trunk/libc/string/test-strcasestr.c
    trunk/libc/string/test-strcat.c
    trunk/libc/string/test-strchr.c
    trunk/libc/string/test-strcmp.c
    trunk/libc/string/test-strcpy.c
    trunk/libc/string/test-strcspn.c
    trunk/libc/string/test-string.h
    trunk/libc/string/test-strlen.c
    trunk/libc/string/test-strncasecmp.c
    trunk/libc/string/test-strncat.c
    trunk/libc/string/test-strncmp.c
    trunk/libc/string/test-strncpy.c
    trunk/libc/string/test-strnlen.c
    trunk/libc/string/test-strpbrk.c
    trunk/libc/string/test-strrchr.c
    trunk/libc/string/test-strspn.c
    trunk/libc/string/test-strstr.c
    trunk/libc/sysdeps/generic/_G_config.h
    trunk/libc/sysdeps/i386/i686/multiarch/bcopy.S
    trunk/libc/sysdeps/i386/i686/multiarch/bzero.S
    trunk/libc/sysdeps/i386/i686/multiarch/memchr.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/memcpy_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/memmove.S
    trunk/libc/sysdeps/i386/i686/multiarch/memmove_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/mempcpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/mempcpy_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/memrchr.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset_chk.S
    trunk/libc/sysdeps/i386/i686/multiarch/rawmemchr.S
    trunk/libc/sysdeps/i386/i686/multiarch/stpcpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/stpncpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcasecmp_l.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcasestr-c.c
    trunk/libc/sysdeps/i386/i686/multiarch/strcat.S
    trunk/libc/sysdeps/i386/i686/multiarch/strchr.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcspn.S
    trunk/libc/sysdeps/i386/i686/multiarch/strlen.S
    trunk/libc/sysdeps/i386/i686/multiarch/strncase.S
    trunk/libc/sysdeps/i386/i686/multiarch/strncase_l.S
    trunk/libc/sysdeps/i386/i686/multiarch/strncat.S
    trunk/libc/sysdeps/i386/i686/multiarch/strncmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/strncpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/strnlen.S
    trunk/libc/sysdeps/i386/i686/multiarch/strpbrk.S
    trunk/libc/sysdeps/i386/i686/multiarch/strrchr.S
    trunk/libc/sysdeps/i386/i686/multiarch/strspn.S
    trunk/libc/sysdeps/i386/i686/multiarch/strstr-c.c
    trunk/libc/sysdeps/i386/i686/multiarch/wcschr.S
    trunk/libc/sysdeps/i386/i686/multiarch/wcscmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/wcscpy.S
    trunk/libc/sysdeps/i386/i686/multiarch/wcslen.S
    trunk/libc/sysdeps/i386/i686/multiarch/wcsrchr.S
    trunk/libc/sysdeps/i386/i686/multiarch/wmemcmp.S
    trunk/libc/sysdeps/posix/clock_getres.c
    trunk/libc/sysdeps/posix/opendir.c
    trunk/libc/sysdeps/unix/clock_gettime.c
    trunk/libc/sysdeps/unix/clock_nanosleep.c
    trunk/libc/sysdeps/unix/clock_settime.c
    trunk/libc/sysdeps/unix/sysv/linux/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/_G_config.h
    trunk/libc/sysdeps/unix/sysv/linux/clock_getcpuclockid.c
    trunk/libc/sysdeps/unix/sysv/linux/clock_nanosleep.c
    trunk/libc/sysdeps/unix/sysv/linux/i386/get_clockfreq.c
    trunk/libc/sysdeps/unix/sysv/linux/i386/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/s390/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/sh/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/sh/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/sparc/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/get_clockfreq.c
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/x86/bits/fcntl.h
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/64/nptl/libc.abilist
    trunk/libc/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libc.abilist
    trunk/libc/sysdeps/x86/bits/byteswap.h
    trunk/libc/sysdeps/x86_64/multiarch/bcopy.S
    trunk/libc/sysdeps/x86_64/multiarch/bzero.S
    trunk/libc/sysdeps/x86_64/multiarch/memcmp.S
    trunk/libc/sysdeps/x86_64/multiarch/memcpy.S
    trunk/libc/sysdeps/x86_64/multiarch/memcpy_chk.S
    trunk/libc/sysdeps/x86_64/multiarch/memmove.c
    trunk/libc/sysdeps/x86_64/multiarch/memmove_chk.c
    trunk/libc/sysdeps/x86_64/multiarch/mempcpy.S
    trunk/libc/sysdeps/x86_64/multiarch/mempcpy_chk.S
    trunk/libc/sysdeps/x86_64/multiarch/memset.S
    trunk/libc/sysdeps/x86_64/multiarch/memset_chk.S
    trunk/libc/sysdeps/x86_64/multiarch/rawmemchr.S
    trunk/libc/sysdeps/x86_64/multiarch/stpcpy.S
    trunk/libc/sysdeps/x86_64/multiarch/stpncpy.S
    trunk/libc/sysdeps/x86_64/multiarch/strcasecmp_l.S
    trunk/libc/sysdeps/x86_64/multiarch/strcasestr-c.c
    trunk/libc/sysdeps/x86_64/multiarch/strcat.S
    trunk/libc/sysdeps/x86_64/multiarch/strchr.S
    trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
    trunk/libc/sysdeps/x86_64/multiarch/strcmp.S
    trunk/libc/sysdeps/x86_64/multiarch/strcpy.S
    trunk/libc/sysdeps/x86_64/multiarch/strcspn.S
    trunk/libc/sysdeps/x86_64/multiarch/strlen.S
    trunk/libc/sysdeps/x86_64/multiarch/strncase_l.S
    trunk/libc/sysdeps/x86_64/multiarch/strncat.S
    trunk/libc/sysdeps/x86_64/multiarch/strncmp.S
    trunk/libc/sysdeps/x86_64/multiarch/strncpy.S
    trunk/libc/sysdeps/x86_64/multiarch/strnlen.S
    trunk/libc/sysdeps/x86_64/multiarch/strpbrk.S
    trunk/libc/sysdeps/x86_64/multiarch/strrchr.S
    trunk/libc/sysdeps/x86_64/multiarch/strspn.S
    trunk/libc/sysdeps/x86_64/multiarch/strstr-c.c
    trunk/libc/sysdeps/x86_64/multiarch/wcscpy.S
    trunk/libc/sysdeps/x86_64/multiarch/wmemcmp.S
    trunk/libc/wcsmbs/Makefile

Propchange: trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Oct 25 17:18:12 2012
@@ -1,1 +1,1 @@
-/fsf/trunk:15224-21108
+/fsf/trunk:15224-21352

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Thu Oct 25 17:18:12 2012
@@ -1,3 +1,705 @@
+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
+	$(rtld-installed-name).
+	* posix/globtest.sh (elf_objpfx): Remove variable.
+	(rtld_installed_name): Likewise.
+	(library_path): Likewise.
+	(run_program_prefix): New variable.  Use for running globtest
+	binary.
+
+2012-10-23  Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
+	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* Makeconfig (host-built-program-cmd): New variable.
+	* elf/Makefile (tst-stackguard1-ARGS): Use
+	$(host-built-program-cmd).
+	* posix/Makefile (tst-exec-ARGS): Use $(host-built-program-cmd).
+	(tst-spawn-ARGS): Likewise.
+	* rt/Makefile (tst-mqueue7-ARGS): Use $(host-built-program-cmd).
+
+2012-10-23  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
+
+	* Makeconfig (run-via-rtld-prefix): New variable.
+	(run-program-prefix): Define in terms of $(run-via-rtld-prefix).
+	(built-program-cmd): Likewise.
+
+2012-10-22  Andreas Jaeger  <aj@xxxxxxx>
+
+	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h (O_RSYNC): Define to
+	__O_RSYNC if it exists, otherwise to O_SYNC.
+
+2012-10-22  Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
+	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* iconvdata/run-iconv-test.sh: Redirect iconv stdin in loops from
+	/dev/null.
+	* iconvdata/tst-tables.sh: Redirect tst-table.sh stdin in loop
+	from /dev/null
+	* posix/tst-getconf.sh: Redirect getconf stdin in loop from
+	/dev/null.
+
+2012-10-22  Andreas Jaeger  <aj@xxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (__O_LARGEFILE):
+	Define always.
+	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (__O_LARGEFILE): Likewise.
+
+	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+	bits/fcntl-linux.h.
+
+	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h (F_GETLK, F_SETLK)
+	(F_SETLKW) [!F_GETLK]: Define values for [!__USE_FILE_OFFSET64].
+
+	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h (O_LARGEFILE): Rename
+	to __O_LARGEFILE.
+	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (O_LARGEFILE): Rename
+	to __O_LARGEFILE.
+
+2012-10-21  Jim Blandy  <jimb@xxxxxxxxxxxxxxxx>
+	    Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* config.make.in (NM): New variable.
+
+2012-10-21  Andreas Jaeger  <aj@xxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sh/bits/fcntl.h: Remove all
+	definitions and declarations that are provided by
+	<bits/fcntl-linux.h> and include <bits/fcntl-linux.h>.
+
+2012-10-20  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	[BZ #14683]
+	* elf/Makefile (tests-static): Add tst-leaks1-static.
+	(tests): Also depend on $(objpfx)tst-leaks1-static-mem.
+	($(objpfx)tst-leaks1-static): New rule.
+	($(objpfx)tst-leaks1-static-mem): Likewise.
+	(tst-leaks1-static-ENV): New macro.
+	* elf/dl-open.c (dl_open_worker): Check the main application
+	only if SHARED is defined.
+	* elf/tst-leaks1-static.c: New file.
+
+2012-10-20  Andreas Jaeger  <aj@xxxxxxx>
+
+	* sysdeps/unix/sysv/linux/bits/fcntl-linux.h: New file, contains
+	generic values for Linux.
+	* sysdeps/unix/sysv/linux/x86/bits/fcntl.h: Remove all definitions
+	and declarations that are provided by <bits/fcntl-linux.h> and
+	include <bits/fcntl-linux.h>.
+	* sysdeps/unix/sysv/linux/sparc/bits/fcntl.h: Likewise.
+	* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Likewise.
+
+2012-10-20  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* io/fcntl.h: Move include of <bits/types.h> to the top and
+	include it unconditionally.
+
+2012-10-20  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* wcsmbs/Makefile (tests-ifunc): New variable.
+	(tests): Add $(tests-ifunc).
+	* wcsmbs/test-wcschr-ifunc.c: New file.
+	* wcsmbs/test-wcscmp-ifunc.c: Likewise.
+	* wcsmbs/test-wcscpy-ifunc.c: Likewise.
+	* wcsmbs/test-wcslen-ifunc.c: Likewise.
+	* wcsmbs/test-wcsrchr-ifunc.c: Likewise.
+	* wcsmbs/test-wmemcmp-ifunc.c: Likewise.
+
+	* string/Makefile (tests-ifunc): New variable.
+	(tests): Add $(tests-ifunc).
+	* string/test-memccpy.c (TEST_NAME): New macro.
+	* string/test-memchr.c (TEST_NAME): Likewise.
+	* string/test-memcmp.c (TEST_NAME): Likewise.
+	* string/test-memcpy.c (TEST_NAME): Likewise.
+	* string/test-memmem.c (TEST_NAME): Likewise.
+	* string/test-memmove.c (TEST_NAME): Likewise.
+	* string/test-memset.c (TEST_NAME): Likewise.
+	* string/test-rawmemchr.c (TEST_NAME): Likewise.
+	* string/test-stpcpy.c (TEST_NAME): Likewise.
+	* string/test-stpncpy.c (TEST_NAME): Likewise.
+	* string/test-strcasecmp.c (TEST_NAME): Likewise.
+	* string/test-strcasestr.c (TEST_NAME): Likewise.
+	* string/test-strcat.c (TEST_NAME): Likewise.
+	* string/test-strchr.c (TEST_NAME): Likewise.
+	* string/test-strcmp.c(TEST_NAME): Likewise.
+	* string/test-strcpy.c (TEST_NAME): Likewise.
+	* string/test-strcspn.c (TEST_NAME): Likewise.
+	* string/test-strlen.c (TEST_NAME): Likewise.
+	* string/test-strncasecmp.c (TEST_NAME): Likewise.
+	* string/test-strncmp.c (TEST_NAME): Likewise.
+	* string/test-strncpy.c (TEST_NAME): Likewise.
+	* string/test-strnlen.c (TEST_NAME): Likewise.
+	* string/test-strpbrk.c (TEST_NAME): Likewise.
+	* string/test-strrchr.c (TEST_NAME): Likewise.
+	* string/test-strspn.c (TEST_NAME): Likewise.
+	* string/test-strstr.c (TEST_NAME): Likewise.
+	* string/test-bcopy-ifunc.c: New file.
+	* string/test-bzero-ifunc.c: Likewise.
+	* string/test-memccpy-ifunc.c: Likewise.
+	* string/test-memchr-ifunc.c: Likewise.
+	* string/test-memcmp-ifunc.c: Likewise.
+	* string/test-memcpy-ifunc.c: Likewise.
+	* string/test-memmem-ifunc.c: Likewise.
+	* string/test-memmove-ifunc.c: Likewise.
+	* string/test-mempcpy-ifunc.c: Likewise.
+	* string/test-memset-ifunc.c: Likewise.
+	* string/test-rawmemchr-ifunc.c: Likewise.
+	* string/test-stpcpy-ifunc.c: Likewise.
+	* string/test-stpncpy-ifunc.c: Likewise.
+	* string/test-strcasecmp-ifunc.c: Likewise.
+	* string/test-strcasestr-ifunc.c: Likewise.
+	* string/test-strcat-ifunc.c: Likewise.
+	* string/test-strchr-ifunc.c: Likewise.
+	* string/test-strchrnul-ifunc.c: Likewise.
+	* string/test-strcmp-ifunc.c: Likewise.
+	* string/test-strcpy-ifunc.c: Likewise.
+	* string/test-strcspn-ifunc.c: Likewise.
+	* string/test-strlen-ifunc.c: Likewise.
+	* string/test-strncasecmp-ifunc.c: Likewise.
+	* string/test-strncat-ifunc.c: Likewise.
+	* string/test-strncmp-ifunc.c: Likewise.
+	* string/test-strncpy-ifunc.c: Likewise.
+	* string/test-strnlen-ifunc.c: Likewise.
+	* string/test-strpbrk-ifunc.c: Likewise.
+	* string/test-strrchr-ifunc.c: Likewise.
+	* string/test-strspn-ifunc.c: Likewise.
+	* string/test-strstr-ifunc.c: Likewise.
+
+	* debug/Makefile (tests-ifunc): New variable.
+	(tests): Add $(tests-ifunc).
+	* debug/test-stpcpy_chk.c (TEST_NAME): New macro.
+	* debug/test-strcpy_chk.c (TEST_NAME): Likewise.
+	* debug/test-stpcpy_chk-ifunc.c: New file.
+	* debug/test-strcpy_chk-ifunc.c: Likewise.
+
+2012-10-20  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	[BZ #13601]
+	* elf/dl-load.c (open_verify): Retry read if the entire ELF
+	header is not read in.
+
+2012-10-19  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* io/Makefile ($(objpfx)ftwtest.out): Depend on ftwtest-sh.  Pass
+	script to $(SHELL) as $<.  Pass $(common-objpfx) to script
+	directly.  Pass built executable to script as
+	$(built-program-cmd).
+	* io/ftwtest-sh (ldso): Remove variable.  Run ftwtest directly as
+	$testprogram without using LD_LIBRARY_PATH and $ldso.
+
+	* grp/Makefile ($(objpfx)tst_fgetgrent.out): Pass
+	$(run-program-prefix) to tst_fgetgrent.sh, not $(elf-objpfx) and
+	$(rtld-installed-name).
+	* grp/tst_fgetgrent.sh (elf_objpfx): Remove variable.
+	(rtld_installed_name): Likewise.
+	(library_path): Likewise.
+	(run_program_prefix): New variable.  Use it to run tst_fgetgrent.
+	* iconvdata/Makefile ($(objpfx)tst-tables.out): Pass
+	$(run-program-prefix) to tst-tables.sh.
+	* iconvdata/tst-table.sh (run_program_prefix): New variable.  Use
+	it to run tst-table-from and tst-table-to.
+	* iconvdata/tst-tables.sh (run_program_prefix): New variable.
+	Pass it to tst-table.sh.
+	* intl/Makefile ($(objpfx)tst-gettext.out): Pass
+	$(run-program-prefix) to tst-gettext.sh.
+	($(objpfx)tst-translit.out): Pass $(run-program-prefix) to
+	tst-translit.sh.
+	($(objpfx)tst-gettext2.out): Pass $(run-program-prefix) to
+	tst-gettext2.sh.
+	* intl/tst-gettext.sh (run_program_prefix): New variable.  Use it
+	to run tst-gettext.
+	* intl/tst-gettext2.sh (run_program_prefix): New variable.  Use it
+	to run tst-gettext2.
+	* intl/tst-translit.sh (run_program_prefix): New variable.  Use it
+	to run tst-translit.
+	* malloc/Makefile ($(objpfx)tst-mtrace.out): Pass
+	$(run-program-prefix) to tst-mtrace.sh.
+	* malloc/tst-mtrace.sh (run_program_prefix): New variable.  Use it
+	to run tst-mtrace.
+	* posix/Makefile ($(objpfx)wordexp-tst.out): Pass
+	$(run-program-prefix) to wordexp-tst.sh, not $(elf-objpfx) and
+	$(rtld-installed-name).
+	* posix/wordexp-tst.sh (elf_objpfx): Remove variable.
+	(rtld_installed_name): Likewise.
+	(run_program_prefix): New variable.  Use it to run wordexp-test.
+
+	* Makeconfig (ARCH): Remove all definitions.
+	(machine): Likewise.
+	[ARCH]: Remove conditional code.
+	[!objdir]: Give error.
+	[!objdir] (objpfx): Remove.
+	[!objdir] (common-objpfx): Likewise.
+	[!objdir] (common-objdir): Likewise.
+	* configure.in (config_makefile): Remove.  Hardcode Makefile in
+	AC_CONFIG_FILES call.
+	* configure: Regenerated.
+
+	[BZ #13888]
+	* io/ftwtest-sh (tmp): Set to use the working directory, not /tmp
+	or TMPDIR.
+	(testout): Likewise.
+
+	* posix/Makefile ($(objpfx)tst-getconf.out): Pass
+	$(built-program-cmd) to tst-getconf.sh, not $(elf-objpfx) and
+	$(rtld-installed-name).
+	* posix/tst-getconf.sh (elf_objpfx): Remove variable.
+	(rtld_installed_name): Likwise.
+	(runit): Remove function.
+	(run_getconf): New variable,  Use it for running getconf binary.
+
+2012-10-18  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	[BZ #14716]
+	* string/test-memmem.c (check_result): New function.
+	(do_one_test): Use it.
+	(check1): New function.
+	(test_main): Use it.
+
+2012-10-18  Markus Trippelsdorf  <markus@xxxxxxxxxxxxxxx>
+
+	* math/Makefile: Comment on slow compilation of test-tgmath2.c.
+
+2012-10-18  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/generic/_G_config.h (_G_OPEN64): Remove.
+	(_G_LSEEK64): Likewise.
+	(_G_MMAP64): Likewise.
+	(_G_FSTAT64): Likewise.
+	* sysdeps/unix/sysv/linux/_G_config.h (_G_OPEN64): Remove.
+	(_G_LSEEK64): Likewise.
+	(_G_MMAP64): Likewise.
+	(_G_FSTAT64): Likewise.
+	* libio/fileops.c (mmap_remap_check) [_G_MMAP64]: Make code
+	unconditional.  Call __mmap64 directly.
+	(mmap_remap_check) [!_G_MMAP64]: Remove conditional code.
+	(mmap_remap_check) [_G_LSEEK64]: Make code unconditional.  Call
+	__lseek64 directly.
+	(mmap_remap_check) [!_G_LSEEK64]: Remove conditional code.
+	(decide_maybe_mmap) [_G_MMAP64]: Make code unconditional.  Call
+	__mmap64 directly.
+	(decide_maybe_mmap) [!_G_MMAP64]: Remove conditional code.
+	(decide_maybe_mmap) [_G_LSEEK64]: Make code unconditional.  Call
+	__lseek64 directly.
+	(decide_maybe_mmap) [!_G_LSEEK64]: Remove conditional code.
+	(_IO_file_sync_mmap) [_G_LSEEK64]: Make code unconditional.  Call
+	__lseek64 directly.
+	(_IO_file_sync_mmap) [!_G_LSEEK64]: Remove conditional code.
+	(_IO_file_seek) [_G_LSEEK64]: Make code unconditional.  Call
+	__lseek64 directly.
+	(_IO_file_seek) [!_G_LSEEK64]: Remove conditional code.
+	(_IO_file_stat) [_G_FSTAT64]: Make code unconditional.  Call
+	__fxstat64 directly.
+	(_IO_file_stat) [!_G_FSTAT64]: Remove conditional code.
+	* libio/freopen64.c (freopen64) [_G_OPEN64]: Make code
+	unconditional.
+	(freopen64) [!_G_OPEN64]: Remove conditional code.
+	* libio/fseeko64.c (fseeko64) [_G_LSEEK64]: Make code
+	unconditional.
+	(fseeko64) [!_G_LSEEK64]: Remove conditional code.
+	* libio/ftello64.c (ftello64) [_G_LSEEK64]: Make code
+	unconditional.
+	(ftello64) [!_G_LSEEK64]: Remove conditional code.
+	* libio/iofgetpos64.c (_IO_new_fgetpos64) [_G_LSEEK64]: Make code
+	unconditional.
+	(_IO_new_fgetpos64) [!_G_LSEEK64]: Remove conditional code.
+	* libio/iofopen64.c (_IO_fopen64) [_G_OPEN64]: Make code
+	unconditional.
+	(_IO_fopen64) [!_G_OPEN64]: Remove conditional code.
+	* libio/iofsetpos64.c (_IO_new_fsetpos64) [_G_LSEEK64]: Make code
+	unconditional.
+	(_IO_new_fsetpos64) [!_G_LSEEK64]: Remove conditional code.
+	* libio/oldiofgetpos64.c (_IO_old_fgetpos64) [_G_LSEEK64]: Make code
+	unconditional.
+	(_IO_old_fgetpos64) [!_G_LSEEK64]: Remove conditional code.
+	* libio/oldiofsetpos64.c (_IO_old_fsetpos64) [_G_LSEEK64]: Make code
+	unconditional.
+	(_IO_old_fsetpos64) [!_G_LSEEK64]: Remove conditional code.
+
+2012-10-18  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	[BZ #12140]
+	* manual/memory.texi (Malloc Tunable Parameters): Add note
+	about free list pointers overwriting some perturb bytes.
+	Wording suggested by Roland McGrath.
+
+2012-10-17  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* math/libm-test.inc (gamma_test): Do not call feclearexcept.
+	(lgamma_test): Likewise.
+	(tgamma_test): Likewise.
+
+2012-10-16  Florian Weimer  <fweimer@xxxxxxxxxx>
+
+	[BZ #14700]
+	* sysdeps/posix/opendir.c (MAX_DIR_BUFFER_SIZE): New constant.
+	(__alloc_dir): Limit buffer to MAX_DIR_BUFFER_SIZE.
+
+2012-10-16  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
+
+	* NEWS: Mention BZ #14716.
+	* string/str-two-way.h (two_way_short_needle): Fix thinko introduced
+	when removing AVAILABLE1_USES_J macro.
+
+2012-10-12  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86/bits/byteswap.h: Include <bits/types.h>.
+	(__bswap_64): __uint64_t for unsigned 64-bit int.
+
+2012-10-12  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* include/string.h (memmem): Declare libc hidden alias.
+	* string/memmem.c (memmem): Define libc hidden alias.
+	* sysdeps/unix/sysv/linux/powerpc/get_clockfreq.c: Use __open,
+	__read, __close instead of open, read, close.
+
+2012-10-11  H.J. Lu  <hongjiu.lu@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: New file.
+	* sysdeps/x86_64/multiarch/memcmp.S (__memcmp_sse2): Make it
+	global and hidden.
+	* sysdeps/x86_64/multiarch/memcpy.S (__memcpy_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/mempcpy.S (__mempcpy_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/rawmemchr.S (__rawmemchr_sse42):
+	Likewise.
+	(__rawmemchr_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/strcat.S (STRCAT_SSE2): Likewise.
+	* sysdeps/x86_64/multiarch/strchr.S (__strchr_sse42): Likewise.
+	(__strchr_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/strcmp-sse42.S (STRCMP_SSE42): Likewise.
+	* sysdeps/x86_64/multiarch/strcmp.S (STRCMP_SSE2): Likewise.
+	(__strcasecmp_sse2): Likewise.
+	(__strncasecmp_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/strcpy.S (STRCPY_SSE2): Likewise.
+	* sysdeps/x86_64/multiarch/strlen.S (__strlen_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/strnlen.S (__strnlen_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/strrchr.S (__strrchr_sse42): Likewise.
+	(__strrchr_sse2): Likewise.
+	* sysdeps/x86_64/multiarch/memcmp.S: Add comments for
+	ifunc-impl-list.c.
+	* sysdeps/x86_64/multiarch/memcpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/memcpy_chk.S: Likewise.
+	* sysdeps/x86_64/multiarch/memmove.c: Likewise.
+	* sysdeps/x86_64/multiarch/memmove_chk.c: Likewise.
+	* sysdeps/x86_64/multiarch/mempcpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/mempcpy_chk.S: Likewise.
+	* sysdeps/x86_64/multiarch/memset.S: Likewise.
+	* sysdeps/x86_64/multiarch/memset_chk.S: Likewise.
+	* sysdeps/x86_64/multiarch/rawmemchr.S: Likewise.
+	* sysdeps/x86_64/multiarch/stpcpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/stpncpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/strcasecmp_l.S: Likewise.
+	* sysdeps/x86_64/multiarch/strcasestr-c.c: Likewise.
+	* sysdeps/x86_64/multiarch/strcat.S: Likewise.
+	* sysdeps/x86_64/multiarch/strchr.S: Likewise.
+	* sysdeps/x86_64/multiarch/strcmp.S: Likewise.
+	* sysdeps/x86_64/multiarch/strcpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/strcspn.S: Likewise.
+	* sysdeps/x86_64/multiarch/strlen.S: Likewise.
+	* sysdeps/x86_64/multiarch/strncase_l.S: Likewise.
+	* sysdeps/x86_64/multiarch/strncat.S: Likewise.
+	* sysdeps/x86_64/multiarch/strncmp.S: Likewise.
+	* sysdeps/x86_64/multiarch/strncpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/strnlen.S: Likewise.
+	* sysdeps/x86_64/multiarch/strpbrk.S: Likewise.
+	* sysdeps/x86_64/multiarch/strrchr.S: Likewise.
+	* sysdeps/x86_64/multiarch/strspn.S: Likewise.
+	* sysdeps/x86_64/multiarch/strstr-c.c: Likewise.
+	* sysdeps/x86_64/multiarch/wcscpy.S: Likewise.
+	* sysdeps/x86_64/multiarch/wmemcmp.S: Likewise.
+
+	* sysdeps/i386/i686/multiarch/bcopy.S (__bcopy_ia32): Make it
+	global and hidden.
+	* sysdeps/i386/i686/multiarch/bzero.S (__bzero_ia32): Likewise.
+	* sysdeps/i386/i686/multiarch/memcmp.S (__memcmp_ia32): Likewise.
+	* sysdeps/i386/i686/multiarch/memcpy.S (__memcpy_ia32): Likewise.
+	* sysdeps/i386/i686/multiarch/memmove.S (__memmove_ia32):
+	Likewise.
+	* sysdeps/i386/i686/multiarch/mempcpy.S (__mempcpy_ia32):
+	Likewise.
+	* sysdeps/i386/i686/multiarch/strcat.S (STRCAT_IA32): Likewise.
+	* sysdeps/i386/i686/multiarch/strcmp.S (__STRCMP_IA32): Likewise.
+	* sysdeps/i386/i686/multiarch/strcpy.S (STRCPY_IA32): Likewise.
+	* sysdeps/i386/i686/multiarch/bcopy.S: Add comments for
+	ifunc-impl-list.c.
+	* sysdeps/i386/i686/multiarch/bzero.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memchr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memcmp.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memcpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memcpy_chk.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memmove.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memmove_chk.S: Likewise.
+	* sysdeps/i386/i686/multiarch/mempcpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/mempcpy_chk.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memrchr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memset.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memset_chk.S: Likewise.
+	* sysdeps/i386/i686/multiarch/rawmemchr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/stpcpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/stpncpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcasecmp_l.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcasestr-c.c: Likewise.
+	* sysdeps/i386/i686/multiarch/strcat.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strchr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcmp.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcspn.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strlen.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strncase_l.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strncat.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strncmp.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strncpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strnlen.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strpbrk.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strrchr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strspn.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strstr-c.c: Likewise.
+	* sysdeps/i386/i686/multiarch/wcschr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/wcscmp.S: Likewise.
+	* sysdeps/i386/i686/multiarch/wcscpy.S: Likewise.
+	* sysdeps/i386/i686/multiarch/wcslen.S: Likewise.
+	* sysdeps/i386/i686/multiarch/wcsrchr.S: Likewise.
+	* sysdeps/i386/i686/multiarch/wmemcmp.S: Likewise.
+	* sysdeps/i386/i686/multiarch/ifunc-impl-list.c: New file.
+
+	* Rules [$(multi-arch) = no] (tests): Filter out $(tests-ifunc).
+	[$(multi-arch) = no] (xtests): Filter out $(xtests-ifunc).
+	* include/ifunc-impl-list.h: New file.
+	* misc/ifunc-impl-list.c: Likewise.
+	* misc/Makefile (routines): Add ifunc-impl-list.
+	* misc/Versions (GLIBC_PRIVATE): Add __libc_ifunc_impl_list.
+	* string/test-string.h: Include <ifunc-impl-list.h>.
+	[TEST_IFUNC && TEST_NAME] (func_list, func_count, impl_count,
+	impl_array): New variables.
+	(FOR_EACH_IMPL): Support func_list if TEST_IFUNC and TEST_NAME
+	are defined.
+	(test_init): Call __libc_ifunc_impl_list to initialize
+	func_list if TEST_IFUNC and TEST_NAME are defined.
+
+	* string/Makefile (strop-tests): Add bcopy and bzero.
+	* string/test-bcopy.c: New file.
+	* string/test-bzero.c: Likewise.
+	* string/test-memmove.c: Support bcopy test if TEST_BCOPY is
+	defined.
+	* string/test-memset.c: Support bzero test if TEST_BZERO is
+	defined.
+	* sysdeps/x86_64/multiarch/bcopy.S (bcopy): Jump to
+	__libc_memmove.
+	* sysdeps/x86_64/multiarch/bzero.S (__bzero): Jump to
+	__libc_memset.
+	* sysdeps/x86_64/multiarch/memset.S (__libc_memset): New alias
+	of memset.
+
+2012-10-10  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* configure.in: Run $CXX, not cc1plus, to locate C++ headers.
+	* configure: Regenerated.
+
+	* Makeconfig (+link-static-before-libc): Don't include
+	$(link-static-libc).
+
+	* libio/libio.h (_IO_pos_t): Remove.
+
+2012-10-10  Alexandre Oliva <aoliva@xxxxxxxxxx>
+
+	* NEWS: Add note about FIPS mode.  Wording suggested by Roland
+	McGrath.
+
+2012-10-10  Alexandre Oliva <aoliva@xxxxxxxxxx>
+
+	* crypt/crypt-entry.c: Include fips-private.h.
+	(__crypt_r, __crypt): Disable MD5 and DES if FIPS is enabled.
+	* crypt/md5c-test.c (main): Tolerate disabled MD5.
+	* sysdeps/unix/sysv/linux/fips-private.h: New file.
+	* sysdeps/generic/fips-private.h: New file, dummy fallback.
+
+2012-10-10  Alexandre Oliva <aoliva@xxxxxxxxxx>
+
+	* crypt/crypt-private.h: Include stdbool.h.
+	(_ufc_setup_salt_r): Return bool.
+	* crypt/crypt-entry.c: Include errno.h.
+	(__crypt_r): Return NULL with EINVAL for bad salt.
+	* crypt/crypt_util.c (bad_for_salt): New.
+	(_ufc_setup_salt_r): Check that salt is long enough and within
+	the specified alphabet.
+	* crypt/badsalttest.c: New file.
+	* crypt/Makefile (tests): Add it.
+	($(objpfx)badsalttest): New.
+
+2012-10-09  Maxim Kuvyrkov  <maxim@xxxxxxxxxxxxxxxx>
+
+	* NEWS: Add entry for BZ #14602.
+
 2012-10-09  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* math/gen-libm-test.pl (parse_args): Handle comparison macros as

Modified: trunk/libc/Makeconfig
==============================================================================
--- trunk/libc/Makeconfig (original)
+++ trunk/libc/Makeconfig Thu Oct 25 17:18:12 2012
@@ -31,31 +31,6 @@
 
 ifdef subdir
 .. := ../
-endif
-
-# If config.make exists, the source directory was configured,
-# so don't try to be clever and find another directory to build in.
-ifneq (,$(wildcard $(..)config.make))
-ARCH =
-machine =
-else	# Not configured.
-ifndef ARCH
-ifdef machine
-ARCH = $(machine)
-endif # machine
-endif # ARCH
-endif # config.make
-
-# Directory for object files and libc.a.  If this is not defined, the
-# object files live in the subdirectories where their sources live, and
-# libc.a lives in the parent directory (this probably doesn't work any
-# more).
-ifdef ARCH
-ifeq ($(filter /%,$(ARCH)),)
-objdir := $(..)$(ARCH)
-else
-objdir = $(ARCH)
-endif
 endif
 
 # $(common-objdir) is the place to put objects and
@@ -65,15 +40,7 @@
 common-objpfx = $(objdir)/
 common-objdir = $(objdir)
 else
-objpfx :=
-ifdef ..
-common-objpfx = $(..)
-common-objdir = ..
-else
-# This is a kludge.  make wizards might grok.
-common-objpfx = sysdeps/../
-common-objdir = .
-endif
+objdir must be defined by the build-directory Makefile.
 endif
 
 # Root of the sysdeps tree.
@@ -434,7 +401,7 @@
 						     $(start-installed-name))\
 			   $(+preinit) $(link-extra-libs-static) \
 			   $(common-objpfx)libc% $(+postinit),$^) \
-	      $(link-extra-libs-static) $(link-libc-static)
+	      $(link-extra-libs-static)
 +link-static-after-libc = $(+postctorT) $(+postinit)
 +link-static = $(+link-static-before-libc) $(link-libc-static) \
 	       $(+link-static-after-libc)
@@ -597,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 = $(cross-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,$^))
@@ -606,8 +594,11 @@
 $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\
 				       $(filter -Wl$(comma)-rpath-link=%,\
 						$(sysdep-LDFLAGS)))))
-# Never use $(run-via-rtld-prefix) for the statically-linked %-bp test
-# programs, or for tests listed in tests-static or xtests-static.
+# $(run-via-rtld-prefix) is a command that, when prepended to the name
+# of a program built with the newly built library, produces a command
+# that, executed on the host for which the library is built, runs that
+# program.  For the statically-linked %-bp test programs, and for
+# tests listed in tests-static or xtests-static, it is empty.
 run-via-rtld-prefix =							      \
   $(if $(strip $(filter $(notdir $(built-program-file)),		      \
 			$(tests-static) $(xtests-static))		      \
@@ -617,14 +608,22 @@
 else
 run-via-rtld-prefix =
 endif
-run-program-prefix = $(cross-test-wrapper) $($*-WRAPPER) \
-	             $(run-via-rtld-prefix)
-built-program-cmd = $(cross-test-wrapper) $($*-WRAPPER) \
+# $(run-via-rtld-prefix) is a command that, when prepended to the name
+# 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 = $(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 = $(test-wrapper) \
 		    $(run-via-rtld-prefix) $(built-program-file)
-
-# Same as built-program-cmd, but without the cross-test-wrapper.  Used 
-# to run programs from the test machine, as in nptl/tst-cancel7.
-local-built-program-cmd = $(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
+# $(host-built-program-cmd) is used.
+host-built-program-cmd = $(run-via-rtld-prefix) $(built-program-file)
 
 ifndef LD
 LD := ld -X

Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Thu Oct 25 17:18:12 2012
@@ -10,13 +10,14 @@
 * The following bugs are resolved with this release:
 
   1349, 3479, 5044, 5298, 5400, 6530, 6778, 6808, 9685, 9914, 10014, 10038,
-  10631, 11438, 11607, 13412, 13542, 13629, 13679, 13696, 13717, 13741,
-  13939, 13966, 14042, 14090, 14150, 14151, 14154, 14157, 14166, 14173,
-  14195, 14237, 14251, 14252, 14283, 14298, 14303, 14307, 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, 14621, 14638, 14645,
-  14648, 14660, 14661.
+  10631, 11438, 11607, 12140, 13412, 13542, 13601, 13629, 13679, 13696,
+  13717, 13741, 13939, 13966, 14042, 14090, 14150, 14151, 14154, 14157,
+  14166, 14173, 14195, 14237, 14251, 14252, 14283, 14298, 14303, 14307,
+  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,
+  14743.
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and
@@ -48,6 +49,19 @@
   the tty file descriptor in /dev/pts or /dev if /proc is not available.  This
   allows creation of chroots without the procfs mounted on /proc.
 
+* The `crypt' function now fails if passed salt bytes that violate the
+  specification for those values.  On Linux, the `crypt' function will
+  consult /proc/sys/crypto/fips_enabled to determine if "FIPS mode" is
+  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
 
@@ -75,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: trunk/libc/Rules
==============================================================================
--- trunk/libc/Rules (original)
+++ trunk/libc/Rules Thu Oct 25 17:18:12 2012
@@ -84,22 +84,27 @@
 # This makes all the auxiliary and test programs.
 
 .PHONY: others tests
+ifeq ($(multi-arch),no)
+tests := $(filter-out $(tests-ifunc), $(tests))
+xtests := $(filter-out $(xtests-ifunc), $(xtests))
+endif
+
 ifeq ($(build-programs),yes)
 others: $(addprefix $(objpfx),$(others) $(sysdep-others) $(extra-objs))
 else
 others: $(addprefix $(objpfx),$(extra-objs))
 endif
-# eglibc: ifeq ($(cross-compiling),yes)
-# eglibc: tests: $(addprefix $(objpfx),$(tests) $(test-srcs))
-# eglibc: xtests: tests
-# eglibc: else
+ifeq ($(run-built-tests),no)
+tests: $(addprefix $(objpfx),$(tests) $(test-srcs))
+xtests: tests
+else
 ifeq ($(build-bounded),yes)
 tests-bp.out = $(tests:%=$(objpfx)%-bp.out)
 xtests-bp.out = $(xtests:%=$(objpfx)%-bp.out)
 endif
 tests: $(tests:%=$(objpfx)%.out) $(tests-bp.out)
 xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-bp.out)
-# eglibc: endif
+endif
 
 ifeq ($(build-programs),yes)
 binaries-all-notests = $(others) $(sysdep-others)
@@ -175,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: trunk/libc/catgets/Makefile
==============================================================================
--- trunk/libc/catgets/Makefile (original)
+++ trunk/libc/catgets/Makefile Thu Oct 25 17:18:12 2012
@@ -52,7 +52,7 @@
 
 tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de
 
-# eglibc: ifneq ($(cross-compiling),yes)
+ifeq ($(run-built-tests),yes)
 ifeq (y,$(OPTION_EGLIBC_CATGETS))
 tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \
        $(objpfx)test-gencat.out
@@ -84,4 +84,4 @@
 $(objpfx)sample.SJIS.cat: sample.SJIS $(objpfx)gencat
 	GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
 	$(built-program-cmd) -H $(objpfx)test-gencat.h < $(word 1,$^) > $@
-# eglibc: endif
+endif

Modified: trunk/libc/config.h.in
==============================================================================
--- trunk/libc/config.h.in (original)
+++ trunk/libc/config.h.in Thu Oct 25 17:18:12 2012
@@ -185,6 +185,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: trunk/libc/configure
==============================================================================
--- trunk/libc/configure (original)
+++ trunk/libc/configure Thu Oct 25 17:18:12 2012
@@ -630,7 +630,6 @@
 CXX_SYSINCLUDES
 SYSINCLUDES
 AUTOCONF
-READELF
 AWK
 SED
 MAKEINFO
@@ -668,6 +667,7 @@
 use_default_link
 sysheaders
 with_fp
+READELF
 ac_ct_CXX
 CXXFLAGS
 CXX
@@ -3405,6 +3405,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
@@ -4119,25 +4211,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; }
@@ -4167,7 +4270,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
@@ -5157,98 +5260,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
@@ -5433,10 +5444,9 @@
 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
   if test -n "$CXX"; then
     CXX_SYSINCLUDES=
-    cxxversion=`$CXX -dumpversion 2>&5` &&
     cxxmachine=`$CXX -dumpmachine 2>&5` &&
-    cxxplus=`$CXX -print-prog-name=cc1plus`
-    cxxheaders=`$cxxplus -v /dev/null 2>&1 | sed -n '/ \//{p;q;}' | sed 's/ //'`
+    cxxheaders=`$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
+	| sed -n -e '1,/#include/d' -e '/^ \//{p;q;}' | sed 's/ //'`
     test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
     CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
@@ -5476,7 +5486,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
@@ -6235,7 +6245,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
@@ -6466,7 +6476,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
@@ -7541,6 +7551,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.
 
@@ -7625,18 +7642,12 @@
 
 
 
-if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
-  config_makefile=
-else
-  config_makefile=Makefile
-fi
-
 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
 
 
 
-ac_config_files="$ac_config_files config.make ${config_makefile}"
+ac_config_files="$ac_config_files config.make Makefile"
 
 ac_config_commands="$ac_config_commands default"
 
@@ -8355,7 +8366,7 @@
   case $ac_config_target in
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
     "config.make") CONFIG_FILES="$CONFIG_FILES config.make" ;;
-    "${config_makefile}") CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;

Modified: trunk/libc/configure.in
==============================================================================
--- trunk/libc/configure.in (original)
+++ trunk/libc/configure.in Thu Oct 25 17:18:12 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])
@@ -571,17 +572,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*])
 
@@ -601,7 +613,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
@@ -958,7 +970,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)
@@ -1001,10 +1012,9 @@
 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
   if test -n "$CXX"; then
     CXX_SYSINCLUDES=
-    cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
-    cxxplus=`$CXX -print-prog-name=cc1plus`
-    cxxheaders=`$cxxplus -v /dev/null 2>&1 | sed -n '/ \//{p;q;}' | sed 's/ //'`
+    cxxheaders=`$CXX -v -S -x c++ /dev/null -o /dev/null 2>&1 \
+	| sed -n -e '1,/#include/d' -e '/^ \//{p;q;}' | sed 's/ //'`
     test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
     CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
@@ -1040,7 +1050,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
@@ -1410,7 +1420,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
@@ -1560,7 +1570,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
@@ -2146,6 +2156,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)
@@ -2219,18 +2235,12 @@
 dnl See sysdeps/mach/configure.in for this variable.
 AC_SUBST(mach_interface_list)
 
-if test "`(cd $srcdir; pwd)`" = "`pwd`"; then
-  config_makefile=
-else
-  config_makefile=Makefile
-fi
-
 VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
 RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
 AC_SUBST(VERSION)
 AC_SUBST(RELEASE)
 
-AC_CONFIG_FILES([config.make ${config_makefile}])
+AC_CONFIG_FILES([config.make Makefile])
 AC_CONFIG_COMMANDS([default],[[
 case $CONFIG_FILES in *config.make*)
 echo "$config_vars" >> config.make;;

Modified: trunk/libc/crypt/Makefile
==============================================================================
--- trunk/libc/crypt/Makefile (original)
+++ trunk/libc/crypt/Makefile Thu Oct 25 17:18:12 2012
@@ -31,7 +31,7 @@
 libcrypt-routines-$(OPTION_EGLIBC_CRYPT_UFC) := crypt_util crypt
 libcrypt-routines += $(libcrypt-routines-y)
 
-tests-$(OPTION_EGLIBC_CRYPT) := md5c-test sha256c-test sha512c-test
+tests-$(OPTION_EGLIBC_CRYPT) := md5c-test sha256c-test sha512c-test badsalttest
 tests-$(OPTION_EGLIBC_CRYPT_UFC) += cert
 
 include ../Makeconfig

Modified: trunk/libc/crypt/crypt-entry.c
==============================================================================
--- trunk/libc/crypt/crypt-entry.c (original)
+++ trunk/libc/crypt/crypt-entry.c Thu Oct 25 17:18:12 2012
@@ -29,6 +29,7 @@
 #include <string.h>
 #include <gnu/option-groups.h>
 #include <errno.h>
+#include <fips-private.h>
 
 #ifndef STATIC
 #define STATIC static
@@ -95,8 +96,16 @@
 #ifdef _LIBC
   /* Try to find out whether we have to use MD5 encryption replacement.  */
   if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
-    return __md5_crypt_r (key, salt, (char *) data,
-			  sizeof (struct crypt_data));
+    {
+      /* FIPS rules out MD5 password encryption.  */
+      if (fips_enabled_p ())
+	{
+	  __set_errno (EPERM);
+	  return NULL;
+	}
+      return __md5_crypt_r (key, salt, (char *) data,
+			    sizeof (struct crypt_data));
+    }
 
   /* Try to find out whether we have to use SHA256 encryption replacement.  */
   if (strncmp (sha256_salt_prefix, salt, sizeof (sha256_salt_prefix) - 1) == 0)
@@ -113,7 +122,18 @@
   /*
    * Hack DES tables according to salt
    */
-  _ufc_setup_salt_r (salt, data);
+  if (!_ufc_setup_salt_r (salt, data))
+    {
+      __set_errno (EINVAL);
+      return NULL;
+    }
+
+  /* FIPS rules out DES password encryption.  */
+  if (fips_enabled_p ())
+    {
+      __set_errno (EPERM);
+      return NULL;
+    }
 
   /*
    * Setup key schedule
@@ -152,7 +172,9 @@
 {
 #ifdef _LIBC
   /* Try to find out whether we have to use MD5 encryption replacement.  */
-  if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0)
+  if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0
+      /* Let __crypt_r deal with the error code if FIPS is enabled.  */
+      && !fips_enabled_p ())
     return __md5_crypt (key, salt);
 
   /* Try to find out whether we have to use SHA256 encryption replacement.  */

Modified: trunk/libc/crypt/crypt-private.h
==============================================================================
--- trunk/libc/crypt/crypt-private.h (original)
+++ trunk/libc/crypt/crypt-private.h Thu Oct 25 17:18:12 2012
@@ -26,6 +26,7 @@
 #define CRYPT_PRIVATE_H	1
 
 #include <features.h>
+#include <stdbool.h>
 
 /* crypt.c */
 extern void _ufc_doit_r (ufc_long itr, struct crypt_data * __restrict __data,
@@ -36,7 +37,7 @@
 extern void __init_des_r (struct crypt_data * __restrict __data);
 extern void __init_des (void);
 
-extern void _ufc_setup_salt_r (const char *s,
+extern bool _ufc_setup_salt_r (const char *s,
 			       struct crypt_data * __restrict __data);
 extern void _ufc_mk_keytab_r (const char *key,
 			      struct crypt_data * __restrict __data);

Modified: trunk/libc/crypt/crypt_util.c
==============================================================================
--- trunk/libc/crypt/crypt_util.c (original)
+++ trunk/libc/crypt/crypt_util.c Thu Oct 25 17:18:12 2012
@@ -596,23 +596,55 @@
 #endif
 
 /*
+ * Return false iff C is in the specified alphabet for crypt salt.
+ */
+
+static bool
+bad_for_salt (char c)
+{
+  switch (c)
+    {
+    case '0' ... '9':
+    case 'A' ... 'Z':
+    case 'a' ... 'z':
+    case '.': case '/':
+      return false;
+
+    default:
+      return true;
+    }
+}
+
+/*
  * Setup the unit for a new salt
  * Hopefully we'll not see a new salt in each crypt call.
- */
-
-void
+ * Return false if an unexpected character was found in s[0] or s[1].
+ */
+
+bool
 _ufc_setup_salt_r(s, __data)
      const char *s;
      struct crypt_data * __restrict __data;
 {
   ufc_long i, j, saltbits;
+  char s0, s1;
 
   if(__data->initialized == 0)
     __init_des_r(__data);
 
-  if(s[0] == __data->current_salt[0] && s[1] == __data->current_salt[1])
-    return;
-  __data->current_salt[0] = s[0]; __data->current_salt[1] = s[1];
+  s0 = s[0];
+  if(bad_for_salt (s0))
+    return false;
+
+  s1 = s[1];
+  if(bad_for_salt (s1))
+    return false;
+
+  if(s0 == __data->current_salt[0] && s1 == __data->current_salt[1])
+    return true;
+
+  __data->current_salt[0] = s0;
+  __data->current_salt[1] = s1;
 
   /*
    * This is the only crypt change to DES:
@@ -646,6 +678,8 @@
   shuffle_sb((LONGG)__data->sb3, __data->current_saltbits ^ saltbits);
 
   __data->current_saltbits = saltbits;
+
+  return true;
 }
 
 void

Modified: trunk/libc/crypt/md5c-test.c
==============================================================================
--- trunk/libc/crypt/md5c-test.c (original)
+++ trunk/libc/crypt/md5c-test.c Thu Oct 25 17:18:12 2012
@@ -9,7 +9,10 @@
   int result = 0;
 
   cp = crypt ("Hello world!", salt);
-  result |= strcmp ("$1$saltstri$YMyguxXMBpd2TEZ.vS/3q1", cp);
+
+  /* MD5 is disabled in FIPS mode.  */
+  if (cp)
+    result |= strcmp ("$1$saltstri$YMyguxXMBpd2TEZ.vS/3q1", cp);
 
   return result;
 }

Modified: trunk/libc/debug/Makefile
==============================================================================
--- trunk/libc/debug/Makefile (original)
+++ trunk/libc/debug/Makefile Thu Oct 25 17:18:12 2012
@@ -148,6 +148,9 @@
 tests += tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6
 endif
 
+tests-ifunc := $(stpcpy_chk strcpy_chk:%=test-%-ifunc)
+tests += $(tests-ifunc)
+
 extra-libs = libSegFault libpcprofile
 extra-libs-others = $(extra-libs)
 

Modified: trunk/libc/debug/test-stpcpy_chk.c
==============================================================================
--- trunk/libc/debug/test-stpcpy_chk.c (original)
+++ trunk/libc/debug/test-stpcpy_chk.c Thu Oct 25 17:18:12 2012
@@ -1,5 +1,5 @@
 /* Test and measure stpcpy checking functions.
-   Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@xxxxxxxxxx>, 1999.
 
@@ -19,6 +19,7 @@
 
 #define STRCPY_RESULT(dst, len) ((dst) + (len))
 #define TEST_MAIN
+#define TEST_NAME "stpcpy_chk"
 #include "../string/test-string.h"
 
 extern void __attribute__ ((noreturn)) __chk_fail (void);

Modified: trunk/libc/debug/test-strcpy_chk.c
==============================================================================
--- trunk/libc/debug/test-strcpy_chk.c (original)
+++ trunk/libc/debug/test-strcpy_chk.c Thu Oct 25 17:18:12 2012
@@ -1,5 +1,5 @@
 /* Test and measure __strcpy_chk functions.
-   Copyright (C) 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1999-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@xxxxxxxxxx>, 1999.
 
@@ -20,6 +20,7 @@
 #ifndef STRCPY_RESULT
 # define STRCPY_RESULT(dst, len) dst
 # define TEST_MAIN
+# define TEST_NAME "strcpy_chk"
 # include "../string/test-string.h"
 
 extern void __attribute__ ((noreturn)) __chk_fail (void);

Modified: trunk/libc/dlfcn/Makefile
==============================================================================
--- trunk/libc/dlfcn/Makefile (original)
+++ trunk/libc/dlfcn/Makefile Thu Oct 25 17:18:12 2012
@@ -54,10 +54,8 @@
 tests += tststatic tststatic2
 tests-static += tststatic tststatic2
 modules-names += modstatic modstatic2
-tststatic-ENV = EGLIBC_TEST_LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
-tststatic-WRAPPER = $(..)scripts/run-with-env.sh
-tststatic2-ENV = EGLIBC_TEST_LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
-tststatic2-WRAPPER = $(..)scripts/run-with-env.sh
+tststatic-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
+tststatic2-ENV = LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)elf
 endif
 
 extra-test-objs += $(modules-names:=.os)

Modified: trunk/libc/elf/Makefile
==============================================================================
--- trunk/libc/elf/Makefile (original)
+++ trunk/libc/elf/Makefile Thu Oct 25 17:18:12 2012
@@ -122,12 +122,12 @@
 ifeq (yes,$(have-initfini-array))
 tests += tst-array1 tst-array2 tst-array3 tst-array4 tst-array5
 endif
-tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static
+tests-static = tst-tls1-static tst-tls2-static tst-stackguard1-static \
+	       tst-leaks1-static
 ifeq (yes,$(build-shared))
 tests-static += tst-tls9-static
 tst-tls9-static-ENV = \
-  EGLIBC_TEST_LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn
-tst-tls9-static-WRAPPER = $(..)scripts/run-with-env.sh
+       LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn
 endif
 ifeq (yes,$(have-initfini-array))
 tests-static += tst-array1-static tst-array5-static
@@ -164,9 +164,10 @@
 endif
 endif
 endif
-# ifeq ($(cross-compiling),no)
-tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem
-# endif
+ifeq ($(run-built-tests),yes)
+tests: $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \
+       $(objpfx)noload-mem
+endif
 tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 tlsmod17a-modules = $(addprefix tst-tlsmod17a, $(tlsmod17a-suffixes))
@@ -442,9 +443,9 @@
 generated += $(addsuffix .so,$(strip $(modules-names)))
 
 ifeq (yes,$(build-shared))
-# eglibc: ifeq ($(cross-compiling),no)
+ifeq ($(run-built-tests),yes)
 tests: $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out
-# eglibc: endif
+endif
 endif
 
 $(objpfx)testobj1.so: $(libdl)
@@ -610,8 +611,7 @@
 LDFLAGS-preloadtest = -rdynamic
 $(objpfx)preloadtest.out: $(preloadtest-preloads:%=$(objpfx)%.so)
 preloadtest-ENV = \
-  EGLIBC_TEST_LD_PRELOAD=$(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
-preloadtest-WRAPPER = $(..)scripts/run-with-env.sh
+  LD_PRELOAD=$(subst $(empty) ,:,$(strip $(preloadtest-preloads:=.so)))
 
 $(objpfx)loadfail: $(libdl)
 LDFLAGS-loadfail = -rdynamic
@@ -649,7 +649,7 @@
 $(objpfx)order: $(addprefix $(objpfx),dep4.so dep3.so dep2.so dep1.so)
 
 $(objpfx)order.out: $(objpfx)order
-	$(cross-test-wrapper) \
+	$(test-wrapper) \
 	$(elf-objpfx)$(rtld-installed-name) \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $(objpfx)order > $@
@@ -657,8 +657,7 @@
 
 $(objpfx)vismain: $(addprefix $(objpfx),vismod1.so vismod2.so)
 $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
-vismain-ENV = EGLIBC_TEST_LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
-vismain-WRAPPER = $(..)scripts/run-with-env.sh
+vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so)
 
 $(objpfx)noload: $(objpfx)testobj1.so $(common-objpfx)dlfcn/libdl.so
 LDFLAGS-noload = -rdynamic $(no-as-needed)
@@ -717,11 +716,10 @@
 $(objpfx)tst-pathopt: $(libdl)
 $(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
 			  $(objpfx)pathoptobj.so
-	$(SHELL) $< $(common-objpfx) "$(cross-test-wrapper)" \
-		$(..)scripts/run-with-env.sh
+	$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)'
 
 $(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so
-	$(SHELL) $^ "$(cross-test-wrapper)" $(..)scripts/run-with-env.sh > $@
+	$(SHELL) $^ '$(test-wrapper)' '$(test-wrapper-env)' > $@
 
 $(objpfx)initfirst: $(libdl)
 $(objpfx)initfirst.out: $(objpfx)firstobj.so
@@ -1011,38 +1009,31 @@
 $(objpfx)tst-dlmopen3.out: $(objpfx)tst-dlmopen1mod.so
 
 $(objpfx)tst-audit1.out: $(objpfx)tst-auditmod1.so
-tst-audit1-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod1.so
-tst-audit1-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit1-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
 
 $(objpfx)tst-audit2.out: $(objpfx)tst-auditmod1.so
-tst-audit2-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod1.so
-tst-audit2-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit2-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
 
 $(objpfx)tst-audit3: $(objpfx)tst-auditmod3a.so
 $(objpfx)tst-audit3.out: $(objpfx)tst-auditmod3b.so
-tst-audit3-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod3b.so
-tst-audit3-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit3-ENV = LD_AUDIT=$(objpfx)tst-auditmod3b.so
 
 $(objpfx)tst-audit4: $(objpfx)tst-auditmod4a.so
 $(objpfx)tst-audit4.out: $(objpfx)tst-auditmod4b.so
-tst-audit4-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod4b.so
-tst-audit4-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit4-ENV = LD_AUDIT=$(objpfx)tst-auditmod4b.so
 
 $(objpfx)tst-audit5: $(objpfx)tst-auditmod5a.so
 $(objpfx)tst-audit5.out: $(objpfx)tst-auditmod5b.so
-tst-audit5-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod5b.so
-tst-audit5-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit5-ENV = LD_AUDIT=$(objpfx)tst-auditmod5b.so
 
 $(objpfx)tst-audit6: $(objpfx)tst-auditmod6a.so
 $(objpfx)tst-audit6.out: $(objpfx)tst-auditmod6b.so \
 			 $(objpfx)tst-auditmod6c.so
-tst-audit6-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so
-tst-audit6-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit6-ENV = LD_AUDIT=$(objpfx)tst-auditmod6b.so:$(objpfx)tst-auditmod6c.so
 
 $(objpfx)tst-audit7: $(objpfx)tst-auditmod7a.so
 $(objpfx)tst-audit7.out: $(objpfx)tst-auditmod7b.so
-tst-audit7-ENV = EGLIBC_TEST_LD_AUDIT=$(objpfx)tst-auditmod7b.so
-tst-audit7-WRAPPER = $(..)scripts/run-with-env.sh
+tst-audit7-ENV = LD_AUDIT=$(objpfx)tst-auditmod7b.so
 
 $(objpfx)tst-global1: $(libdl)
 $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
@@ -1050,7 +1041,7 @@
 $(objpfx)order2: $(libdl)
 $(objpfx)order2.out: $(objpfx)order2 $(objpfx)order2mod1.so \
 		     $(objpfx)order2mod2.so
-	$(cross-test-wrapper) \
+	$(test-wrapper) \
 	$(elf-objpfx)$(rtld-installed-name) \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $(objpfx)order2 > $@
@@ -1062,14 +1053,19 @@
 LDFLAGS-order2mod1.so = $(no-as-needed)
 LDFLAGS-order2mod2.so = $(no-as-needed)
 
-tst-stackguard1-ARGS = --command "$(local-built-program-cmd) --child"
+tst-stackguard1-ARGS = --command "$(host-built-program-cmd) --child"
 tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
 
 $(objpfx)tst-leaks1: $(libdl)
 $(objpfx)tst-leaks1-mem: $(objpfx)tst-leaks1.out
 	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@
 
+$(objpfx)tst-leaks1-static: $(common-objpfx)dlfcn/libdl.a
+$(objpfx)tst-leaks1-static-mem: $(objpfx)tst-leaks1-static.out
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1-static.mtrace > $@
+
 tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace
+tst-leaks1-static-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1-static.mtrace
 
 $(objpfx)tst-addr1: $(libdl)
 
@@ -1140,7 +1136,7 @@
 $(objpfx)tst-unique4: $(objpfx)tst-unique4lib.so
 
 $(objpfx)tst-initorder.out: $(objpfx)tst-initorder
-	$(cross-test-wrapper) \
+	$(test-wrapper) \
 	$(elf-objpfx)${rtld-installed-name} \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $< > $@
@@ -1162,7 +1158,7 @@
 include $(o-iterator)
 
 $(objpfx)tst-initorder2.out: $(objpfx)tst-initorder2
-	$(cross-test-wrapper) \
+	$(test-wrapper) \
 	$(elf-objpfx)${rtld-installed-name} \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $< > $@
@@ -1187,16 +1183,15 @@
 $(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
+endif
 
 $(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so
-	EGLIBC_TEST_LD_TRACE_LOADED_OBJECTS=1 \
-	EGLIBC_TEST_LD_DEBUG=unused \
-	EGLIBC_TEST_LD_PRELOAD= \
-	$(cross-test-wrapper) \
-	$(..)scripts/run-with-env.sh \
+	$(test-wrapper-env) \
+	LD_TRACE_LOADED_OBJECTS=1 \
+	LD_DEBUG=unused \
+	LD_PRELOAD= \
 	$(elf-objpfx)${rtld-installed-name} \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
 	  $< > $@

Modified: trunk/libc/elf/dl-load.c
==============================================================================
--- trunk/libc/elf/dl-load.c (original)
+++ trunk/libc/elf/dl-load.c Thu Oct 25 17:18:12 2012
@@ -1726,10 +1726,20 @@
       /* We successfully openened the file.  Now verify it is a file
 	 we can use.  */
       __set_errno (0);
-      fbp->len = __libc_read (fd, fbp->buf, sizeof (fbp->buf));
+      fbp->len = 0;
+      assert (sizeof (fbp->buf) > sizeof (ElfW(Ehdr)));
+      /* Read in the header.  */
+      do
+        {
+          ssize_t retlen = __libc_read (fd, fbp->buf + fbp->len,
+					sizeof (fbp->buf) - fbp->len);
+	  if (retlen <= 0)
+	    break;
+	  fbp->len += retlen;
+	}
+      while (__builtin_expect (fbp->len < sizeof (ElfW(Ehdr)), 0));
 
       /* This is where the ELF header is loaded.  */
-      assert (sizeof (fbp->buf) > sizeof (ElfW(Ehdr)));
       ehdr = (ElfW(Ehdr) *) fbp->buf;
 
       /* Now run the tests.  */

Modified: trunk/libc/elf/dl-open.c
==============================================================================
--- trunk/libc/elf/dl-open.c (original)
+++ trunk/libc/elf/dl-open.c Thu Oct 25 17:18:12 2012
@@ -189,9 +189,11 @@
     {
       const void *caller_dlopen = args->caller_dlopen;
 
+#ifdef SHARED
       /* We have to find out from which object the caller is calling.
 	 By default we assume this is the main application.  */
       call_map = GL(dl_ns)[LM_ID_BASE]._ns_loaded;
+#endif
 
       struct link_map *l;
       for (Lmid_t ns = 0; ns < GL(dl_nns); ++ns)

Modified: trunk/libc/elf/tst-pathopt.sh
==============================================================================
--- trunk/libc/elf/tst-pathopt.sh (original)
+++ trunk/libc/elf/tst-pathopt.sh Thu Oct 25 17:18:12 2012
@@ -20,8 +20,7 @@
 set -e
 
 common_objpfx=$1
-cross_test_wrapper="$2"
-run_with_env="$3"
+test_wrapper_env=$2
 
 test -e ${common_objpfx}elf/will-be-empty &&
   rm -fr ${common_objpfx}elf/will-be-empty
@@ -30,10 +29,10 @@
 
 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 EGLIBC_TEST_LD_LIBRARY_PATH=${common_objpfx}elf/will-be-empty:${common_objpfx}elf/for-renamed:${common_objpfx}.:${common_objpfx}dlfcn \
-  ${cross_test_wrapper} ${run_with_env} ${common_objpfx}elf/ld.so \
-    ${common_objpfx}elf/tst-pathopt \
+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 \
     > ${common_objpfx}elf/tst-pathopt.out
 
 exit $?

Modified: trunk/libc/elf/tst-rtld-load-self.sh
==============================================================================
--- trunk/libc/elf/tst-rtld-load-self.sh (original)
+++ trunk/libc/elf/tst-rtld-load-self.sh Thu Oct 25 17:18:12 2012
@@ -21,27 +21,27 @@
 set -e
 
 rtld=$1
-cross_test_wrapper="$2"
-run_with_env="$3"
+test_wrapper=$2
+test_wrapper_env=$3
 result=0
 
 echo '# normal mode'
-${cross_test_wrapper} $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'
-${cross_test_wrapper} $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'
-${cross_test_wrapper} $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'
-EGLIBC_LD_TRACE_LOADED_OBJECTS=1 ${cross_test_wrapper} ${run_with_env} \
+${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: trunk/libc/grp/Makefile
==============================================================================
--- trunk/libc/grp/Makefile (original)
+++ trunk/libc/grp/Makefile Thu Oct 25 17:18:12 2012
@@ -55,13 +55,12 @@
 
 endif
 
-# eglibc: 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
 $(objpfx)tst_fgetgrent.out: tst_fgetgrent.sh $(objpfx)tst_fgetgrent
-	$(SHELL) $< $(common-objpfx) $(elf-objpfx) \
-		 $(rtld-installed-name) "$(cross-test-wrapper)"
+	$(SHELL) $< $(common-objpfx) '$(run-program-prefix)'
 
 endif
-# eglibc: endif
+endif

Modified: trunk/libc/grp/tst_fgetgrent.sh
==============================================================================
--- trunk/libc/grp/tst_fgetgrent.sh (original)
+++ trunk/libc/grp/tst_fgetgrent.sh Thu Oct 25 17:18:12 2012
@@ -20,29 +20,22 @@
 set -e
 
 common_objpfx=$1; shift
-elf_objpfx=$1; shift
-rtld_installed_name=$1; shift
-cross_test_wrapper="$1"; shift
+run_program_prefix=$1; shift
 
 testout=${common_objpfx}/grp/tst_fgetgrent.out
-library_path=${common_objpfx}
 
 result=0
 
-${cross_test_wrapper} \
-${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
+${run_program_prefix} \
 ${common_objpfx}grp/tst_fgetgrent 0 > ${testout} || result=1
 
-${cross_test_wrapper} \
-${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
+${run_program_prefix} \
 ${common_objpfx}grp/tst_fgetgrent 1 >> ${testout} || result=1
 
-${cross_test_wrapper} \
-${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
+${run_program_prefix} \
 ${common_objpfx}grp/tst_fgetgrent 2 >> ${testout} || result=1
 
-${cross_test_wrapper} \
-${elf_objpfx}${rtld_installed_name} --library-path ${library_path} \
+${run_program_prefix} \
 ${common_objpfx}grp/tst_fgetgrent 3 >> ${testout} || result=1
 
 exit $result

Modified: trunk/libc/iconv/Makefile
==============================================================================
--- trunk/libc/iconv/Makefile (original)
+++ trunk/libc/iconv/Makefile Thu Oct 25 17:18:12 2012
@@ -74,9 +74,9 @@
 $(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o)
 $(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o)
 
-# eglibc: ifneq ($(cross-compiling),yes)
+ifeq ($(run-built-tests),yes)
 xtests: test-iconvconfig
-# eglibc: endif
+endif
 
 .PHONY: test-iconvconfig
 test-iconvconfig: /dev/null $(objpfx)iconvconfig

Modified: trunk/libc/iconvdata/Makefile
==============================================================================
--- trunk/libc/iconvdata/Makefile (original)
+++ trunk/libc/iconvdata/Makefile Thu Oct 25 17:18:12 2012
@@ -271,14 +271,14 @@
 
 include ../Rules
 
-# eglibc: 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))
 tests: $(objpfx)mtrace-tst-loading
 endif
 endif
-# eglibc: endif
+endif
 
 tst-loading-ENV = MALLOC_TRACE=$(objpfx)tst-loading.mtrace
 $(objpfx)mtrace-tst-loading: $(objpfx)tst-loading.out
@@ -303,13 +303,13 @@
 $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(common-objdir)/iconv/iconv_prog TESTS
-	$(SHELL) $< $(common-objdir) '$(cross-test-wrapper)' > $@
+	$(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@
 
 $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(objpfx)tst-table-from $(objpfx)tst-table-to
 	$(SHELL) $< $(common-objpfx) $(common-objpfx)iconvdata/ \

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