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

[Commits] r23928 - in /trunk: ./ libc/ libc/argp/ libc/benchtests/ libc/bits/ libc/conform/ libc/crypt/ libc/csu/ libc/debug/ libc/dlf...



Author: joseph
Date: Thu Sep  5 22:41:05 2013
New Revision: 23928

Log:
Merge changes between r23795 and r23927 from /fsf/trunk.

Added:
    trunk/libc/debug/tst-backtrace6.c
      - copied unchanged from r23927, fsf/trunk/libc/debug/tst-backtrace6.c
    trunk/libc/dlfcn/bug-dl-leaf-lib-cb.c
      - copied unchanged from r23927, fsf/trunk/libc/dlfcn/bug-dl-leaf-lib-cb.c
    trunk/libc/dlfcn/bug-dl-leaf-lib.c
      - copied unchanged from r23927, fsf/trunk/libc/dlfcn/bug-dl-leaf-lib.c
    trunk/libc/dlfcn/bug-dl-leaf.c
      - copied unchanged from r23927, fsf/trunk/libc/dlfcn/bug-dl-leaf.c
    trunk/libc/localedata/locales/quz_PE
      - copied unchanged from r23927, fsf/trunk/libc/localedata/locales/quz_PE
    trunk/libc/po/uk.po
      - copied unchanged from r23927, fsf/trunk/libc/po/uk.po
    trunk/libc/ports/sysdeps/arm/armv6t2/strlen.S
      - copied unchanged from r23927, fsf/trunk/libc/ports/sysdeps/arm/armv6t2/strlen.S
    trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/mmap64.c
      - copied unchanged from r23927, fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/mmap64.c
    trunk/libc/socket/sa_len.c
      - copied unchanged from r23927, fsf/trunk/libc/socket/sa_len.c
    trunk/libc/sysdeps/gnu/ldsodefs.h
      - copied unchanged from r23927, fsf/trunk/libc/sysdeps/gnu/ldsodefs.h
    trunk/libc/sysdeps/unix/ifreq.c
      - copied unchanged from r23927, fsf/trunk/libc/sysdeps/unix/ifreq.c
    trunk/libc/sysdeps/unix/sysv/linux/tst-fanotify.c
      - copied unchanged from r23927, fsf/trunk/libc/sysdeps/unix/sysv/linux/tst-fanotify.c
    trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
      - copied unchanged from r23927, fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S
Removed:
    trunk/libc/sysdeps/unix/bsd/bsd4.4/bits/socket.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/aix/
    trunk/libc/sysdeps/x86_64/multiarch/rawmemchr.S
Modified:
    trunk/   (props changed)
    trunk/libc/ChangeLog
    trunk/libc/INSTALL
    trunk/libc/Makefile
    trunk/libc/Makerules
    trunk/libc/NEWS
    trunk/libc/Versions.def
    trunk/libc/argp/argp-help.c
    trunk/libc/argp/argp-parse.c
    trunk/libc/benchtests/Makefile
    trunk/libc/benchtests/bench-memccpy.c
    trunk/libc/benchtests/bench-memchr.c
    trunk/libc/benchtests/bench-memcmp.c
    trunk/libc/benchtests/bench-memcpy.c
    trunk/libc/benchtests/bench-memmem.c
    trunk/libc/benchtests/bench-memmove.c
    trunk/libc/benchtests/bench-memset.c
    trunk/libc/benchtests/bench-rawmemchr.c
    trunk/libc/benchtests/bench-strcasecmp.c
    trunk/libc/benchtests/bench-strcasestr.c
    trunk/libc/benchtests/bench-strcat.c
    trunk/libc/benchtests/bench-strchr.c
    trunk/libc/benchtests/bench-strcmp.c
    trunk/libc/benchtests/bench-strcpy.c
    trunk/libc/benchtests/bench-strcpy_chk.c
    trunk/libc/benchtests/bench-string.h
    trunk/libc/benchtests/bench-strlen.c
    trunk/libc/benchtests/bench-strncasecmp.c
    trunk/libc/benchtests/bench-strncat.c
    trunk/libc/benchtests/bench-strncmp.c
    trunk/libc/benchtests/bench-strncpy.c
    trunk/libc/benchtests/bench-strnlen.c
    trunk/libc/benchtests/bench-strpbrk.c
    trunk/libc/benchtests/bench-strrchr.c
    trunk/libc/benchtests/bench-strspn.c
    trunk/libc/benchtests/bench-strstr.c
    trunk/libc/benchtests/bench-timing.h
    trunk/libc/bits/socket.h
    trunk/libc/config.h.in
    trunk/libc/config.make.in
    trunk/libc/configure
    trunk/libc/configure.in
    trunk/libc/conform/conformtest.pl
    trunk/libc/crypt/speeds.c
    trunk/libc/csu/check_fds.c
    trunk/libc/csu/init-first.c
    trunk/libc/debug/Makefile
    trunk/libc/debug/backtracesyms.c
    trunk/libc/debug/tst-backtrace5.c
    trunk/libc/dlfcn/Makefile
    trunk/libc/dlfcn/dlfcn.h
    trunk/libc/dlfcn/modstatic2.c
    trunk/libc/dlfcn/tststatic2.c
    trunk/libc/elf/Makefile
    trunk/libc/elf/dl-load.c
    trunk/libc/elf/dl-open.c
    trunk/libc/elf/elf.h
    trunk/libc/elf/reldep.c
    trunk/libc/elf/reldep3.c
    trunk/libc/elf/sprof.c
    trunk/libc/extra-lib.mk
    trunk/libc/hurd/Makefile
    trunk/libc/hurd/geteuids.c
    trunk/libc/iconv/gconv_int.h
    trunk/libc/iconv/iconv_charmap.c
    trunk/libc/iconv/loop.c
    trunk/libc/iconv/skeleton.c
    trunk/libc/iconv/strtab.c
    trunk/libc/iconvdata/gbbig5.c
    trunk/libc/iconvdata/iso-2022-jp.c
    trunk/libc/include/complex.h
    trunk/libc/include/fenv.h
    trunk/libc/include/libc-symbols.h
    trunk/libc/include/netdb.h
    trunk/libc/include/resolv.h
    trunk/libc/include/shlib-compat.h
    trunk/libc/inet/ifreq.c
    trunk/libc/io/lockf64.c
    trunk/libc/io/lxstat64.c
    trunk/libc/libidn/ChangeLog
    trunk/libc/libidn/stringprep.c
    trunk/libc/libio/Makefile
    trunk/libc/libio/libioP.h
    trunk/libc/locale/categories.def
    trunk/libc/locale/iso-4217.def
    trunk/libc/locale/programs/ld-collate.c
    trunk/libc/locale/programs/linereader.h
    trunk/libc/localedata/ChangeLog
    trunk/libc/localedata/SUPPORTED
    trunk/libc/localedata/locales/aa_ET
    trunk/libc/localedata/locales/am_ET
    trunk/libc/localedata/locales/an_ES
    trunk/libc/localedata/locales/ar_AE
    trunk/libc/localedata/locales/ar_BH
    trunk/libc/localedata/locales/ar_DZ
    trunk/libc/localedata/locales/ar_EG
    trunk/libc/localedata/locales/ar_IN
    trunk/libc/localedata/locales/ar_IQ
    trunk/libc/localedata/locales/ar_JO
    trunk/libc/localedata/locales/ar_KW
    trunk/libc/localedata/locales/ar_LB
    trunk/libc/localedata/locales/ar_LY
    trunk/libc/localedata/locales/ar_MA
    trunk/libc/localedata/locales/ar_QA
    trunk/libc/localedata/locales/ar_SA
    trunk/libc/localedata/locales/ar_SD
    trunk/libc/localedata/locales/ar_SY
    trunk/libc/localedata/locales/ar_TN
    trunk/libc/localedata/locales/ayc_PE
    trunk/libc/localedata/locales/az_AZ
    trunk/libc/localedata/locales/be_BY
    trunk/libc/localedata/locales/bn_BD
    trunk/libc/localedata/locales/bn_IN
    trunk/libc/localedata/locales/br_FR
    trunk/libc/localedata/locales/bs_BA
    trunk/libc/localedata/locales/ca_ES
    trunk/libc/localedata/locales/csb_PL
    trunk/libc/localedata/locales/da_DK
    trunk/libc/localedata/locales/de_AT
    trunk/libc/localedata/locales/de_BE
    trunk/libc/localedata/locales/de_CH
    trunk/libc/localedata/locales/de_LU
    trunk/libc/localedata/locales/dv_MV
    trunk/libc/localedata/locales/el_GR
    trunk/libc/localedata/locales/en_AU
    trunk/libc/localedata/locales/en_BW
    trunk/libc/localedata/locales/en_CA
    trunk/libc/localedata/locales/en_DK
    trunk/libc/localedata/locales/en_GB
    trunk/libc/localedata/locales/en_HK
    trunk/libc/localedata/locales/en_IE
    trunk/libc/localedata/locales/en_IN
    trunk/libc/localedata/locales/en_NZ
    trunk/libc/localedata/locales/en_PH
    trunk/libc/localedata/locales/en_SG
    trunk/libc/localedata/locales/en_ZW
    trunk/libc/localedata/locales/es_AR
    trunk/libc/localedata/locales/es_BO
    trunk/libc/localedata/locales/es_CL
    trunk/libc/localedata/locales/es_CO
    trunk/libc/localedata/locales/es_DO
    trunk/libc/localedata/locales/es_EC
    trunk/libc/localedata/locales/es_ES
    trunk/libc/localedata/locales/es_GT
    trunk/libc/localedata/locales/es_MX
    trunk/libc/localedata/locales/es_NI
    trunk/libc/localedata/locales/es_PA
    trunk/libc/localedata/locales/es_PE
    trunk/libc/localedata/locales/es_PY
    trunk/libc/localedata/locales/es_SV
    trunk/libc/localedata/locales/es_UY
    trunk/libc/localedata/locales/es_VE
    trunk/libc/localedata/locales/eu_ES
    trunk/libc/localedata/locales/fo_FO
    trunk/libc/localedata/locales/fr_BE
    trunk/libc/localedata/locales/fr_CA
    trunk/libc/localedata/locales/fr_CH
    trunk/libc/localedata/locales/fr_FR
    trunk/libc/localedata/locales/fr_LU
    trunk/libc/localedata/locales/fur_IT
    trunk/libc/localedata/locales/fy_DE
    trunk/libc/localedata/locales/ga_IE
    trunk/libc/localedata/locales/gez_ER
    trunk/libc/localedata/locales/gez_ET
    trunk/libc/localedata/locales/gl_ES
    trunk/libc/localedata/locales/gu_IN
    trunk/libc/localedata/locales/gv_GB
    trunk/libc/localedata/locales/he_IL
    trunk/libc/localedata/locales/hi_IN
    trunk/libc/localedata/locales/hr_HR
    trunk/libc/localedata/locales/ht_HT
    trunk/libc/localedata/locales/hu_HU
    trunk/libc/localedata/locales/id_ID
    trunk/libc/localedata/locales/ik_CA
    trunk/libc/localedata/locales/is_IS
    trunk/libc/localedata/locales/it_CH
    trunk/libc/localedata/locales/it_IT
    trunk/libc/localedata/locales/iu_CA
    trunk/libc/localedata/locales/ja_JP
    trunk/libc/localedata/locales/ka_GE
    trunk/libc/localedata/locales/kk_KZ
    trunk/libc/localedata/locales/kn_IN
    trunk/libc/localedata/locales/ko_KR
    trunk/libc/localedata/locales/ku_TR
    trunk/libc/localedata/locales/kw_GB
    trunk/libc/localedata/locales/ky_KG
    trunk/libc/localedata/locales/lg_UG
    trunk/libc/localedata/locales/lt_LT
    trunk/libc/localedata/locales/lv_LV
    trunk/libc/localedata/locales/mi_NZ
    trunk/libc/localedata/locales/ml_IN
    trunk/libc/localedata/locales/mr_IN
    trunk/libc/localedata/locales/ms_MY
    trunk/libc/localedata/locales/mt_MT
    trunk/libc/localedata/locales/nb_NO
    trunk/libc/localedata/locales/ne_NP
    trunk/libc/localedata/locales/nl_BE
    trunk/libc/localedata/locales/nn_NO
    trunk/libc/localedata/locales/nr_ZA
    trunk/libc/localedata/locales/nso_ZA
    trunk/libc/localedata/locales/om_ET
    trunk/libc/localedata/locales/om_KE
    trunk/libc/localedata/locales/pa_IN
    trunk/libc/localedata/locales/pl_PL
    trunk/libc/localedata/locales/pt_BR
    trunk/libc/localedata/locales/pt_PT
    trunk/libc/localedata/locales/ru_RU
    trunk/libc/localedata/locales/ru_UA
    trunk/libc/localedata/locales/sa_IN
    trunk/libc/localedata/locales/se_NO
    trunk/libc/localedata/locales/sk_SK
    trunk/libc/localedata/locales/sl_SI
    trunk/libc/localedata/locales/so_ET
    trunk/libc/localedata/locales/so_KE
    trunk/libc/localedata/locales/so_SO
    trunk/libc/localedata/locales/sq_AL
    trunk/libc/localedata/locales/ss_ZA
    trunk/libc/localedata/locales/sv_SE
    trunk/libc/localedata/locales/ta_IN
    trunk/libc/localedata/locales/te_IN
    trunk/libc/localedata/locales/tg_TJ
    trunk/libc/localedata/locales/th_TH
    trunk/libc/localedata/locales/ti_ET
    trunk/libc/localedata/locales/tl_PH
    trunk/libc/localedata/locales/tn_ZA
    trunk/libc/localedata/locales/ts_ZA
    trunk/libc/localedata/locales/tt_RU
    trunk/libc/localedata/locales/tt_RU@iqtelif
    trunk/libc/localedata/locales/ur_PK
    trunk/libc/localedata/locales/uz_UZ
    trunk/libc/localedata/locales/ve_ZA
    trunk/libc/localedata/locales/vi_VN
    trunk/libc/localedata/locales/wal_ET
    trunk/libc/localedata/locales/wo_SN
    trunk/libc/localedata/locales/zh_SG
    trunk/libc/localedata/tests-mbwc/dat_wcsncat.c
    trunk/libc/localedata/tests/test6.c
    trunk/libc/localedata/tst-digits.c
    trunk/libc/malloc/malloc.c
    trunk/libc/manual/charset.texi
    trunk/libc/manual/filesys.texi
    trunk/libc/manual/install.texi
    trunk/libc/manual/stdio.texi
    trunk/libc/manual/string.texi
    trunk/libc/math/basic-test.c
    trunk/libc/math/libm-test.inc
    trunk/libc/math/s_cexp.c
    trunk/libc/math/s_cexpf.c
    trunk/libc/math/s_cexpl.c
    trunk/libc/math/s_cproj.c
    trunk/libc/math/s_cprojf.c
    trunk/libc/math/s_cprojl.c
    trunk/libc/math/s_fdim.c
    trunk/libc/math/s_fdimf.c
    trunk/libc/math/s_fdiml.c
    trunk/libc/nis/nis_print.c
    trunk/libc/nis/nss_nis/nis-publickey.c
    trunk/libc/nis/rpcsvc/nis.h
    trunk/libc/nptl/ChangeLog
    trunk/libc/nptl/pthread_getschedparam.c
    trunk/libc/nptl/sysdeps/pthread/pthread.h
    trunk/libc/nptl/sysdeps/unix/sysv/linux/internaltypes.h
    trunk/libc/nptl/sysdeps/unix/sysv/linux/register-atfork.c
    trunk/libc/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
    trunk/libc/nptl/tst-cancel4.c
    trunk/libc/nptl/tst-cleanup2.c
    trunk/libc/nscd/aicache.c
    trunk/libc/nss/nss_files/files-key.c
    trunk/libc/po/ca.po
    trunk/libc/ports/ChangeLog
    trunk/libc/ports/ChangeLog.alpha
    trunk/libc/ports/ChangeLog.am33
    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/alpha/alphaev67/stpncpy.S
    trunk/libc/ports/sysdeps/am33/fpu/fraiseexcpt.c
    trunk/libc/ports/sysdeps/arm/dl-machine.h
    trunk/libc/ports/sysdeps/hppa/dl-lookupcfg.h
    trunk/libc/ports/sysdeps/hppa/fpu/fraiseexcpt.c
    trunk/libc/ports/sysdeps/ia64/fpu/e_acoshl.S
    trunk/libc/ports/sysdeps/ia64/fpu/e_atanhl.S
    trunk/libc/ports/sysdeps/ia64/fpu/e_log.S
    trunk/libc/ports/sysdeps/ia64/fpu/e_log2l.S
    trunk/libc/ports/sysdeps/ia64/fpu/e_logf.S
    trunk/libc/ports/sysdeps/ia64/fpu/e_logl.S
    trunk/libc/ports/sysdeps/ia64/fpu/fraiseexcpt.c
    trunk/libc/ports/sysdeps/ia64/fpu/libm_lgammaf.S
    trunk/libc/ports/sysdeps/ia64/fpu/libm_lgammal.S
    trunk/libc/ports/sysdeps/ia64/fpu/libm_reduce.S
    trunk/libc/ports/sysdeps/ia64/fpu/s_erfc.S
    trunk/libc/ports/sysdeps/ia64/fpu/s_erfcf.S
    trunk/libc/ports/sysdeps/ia64/fpu/s_erfcl.S
    trunk/libc/ports/sysdeps/ia64/fpu/s_log1p.S
    trunk/libc/ports/sysdeps/ia64/fpu/s_log1pl.S
    trunk/libc/ports/sysdeps/ia64/fpu/w_tgammal.S
    trunk/libc/ports/sysdeps/m68k/m680x0/fpu/fraiseexcpt.c
    trunk/libc/ports/sysdeps/mips/fpu/fedisblxcpt.c
    trunk/libc/ports/sysdeps/mips/fpu/feenablxcpt.c
    trunk/libc/ports/sysdeps/mips/fpu_control.h
    trunk/libc/ports/sysdeps/mips/memcpy.S
    trunk/libc/ports/sysdeps/mips/sys/asm.h
    trunk/libc/ports/sysdeps/powerpc/powerpc32/405/memcpy.S
    trunk/libc/ports/sysdeps/tile/jmpbuf-offsets.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/netdb.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/am33/bits/fcntl.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/arm/clone.S
    trunk/libc/ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/Versions
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/clone.S
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/nptl/pthread.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
    trunk/libc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/ia64/nptl/__sigstack_longjmp.c
    trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
    trunk/libc/ports/sysdeps/unix/sysv/linux/mips/ldsodefs.h
    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/resolv/gai_notify.c
    trunk/libc/resolv/ns_name.c
    trunk/libc/resolv/ns_samedomain.c
    trunk/libc/resolv/res_comp.c
    trunk/libc/resolv/res_hconf.c
    trunk/libc/resolv/res_libc.c
    trunk/libc/resolv/res_mkquery.c
    trunk/libc/resolv/res_send.c
    trunk/libc/socket/Makefile
    trunk/libc/stdio-common/vfscanf.c
    trunk/libc/stdlib/Makefile
    trunk/libc/stdlib/fmtmsg.c
    trunk/libc/stdlib/random.c
    trunk/libc/stdlib/stdlib.h
    trunk/libc/stdlib/strtod_l.c
    trunk/libc/stdlib/strtof_l.c
    trunk/libc/stdlib/tst-strtod6.c
    trunk/libc/streams/stropts.h
    trunk/libc/string/Makefile
    trunk/libc/string/test-strcasecmp.c
    trunk/libc/string/test-strncasecmp.c
    trunk/libc/sunrpc/Makefile
    trunk/libc/sunrpc/clnt_tcp.c
    trunk/libc/sunrpc/clnt_udp.c
    trunk/libc/sunrpc/clnt_unix.c
    trunk/libc/sunrpc/rpc/xdr.h
    trunk/libc/sunrpc/rpc_thread.c
    trunk/libc/sysdeps/gnu/Makefile
    trunk/libc/sysdeps/i386/fpu/fraiseexcpt.c
    trunk/libc/sysdeps/i386/fpu/libm-test-ulps
    trunk/libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset-sse2-rep.S
    trunk/libc/sysdeps/i386/i686/multiarch/memset-sse2.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcasecmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcat-sse2.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcmp-sse4.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcmp-ssse3.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcmp.S
    trunk/libc/sysdeps/i386/i686/multiarch/strcpy-sse2.S
    trunk/libc/sysdeps/i386/i686/multiarch/strncase.S
    trunk/libc/sysdeps/i386/i686/multiarch/strstr-c.c
    trunk/libc/sysdeps/i386/stpncpy.S
    trunk/libc/sysdeps/i386/strpbrk.S
    trunk/libc/sysdeps/ieee754/flt-32/e_jnf.c
    trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
    trunk/libc/sysdeps/ieee754/k_standard.c
    trunk/libc/sysdeps/ieee754/ldbl-128/e_expl.c
    trunk/libc/sysdeps/ieee754/ldbl-128/strtold_l.c
    trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c
    trunk/libc/sysdeps/ieee754/ldbl-128ibm/ieee754.h
    trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_cprojl.c
    trunk/libc/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
    trunk/libc/sysdeps/ieee754/ldbl-64-128/strtold_l.c
    trunk/libc/sysdeps/ieee754/ldbl-96/strtold_l.c
    trunk/libc/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
    trunk/libc/sysdeps/mach/hurd/bits/errno.h
    trunk/libc/sysdeps/mach/hurd/check_fds.c
    trunk/libc/sysdeps/mach/hurd/dl-sysdep.c
    trunk/libc/sysdeps/mach/hurd/errnos.awk
    trunk/libc/sysdeps/mach/hurd/i386/init-first.c
    trunk/libc/sysdeps/mach/hurd/profil.c
    trunk/libc/sysdeps/posix/getaddrinfo.c
    trunk/libc/sysdeps/powerpc/powerpc32/backtrace.c
    trunk/libc/sysdeps/powerpc/powerpc32/cell/memcpy.S
    trunk/libc/sysdeps/powerpc/powerpc32/dl-machine.c
    trunk/libc/sysdeps/powerpc/powerpc32/fpu/setjmp.S
    trunk/libc/sysdeps/powerpc/powerpc32/power4/memcmp.S
    trunk/libc/sysdeps/powerpc/powerpc32/power6/memcpy.S
    trunk/libc/sysdeps/powerpc/powerpc32/power6/memset.S
    trunk/libc/sysdeps/powerpc/powerpc32/power7/memcmp.S
    trunk/libc/sysdeps/powerpc/powerpc32/setjmp.S
    trunk/libc/sysdeps/powerpc/powerpc32/sysdep.h
    trunk/libc/sysdeps/powerpc/powerpc64/backtrace.c
    trunk/libc/sysdeps/powerpc/powerpc64/cell/memcpy.S
    trunk/libc/sysdeps/powerpc/powerpc64/power6/memcpy.S
    trunk/libc/sysdeps/powerpc/powerpc64/power6/memset.S
    trunk/libc/sysdeps/pthread/aio_notify.c
    trunk/libc/sysdeps/s390/dl-procinfo.h
    trunk/libc/sysdeps/sparc/fpu/fraiseexcpt.c
    trunk/libc/sysdeps/unix/bsd/ptsname.c
    trunk/libc/sysdeps/unix/sysv/linux/Makefile
    trunk/libc/sysdeps/unix/sysv/linux/i386/chown.c
    trunk/libc/sysdeps/unix/sysv/linux/ifaddrs.c
    trunk/libc/sysdeps/unix/sysv/linux/ldsodefs.h
    trunk/libc/sysdeps/unix/sysv/linux/mmap64.c
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/init-first.c
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/libc-start.c
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S
    trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S
    trunk/libc/sysdeps/unix/sysv/linux/ptsname.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/s390-32/chown.c
    trunk/libc/sysdeps/unix/sysv/linux/s390/sa_len.c
    trunk/libc/sysdeps/unix/sysv/linux/sa_len.c
    trunk/libc/sysdeps/unix/sysv/linux/socketcall.h
    trunk/libc/sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c
    trunk/libc/sysdeps/wordsize-32/divdi3.c
    trunk/libc/sysdeps/x86/fpu/bits/fenv.h
    trunk/libc/sysdeps/x86_64/dl-trampoline.S
    trunk/libc/sysdeps/x86_64/fpu/fraiseexcpt.c
    trunk/libc/sysdeps/x86_64/fpu/libm-test-ulps
    trunk/libc/sysdeps/x86_64/multiarch/Makefile
    trunk/libc/sysdeps/x86_64/multiarch/ifunc-impl-list.c
    trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
    trunk/libc/sysdeps/x86_64/multiarch/strcmp.S
    trunk/libc/sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S

Propchange: trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Sep  5 22:41:05 2013
@@ -1,1 +1,1 @@
-/fsf/trunk:15224-23795
+/fsf/trunk:15224-23927

Modified: trunk/libc/ChangeLog
==============================================================================
--- trunk/libc/ChangeLog (original)
+++ trunk/libc/ChangeLog Thu Sep  5 22:41:05 2013
@@ -1,3 +1,503 @@
+2013-09-04  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* conform/conformtest.pl (newtoken): Treat tokens not allowed as
+	errors.
+	(top level): Treat second token from macro or constant entries for
+	allowed headers as allowed.
+	* include/complex.h: Condition internal declarations on
+	[!_ISOMAC].
+	* include/fenv.h: Condition include of <stdbool.h> and internal
+	declarations on [!_ISOMAC].
+
+2013-09-04  Chris Leonard  <cjl@sugarlabs,.org>
+
+     [BZ #15923]
+	* locale/iso-4217.def: Update iso-1427.def and related occurrences.
+
+2013-09-04  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* configure.in (--enable-versioning): Remove configure option.
+	(libc_cv_asm_symver_directive): Remove configure test.
+	(libc_cv_ld_version_script_option): Likewise.
+	(VERSIONING): Remove variable and AC_SUBST.
+	(DO_VERSIONING): Remove AC_DEFINE.
+	* configure: Regenerated.
+	* config.h.in (DO_VERSIONING): Remove macro.
+	* Makerules [$(versioning) = yes]: Change conditionals to
+	[$(build-shared) = yes].
+	* config.make.in (versioning): Remove variable.
+	* dlfcn/Makefile [$(versioning) = yes]: Change conditionals to
+	[$(build-shared) = yes].
+	* dlfcn/modstatic2.c (test) [DO_VERSIONING]: Remove conditional.
+	* dlfcn/tststatic2.c (main) [DO_VERSIONING]: Likewise.
+	* elf/Makefile [$(versioning) = yes]: Change conditionals to
+	[$(build-shared) = yes].
+	* extra-lib.mk [$(versioning) = yes]: Likewise.
+	* hurd/Makefile [$(versioning) = yes]: Likewise.
+	* hurd/geteuids.c [SHARED && DO_VERSIONING]: Change conditional to
+	[SHARED].
+	* include/libc-symbols.h [DO_VERSIONING]: Change conditional to
+	[SHARED].
+	[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
+	[SHARED && !NO_HIDDEN].
+	* include/shlib-compat.h [DO_VERSIONING]: Change conditional to
+	[SHARED].
+	[SHARED && DO_VERSIONING]: Likewise..
+	* libio/Makefile [$(versioning) = yes]: Change conditionals to
+	[$(build-shared) = yes].
+	* manual/install.texi (--disable-versioning): Remove
+	documentation.
+	* INSTALL: Regenerated.
+	* resolv/res_libc.c [SHARED && DO_VERSIONING]: Change conditional
+	to [SHARED].
+	* sunrpc/Makefile [$(versioning) = yes]: Change conditional to
+	[$(build-shared) = yes].
+	* sysdeps/gnu/Makefile [$(versioning) = yes]: Likewise.
+	* sysdeps/i386/i686/multiarch/strstr-c.c
+	[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
+	[SHARED && !NO_HIDDEN].
+	* sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
+	[SHARED && DO_VERSIONING]: Change conditional to [SHARED].
+	* sysdeps/powerpc/powerpc32/dl-machine.c
+	[SHARED && !(DO_VERSIONING - 0)]: Remove conditional error.
+	* sysdeps/powerpc/powerpc32/sysdep.h
+	[SHARED && DO_VERSIONING && PIC && !NO_HIDDEN]: Change conditional
+	to [SHARED && PIC && !NO_HIDDEN].
+	* sysdeps/wordsize-32/divdi3.c [SHARED && DO_VERSIONING]: Change
+	conditional to [SHARED].
+
+2013-09-04   Will Newton  <will.newton@xxxxxxxxxx>
+
+	* benchtests/bench-timing.h (TIMING_PRINT_MEAN): New macro.
+	* benchtests/bench-string.h: Include bench-timing.h instead
+	of including hp-timing.h directly. (INNER_LOOP_ITERS): New
+	define. (HP_TIMING_BEST): Delete macro. (test_init): Remove
+	call to HP_TIMING_DIFF_INIT.
+	* benchtests/bench-memccpy.c: Use bench-timing.h macros
+	instead of hp-timing.h macros.
+	* benchtests/bench-memchr.c: Likewise.
+	* benchtests/bench-memcmp.c: Likewise.
+	* benchtests/bench-memcpy.c: Likewise.
+	* benchtests/bench-memmem.c: Likewise.
+	* benchtests/bench-memmove.c: Likewise.
+	* benchtests/bench-memset.c: Likewise.
+	* benchtests/bench-rawmemchr.c: Likewise.
+	* benchtests/bench-strcasecmp.c: Likewise.
+	* benchtests/bench-strcasestr.c: Likewise.
+	* benchtests/bench-strcat.c: Likewise.
+	* benchtests/bench-strchr.c: Likewise.
+	* benchtests/bench-strcmp.c: Likewise.
+	* benchtests/bench-strcpy.c: Likewise.
+	* benchtests/bench-strcpy_chk.c: Likewise.
+	* benchtests/bench-strlen.c: Likewise.
+	* benchtests/bench-strncasecmp.c: Likewise.
+	* benchtests/bench-strncat.c: Likewise.
+	* benchtests/bench-strncmp.c: Likewise.
+	* benchtests/bench-strncpy.c: Likewise.
+	* benchtests/bench-strnlen.c: Likewise.
+	* benchtests/bench-strpbrk.c: Likewise.
+	* benchtests/bench-strrchr.c: Likewise.
+	* benchtests/bench-strspn.c: Likewise.
+	* benchtests/bench-strstr.c: Likewise.
+
+2013-09-04  Will Newton  <will.newton@xxxxxxxxxx>
+
+	* benchtests/Makefile: Use LDLIBS instead of LDFLAGS.
+
+2013-09-03  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #15427]
+	* sysdeps/ieee754/flt-32/e_lgammaf_r.c (__ieee754_lgammaf_r): Use
+	2**-30 instead of 2**-70 as threshold for returning -log(|x|).
+	* math/libm-test.inc (lgamma_test_data): Add more tests.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-09-03   OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S: New file.
+	* sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
+	Add ifunc.
+	* sysdeps/x86_64/multiarch/Makefile (sysdep_routines):
+	Add strcmp-sse2-unaligned
+	* sysdeps/x86_64/multiarch/strcmp.S (strcmp): Add ifunc.
+
+2013-09-02  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	* Versions.def (libc): Add GLIBC_2.19.
+
+2013-09-02  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/tst-fanotify.c: New test.
+	* sysdeps/unix/sysv/linux/Makefile (tests): Add tst-fanotify.
+
+2013-09-02  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #14155]
+	* sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_jnf): Use double for
+	intermediate calculations in recurrence.
+	(__ieee754_ynf): Likewise.
+	* math/libm-test.inc (jn_test_data): Do not allow spurious
+	underflow exception.  Add more tests.
+	(yn_test_data): Add more tests.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2013-09-02   OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power6/memcpy.S: Fix typo.
+
+2013-08-30   OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* csu/init-first.c: Fix then/than typos.
+	* locale/programs/ld-collate.c: Likewise.
+	* locale/programs/linereader.h: Likewise.
+	* manual/charset.texi: Likewise.
+	* manual/filesys.texi: Likewise.
+	* manual/stdio.texi: Likewise.
+	* manual/string.texi: Likewise.
+	* stdlib/fmtmsg.c: Likewise.
+	* sysdeps/i386/stpncpy.S: Likewise.
+	* sysdeps/powerpc/powerpc32/power6/memcpy.S: Likewise.
+	* sysdeps/powerpc/powerpc32/power6/memset.S: Likewise.
+	* sysdeps/powerpc/powerpc64/power6/memcpy.S: Likewise.
+	* sysdeps/powerpc/powerpc64/power6/memset.S: Likewise.
+
+2013-08-30   OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* elf/dl-open.c: Fix typos.
+	* iconvdata/gbbig5.c: Likewise.
+	* iconvdata/iso-2022-jp.c: Likewise.
+	* iconv/gconv_int.h: Likewise.
+	* iconv/loop.c: Likewise.
+	* nis/rpcsvc/nis.h: Likewise.
+	* resolv/ns_name.c: Likewise.
+	* stdio-common/vfscanf.c: Likewise.
+	* streams/stropts.h: Likewise.
+	* sunrpc/rpc_thread.c: Likewise.
+	* sysdeps/i386/strpbrk.S: Likewise.
+	* sysdeps/ieee754/k_standard.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_expl.c: Likewise.
+	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.
+	* sysdeps/mach/hurd/profil.c: Likewise.
+	* sysdeps/s390/dl-procinfo.h: Likewise.
+	* sysdeps/unix/sysv/linux/i386/chown.c: Likewise.
+	* sysdeps/unix/sysv/linux/s390/s390-32/chown.c: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/makecontext.c: Likewise.
+	* sysdeps/x86_64/dl-trampoline.S: Likewise.
+	* sysdeps/x86_64/multiarch/strcmp-sse42.S: Likewise.
+
+2013-08-30  OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/rawmemchr.S: Delete.
+	* sysdeps/x86_64/multiarch/ifunc-impl-list.c: Remove rawmemchr ifunc.
+
+2013-08-29  OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/powerpc/aix/aix-dirent.h: Remove
+	aix specific files.
+	* sysdeps/unix/sysv/linux/powerpc/aix/aix-errno.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/aix-stat.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/aix-termios.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/direntconv.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/errnoconv.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/statconv.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/tcgetattr.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/aix/tcsetattr.c: Likewise.
+
+2013-08-29  Thomas Schwinge  <thomas@xxxxxxxxxxxxxxxx>
+	    Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* sysdeps/mach/hurd/errnos.awk (BEGIN): Emit ESUCCESS.
+	* sysdeps/mach/hurd/bits/errno.h: Regenerate.
+
+2013-08-29  Samuel Thibault  <samuel.thibault@xxxxxxxxxxxx>
+
+	* sysdeps/mach/hurd/i386/init-first.c (init1): Use
+	__executable_start symbol instead of _start.
+
+2013-08-29  Thomas Schwinge  <thomas@xxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_HEADER)
+	(VALID_ELF_OSABI, VALID_ELF_ABIVERSION, MORE_ELF_HEADER_DATA):
+	Move macros to...
+	* sysdeps/gnu/ldsodefs.h: ... this new file.
+
+	* sysdeps/unix/sysv/linux/ldsodefs.h (VALID_ELF_OSABI)
+	(VALID_ELF_ABIVERSION, MORE_ELF_HEADER_DATA): Use ELFOSABI_GNU
+	instead of ELFOSABI_LINUX.
+
+	[BZ #15522] strtod ("nan(N)") returning a sNaN in some cases
+	* stdlib/strtof_l.c (SET_MANTISSA): Rewrite.
+	* stdlib/strtod_l.c (SET_MANTISSA): Likewise.
+	* sysdeps/ieee754/ldbl-64-128/strtold_l.c (SET_MANTISSA):
+	Likewise.
+	* sysdeps/ieee754/ldbl-96/strtold_l.c (SET_MANTISSA): Likewise.
+	* sysdeps/ieee754/ldbl-128/strtold_l.c (SET_MANTISSA): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/strtold_l.c (SET_MANTISSA):
+	Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/ieee754.h
+	(ibm_extended_long_double): Add ieee_nan member.
+	* stdlib/tst-strtod6.c (test): New function, renamed from do_test.
+	(do_test): New function.
+
+	* math/basic-test.c (TEST_CONVERT): New macro, renamed from
+	TEST_TRUNC.
+	(convert_dfsf_test, convert_tfsf_test, convert_tfdf_test): New
+	functions, renamed from truncdfsf_test, trunctfsf_test,
+	trunctfdf_test.
+	(convert_sfdf_test, convert_sftf_test, convert_dftf_test): New
+	functions.
+	(do_test): Run all these.
+
+2013-08-29   OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* argp/argp-help.c: Fix typos.
+	* argp/argp-parse.c: Likewise.
+	* debug/backtracesyms.c: Likewise.
+	* elf/elf.h: Likewise.
+	* malloc/malloc.c: Likewise.
+	* nis/nis_print.c: Likewise.
+	* resolv/res_comp.c: Likewise.
+	* stdlib/stdlib.h: Likewise.
+	* sunrpc/clnt_tcp.c: Likewise.
+	* sunrpc/clnt_udp.c: Likewise.
+	* sunrpc/clnt_unix.c: Likewise.
+	* sysdeps/unix/bsd/ptsname.c: Likewise.
+	* sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/libc-start.c: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext-common.S:
+	Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
+	Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S:
+	Likewise.
+	* sysdeps/unix/sysv/linux/ptsname.c: Likewise.
+
+2013-08-28  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	* nscd/aicache.c (addhstaiX): Use __glibc_unlikely.
+	* sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise.
+
+2013-08-27  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	[BZ #15897]
+	* dlfcn/Makefile (tests): Add bug-dl-leaf.
+	(modules-names): Add bug-dl-leaf-lib and bug-dl-leaf-lib-cb.
+	($(objpfx)bug-dl-leaf): New rule.
+	($(objpfx)bug-dl-leaf.so): Likewise.
+	($(objpfx)bug-dl-leaf.out): Likewise.
+	($(objpfx)bug-dl-leaf-lib.so): Likewise.
+	($(objpfx)bug-dl-leaf-lib-cb.so): Likewise.
+	* dlfcn/bug-dl-leaf.c: New test.
+	* dlfcn/bug-dl-leaf-lib.c: Likewise.
+	* dlfcn/bug-dl-leaf-lib-cb.c: Likewise.
+	* dlfcn/dlfcn.h (dlopen): Change __THROW to __THROWNL.
+	(dlclose): Likewise.
+	(dlmopen): Likewise.
+
+2013-08-27  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* include/netdb.h [!_ISOMAC]:
+	Don't include <tls.h>.
+	(h_errno, __libc_h_errno): Move declaration and macros out of
+	[_LIBC_REENTRANT].
+
+	* include/resolv.h [_RESOLV_H_]:
+	Don't include <tls.h>.
+	(__resp, _res): Move declaration and macro out of [_LIBC_REENTRANT].
+	* resolv/res_libc.c: Don't include <tls.h>.
+	(_res): Use __attribute__ ((nocommon)) in place of
+	__attribute__ ((section (".bss"))).
+
+	* Makefile ($(common-objpfx)linkobj/libc_pic.a):
+	If [sunrpc not in $(subdirs)], define to use libc_pic.a directly.
+
+	* resolv/res_send.c (send_dg): Don't try to use ioctl unless [FIONREAD].
+
+	* resolv/res_hconf.c [!NOT_IN_libc] (ifaddrs): Declare
+	only under [SIOCGIFCONF && SIOCGIFNETMASK].
+
+	* resolv/res_mkquery.c: Include <sys/time.h>.
+
+	* inet/ifreq.c: Moved to ...
+	* sysdeps/unix/ifreq.c: ... here.
+	* inet/ifreq.c: New file, true stub version.
+
+	* socket/sa_len.c: New file.
+	* socket/Makefile (aux): Add it.
+	* sysdeps/unix/sysv/linux/Makefile
+	[$(subdir) = socket] (sysdep_routines): Don't add sa_len here.
+	* sysdeps/unix/sysv/linux/sa_len.c: Just #define HAVE_NET*_H
+	and #include <socket/sa_len.c>.
+	* sysdeps/unix/sysv/linux/s390/sa_len.c: Just #define
+	HAVE_NETIUCV_IUCV_H and #include <sysdeps/unix/sysv/linux/sa_len.c>.
+
+	* sysdeps/unix/bsd/bsd4.4/bits/socket.h: Moved to ...
+	* bits/socket.h: ... here.
+
+	* sysdeps/unix/bsd/bsd4.4/bits/socket.h (enum __socket_type):
+	Add SOCK_CLOEXEC, SOCK_NONBLOCK with values from FreeBSD.
+	(SOCK_MAX, SOCK_TYPE_MASK): New macros.
+
+2013-08-27  Andreas Schwab  <schwab@xxxxxxx>
+
+	[BZ #15736]
+	* locale/categories.def (LC_CTYPE): Add "nonascii-case" element.
+	* string/Makefile (test-strcasecmp-ENV, test-strncasecmp-ENV)
+	(test-strcasecmp-ifunc-ENV, test-strncasecmp-ifunc-ENV): Define.
+	* string/test-strcasecmp.c (test_main): Run tests in several
+	locales.
+	* string/test-strncasecmp.c (test_main): Likewise.
+
+	* sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2)
+	(__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through
+	to __strcasecmp_nonascii and __strncasecmp_nonascii.
+	* sysdeps/i386/i686/multiarch/strcmp-ssse3.S (__strcasecmp_ssse3)
+	(__strncasecmp_ssse3) [PIC]: Likewise.
+
+2013-08-26  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* io/lxstat64.c: Just call __xstat64, for parity with stub __lxstat.
+
+	* nss/nss_files/files-key.c: Include <rpc/des_crypt.h>
+	instead of explicitly declaring xdecrypt.
+	* nis/nss_nis/nis-publickey.c: Likewise.
+
+2013-08-26  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	[BZ #15890]
+	* nscd/aicache.c: Include res_hconf.h.
+	(addhstaiX): Initialize res_hconf.
+
+2013-08-26  Andreas Schwab  <schwab@xxxxxxx>
+
+	* stdlib/Makefile (LDFLAGS-tst-tls-atexit): Remove.
+	($(objpfx)tst-tls-atexit): Add dependencies here instead.
+
+2013-08-26  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
+
+	* nscd/aicache.c (addhstaiX): Fix indentation.
+
+2013-08-25  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	* configure.ac: Quote $build_pt_chown test.
+	* configure: Regenerated.
+
+2013-08-23  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #15532]
+	* math/s_cexp.c (__cexp): Return NaN + i0 for NaN + i0 argument.
+	* math/s_cexpf.c (__cexpf): Likewise.
+	* math/s_cexpl.c (__cexpl): Likewise.
+	* math/libm-test.inc (cexp_test_data): Correct expected return
+	value for NaN + i0.  Add another test.
+
+2013-08-22  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* po/ca.po: Update Catalan translation from translation project.
+	* po/uk.po: Add Ukrainian translations from translation project.
+
+2013-08-21  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #15797]
+	* math/s_fdim.c (__fdim): Check for infinite arguments if result
+	is infinite, not alongside NaN test.
+	* math/s_fdimf.c (__fdimf): Likewise.
+	* math/s_fdiml.c (__fdiml): Likewise.
+	* math/libm-test.inc (fdim_test_data): Add more tests.  Test that
+	errno is unchanged.
+
+2013-08-21   OndÃÂej BÃÂlka  <neleai@xxxxxxxxx>
+
+	* argp/argp-help.c: Fix typos.
+	* crypt/speeds.c: Likewise.
+	* csu/check_fds.c: Likewise.
+	* elf/dl-load.c: Likewise.
+	* elf/dl-open.c: Likewise.
+	* elf/reldep3.c: Likewise.
+	* elf/reldep.c: Likewise.
+	* elf/sprof.c: Likewise.
+	* iconv/iconv_charmap.c: Likewise.
+	* iconv/skeleton.c: Likewise.
+	* iconv/strtab.c: Likewise.
+	* io/lockf64.c: Likewise.
+	* libio/libioP.h: Likewise.
+	* resolv/gai_notify.c: Likewise.
+	* resolv/ns_name.c: Likewise.
+	* resolv/ns_samedomain.c: Likewise.
+	* resolv/res_send.c: Likewise.
+	* stdlib/random.c: Likewise.
+	* sunrpc/rpc/xdr.h: Likewise.
+	* sysdeps/i386/fpu/fraiseexcpt.c: Likewise.
+	* sysdeps/i386/i686/multiarch/memcmp-sse4.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memset-sse2-rep.S: Likewise.
+	* sysdeps/i386/i686/multiarch/memset-sse2.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcat-sse2.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcmp-sse4.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcmp-ssse3.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcpy-sse2.S: Likewise.
+	* sysdeps/mach/hurd/check_fds.c: Likewise.
+	* sysdeps/powerpc/powerpc32/cell/memcpy.S: Likewise.
+	* sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise.
+	* sysdeps/powerpc/powerpc32/power4/memcmp.S: Likewise.
+	* sysdeps/powerpc/powerpc32/power7/memcmp.S: Likewise.
+	* sysdeps/powerpc/powerpc32/setjmp.S: Likewise.
+	* sysdeps/powerpc/powerpc64/cell/memcpy.S: Likewise.
+	* sysdeps/pthread/aio_notify.c: Likewise.
+	* sysdeps/sparc/fpu/fraiseexcpt.c: Likewise.
+	* sysdeps/unix/sysv/linux/socketcall.h: Likewise.
+	* sysdeps/x86_64/fpu/fraiseexcpt.c: Likewise.
+	* sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S: Likewise.
+	* sysdeps/x86/fpu/bits/fenv.h: Likewise.
+
+2013-08-21  Liubov Dmitrieva  <liubov.dmitrieva@xxxxxxxxx>
+
+	* sysdeps/i386/i686/multiarch/strcmp.S: Skip SSE4_2
+	version if bit_Slow_SSE4_2 is set.
+	* sysdeps/i386/i686/multiarch/strncase.S: Likewise.
+	* sysdeps/i386/i686/multiarch/strcasecmp.S: Likewise.
+
+2013-07-23  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	[BZ #15867]
+	* sysdeps/powerpc/powerpc32/backtrace.c (__backtrace): Handle signal
+	trampoline stack frame information.
+	* sysdeps/powerpc/powerpc64/backtrace.c (__backtrace): Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h
+	(__vdso_sigtramp_rt64): New variable: PPC64 signal trampoline.
+	(__vdso_sigtramp32): New variable: PPC32 signal trampoline.
+	(__vdso_sigtramp_rt32): New variable: PPC32 signal trampoline.
+	* sysdeps/unix/sysv/linux/powerpc/init-first.c
+	(_libc_vdso_platform_setup): Initialize the signal trampolines.
+	* debug/tst-backtrace5.c (fn): Add an option set modify sigaction
+	sa_flags value.
+	* debug/tst-backtrace6.c: New file: check backtrace for signal frames,
+	interrupting a syscall and set with option SA_SIGINFO.
+
+2013-08-20  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	[BZ #15531]
+	* math/s_cproj.c (__cproj): Only return an infinity if one part of
+	argument is infinite.
+	* math/s_cprojf.c (__cprojf): Likewise.
+	* math/s_cprojl.c (__cprojl): Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/s_cprojl.c (__cprojl): Likewise.
+	* math/libm-test.inc (cproj_test_data): Add more tests.
+
+	* sysdeps/unix/sysv/linux/mmap64.c: Include <string.h>.
+
+	* sysdeps/unix/sysv/linux/mmap64.c (__mmap64)
+	[MMAP2_PAGE_SHIFT == -1]: Use __getpagesize to determine page
+	size.  Use __ffs to determine corresponding shift.
+
+2013-08-20  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+	    Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	* Makefile (INSTALL): Remove trailing blank lines from output of
+	makeinfo.
+
 2013-08-20  Andreas Krebbel  <Andreas.Krebbel@xxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/s390/sys/procfs.h (struct elf_prstatus):

Modified: trunk/libc/INSTALL
==============================================================================
--- trunk/libc/INSTALL (original)
+++ trunk/libc/INSTALL Thu Sep  5 22:41:05 2013
@@ -122,11 +122,6 @@
 `--disable-profile'
      Don't build libraries with profiling information.  You may want to
      use this option if you don't plan to do profiling.
-
-`--disable-versioning'
-     Don't compile the shared libraries with symbol version information.
-     Doing this will make the resulting library incompatible with old
-     binaries, so it's not recommended.
 
 `--enable-static-nss'
      Compile static versions of the NSS (Name Service Switch) libraries.

Modified: trunk/libc/Makefile
==============================================================================
--- trunk/libc/Makefile (original)
+++ trunk/libc/Makefile Thu Sep  5 22:41:05 2013
@@ -147,16 +147,22 @@
 				 $(shlib-lds)
 	$(build-shlib)
 
+ifeq (,$(filter sunrpc,$(subdirs)))
+$(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a
+	$(make-target-directory)
+	ln -f $< $@
+else
 $(common-objpfx)linkobj/libc_pic.a: $(common-objpfx)libc_pic.a \
 				    $(common-objpfx)sunrpc/librpc_compat_pic.a
-	$(..)./scripts/mkinstalldirs $(common-objpfx)linkobj
+	$(make-target-directory)
 	(cd $(common-objpfx)linkobj; \
 	 $(AR) x ../libc_pic.a; \
 	 rm $$($(AR) t ../sunrpc/librpc_compat_pic.a | sed 's/^compat-//'); \
 	 $(AR) x ../sunrpc/librpc_compat_pic.a; \
 	 $(AR) cr libc_pic.a *.os; \
 	 rm *.os)
-endif
+endif # $(subdirs) contains sunrpc
+endif # $(build-shared)
 
 
 # This is a handy script for running any dynamically linked program against
@@ -423,8 +429,13 @@
 INSTALL: manual/install.texi manual/macros.texi \
 	 $(common-objpfx)manual/pkgvers.texi
 	makeinfo --no-validate --plaintext --no-number-sections \
-		 -I$(common-objpfx)manual $< -o $@
-	-chmod a-w $@
+		 -I$(common-objpfx)manual $< -o $@-tmp
+	$(AWK) 'NF == 0 { ++n; next } \
+		NF != 0 { while (n-- > 0) print ""; n = 0; print }' \
+	  < $@-tmp > $@-tmp2
+	rm -f $@-tmp
+	-chmod a-w $@-tmp2
+	mv -f $@-tmp2 $@
 $(common-objpfx)manual/%: FORCE
 	$(MAKE) $(PARALLELMFLAGS) -C manual $@
 FORCE:

Modified: trunk/libc/Makerules
==============================================================================
--- trunk/libc/Makerules (original)
+++ trunk/libc/Makerules Thu Sep  5 22:41:05 2013
@@ -93,7 +93,7 @@
 			       $(before-compile))
 
 # Even before that, we need abi-versions.h which is generated right here.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 ifndef avoid-generated
 before-compile := $(common-objpfx)abi-versions.h $(before-compile)
 $(common-objpfx)abi-versions.h: $(..)scripts/abi-versions.awk \
@@ -106,7 +106,7 @@
 	    $(common-objpfx)abi-versions.h > $@T
 	mv -f $@T $@
 endif # avoid-generated
-endif # $(versioning) = yes
+endif # $(build-shared) = yes
 
 ifndef avoid-generated
 before-compile := $(common-objpfx)libc-abis.h $(before-compile)
@@ -283,7 +283,7 @@
 
 # Generate version maps, but wait until sysdep-subdirs is known
 ifeq ($(sysd-sorted-done),t)
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 -include $(common-objpfx)sysd-versions
 $(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
 common-generated += $(version-maps)
@@ -324,7 +324,7 @@
 	) > $@T
 	mv -f $@T $@
 endif # avoid-generated
-endif # $(versioning) = yes
+endif # $(build-shared) = yes
 endif # sysd-sorted-done
 
 # Generate .dT files as we compile.
@@ -419,9 +419,9 @@
 
 ifeq (yes,$(build-shared))
 
-# Reference map file only when versioning is selected and a map file name
+# Reference map file only when shared libraries are built and a map file name
 # is given.
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 map-file = $(firstword $($(@F:.so=-map)) \
 		       $(addprefix $(common-objpfx), \
 				   $(filter $(@F:.so=.map),$(version-maps))))
@@ -594,7 +594,7 @@
 			 $(elfobjdir)/interp.os $(elfobjdir)/ld.so \
 			 $(shlib-lds)
 	$(build-shlib)
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 $(common-objpfx)libc.so: $(common-objpfx)libc.map
 endif
 common-generated += libc.so libc_pic.os
@@ -1189,7 +1189,7 @@
 CPPFLAGS-nonlib = -DNOT_IN_libc=1
 
 
-ifeq ($(versioning),yes)
+ifeq ($(build-shared),yes)
 # Generate normalized lists of symbols, versions, and data sizes.
 # This is handy for checking against existing library binaries.
 

Modified: trunk/libc/NEWS
==============================================================================
--- trunk/libc/NEWS (original)
+++ trunk/libc/NEWS Thu Sep  5 22:41:05 2013
@@ -9,11 +9,18 @@
 
 * The following bugs are resolved with this release:
 
-  14699, 15749
+  14155, 14699, 15427, 15522, 15531, 15532, 15736, 15749, 15797, 15867,
+  15886, 15887, 15890, 15897, 15905, 15909, 15921.
 
 * CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
   to the d_name member of struct dirent, or omit the terminating NUL
   character.  (Bugzilla #14699).
+
+* New locales: quz_PE.
+
+* Add country_car field to LC_ADDRESS, many locales.
+
+* Update iso-1427.def and related occurrences.
 
 
 Version 2.18

Modified: trunk/libc/Versions.def
==============================================================================
--- trunk/libc/Versions.def (original)
+++ trunk/libc/Versions.def Thu Sep  5 22:41:05 2013
@@ -35,6 +35,7 @@
   GLIBC_2.16
   GLIBC_2.17
   GLIBC_2.18
+  GLIBC_2.19
   HURD_CTHREADS_0.3
 %ifdef EXPORT_UNWIND_FIND_FDE
   GCC_3.0

Modified: trunk/libc/argp/argp-help.c
==============================================================================
--- trunk/libc/argp/argp-help.c (original)
+++ trunk/libc/argp/argp-help.c Thu Sep  5 22:41:05 2013
@@ -161,7 +161,7 @@
 };
 #define nuparam_names (sizeof (uparam_names) / sizeof (uparam_names[0]))
 
-/* Read user options from the environment, and fill in UPARAMS appropiately.  */
+/* Read user options from the environment, and fill in UPARAMS appropriately.  */
 static void
 fill_in_uparams (const struct argp_state *state)
 {
@@ -276,11 +276,11 @@
      -xARG, -yARG, --long1=ARG, --long2=ARG        Documentation...
 
    Where ARG will be omitted if there's no argument, for this option, or
-   will be surrounded by "[" and "]" appropiately if the argument is
-   optional.  The documentation string is word-wrapped appropiately, and if
+   will be surrounded by "[" and "]" appropriately if the argument is
+   optional.  The documentation string is word-wrapped appropriately, and if
    the list of options is long enough, it will be started on a separate line.
    If there are no short options for a given option, the first long option is
-   indented slighly in a way that's supposed to make most long options appear
+   indented slightly in a way that's supposed to make most long options appear
    to be in a separate column.
 
    For example, the following output (from ps):
@@ -358,7 +358,7 @@
   /* A pointers into the HOL's short_options field, to the first short option
      letter for this entry.  The order of the characters following this point
      corresponds to the order of options pointed to by OPT, and there are at
-     most NUM.  A short option recorded in a option following OPT is only
+     most NUM.  A short option recorded in an option following OPT is only
      valid if it occurs in the right place in SHORT_OPTIONS (otherwise it's
      probably been shadowed by some other entry).  */
   char *short_options;
@@ -737,12 +737,12 @@
   if (entry1->cluster != entry2->cluster)
     {
       /* The entries are not within the same cluster, so we can't compare them
-	 directly, we have to use the appropiate clustering level too.  */
+	 directly, we have to use the appropriate clustering level too.  */
       if (! entry1->cluster)
 	/* ENTRY1 is at the `base level', not in a cluster, so we have to
 	   compare it's group number with that of the base cluster in which
 	   ENTRY2 resides.  Note that if they're in the same group, the
-	   clustered option always comes laster.  */
+	   clustered option always comes last.  */
 	return group_cmp (group1, hol_cluster_base (entry2->cluster)->group, -1);
       else if (! entry2->cluster)
 	/* Likewise, but ENTRY2's not in a cluster.  */
@@ -999,7 +999,7 @@
     return doc;
 }
 
-/* Prints STR as a header line, with the margin lines set appropiately, and
+/* Prints STR as a header line, with the margin lines set appropriately, and
    notes the fact that groups should be separated with a blank line.  ARGP is
    the argp that should dictate any user doc filtering to take place.  Note
    that the previous wrap margin isn't restored, but the left margin is reset

Modified: trunk/libc/argp/argp-parse.c
==============================================================================
--- trunk/libc/argp/argp-parse.c (original)
+++ trunk/libc/argp/argp-parse.c Thu Sep  5 22:41:05 2013
@@ -410,7 +410,7 @@
   return group;
 }
 
-/* Find the merged set of getopt options, with keys appropiately prefixed. */
+/* Find the merged set of getopt options, with keys appropriately prefixed. */
 static void
 parser_convert (struct parser *parser, const struct argp *argp, int flags)
 {

Modified: trunk/libc/benchtests/Makefile
==============================================================================
--- trunk/libc/benchtests/Makefile (original)
+++ trunk/libc/benchtests/Makefile Thu Sep  5 22:41:05 2013
@@ -36,67 +36,67 @@
 
 acos-ARGLIST = double
 acos-RET = double
-LDFLAGS-bench-acos = -lm
+LDLIBS-bench-acos = -lm
 
 acosh-ARGLIST = double
 acosh-RET = double
-LDFLAGS-bench-acosh = -lm
+LDLIBS-bench-acosh = -lm
 
 asin-ARGLIST = double
 asin-RET = double
-LDFLAGS-bench-asin = -lm
+LDLIBS-bench-asin = -lm
 
 asinh-ARGLIST = double
 asinh-RET = double
-LDFLAGS-bench-asinh = -lm
+LDLIBS-bench-asinh = -lm
 
 atan-ARGLIST = double
 atan-RET = double
-LDFLAGS-bench-atan = -lm
+LDLIBS-bench-atan = -lm
 
 atanh-ARGLIST = double
 atanh-RET = double
-LDFLAGS-bench-atanh = -lm
+LDLIBS-bench-atanh = -lm
 
 cos-ARGLIST = double
 cos-RET = double
-LDFLAGS-bench-cos = -lm
+LDLIBS-bench-cos = -lm
 
 cosh-ARGLIST = double
 cosh-RET = double
-LDFLAGS-bench-cosh = -lm
+LDLIBS-bench-cosh = -lm
 
 exp-ARGLIST = double
 exp-RET = double
-LDFLAGS-bench-exp = -lm
+LDLIBS-bench-exp = -lm
 
 log-ARGLIST = double
 log-RET = double
-LDFLAGS-bench-log = -lm
+LDLIBS-bench-log = -lm
 
 pow-ARGLIST = double:double
 pow-RET = double
-LDFLAGS-bench-pow = -lm
+LDLIBS-bench-pow = -lm
 
 rint-ARGLIST = double
 rint-RET = double
-LDFLAGS-bench-rint = -lm
+LDLIBS-bench-rint = -lm
 
 sin-ARGLIST = double
 sin-RET = double
-LDFLAGS-bench-sin = -lm
+LDLIBS-bench-sin = -lm
 
 sinh-ARGLIST = double
 sinh-RET = double
-LDFLAGS-bench-sinh = -lm
+LDLIBS-bench-sinh = -lm
 
 tan-ARGLIST = double
 tan-RET = double
-LDFLAGS-bench-tan = -lm
+LDLIBS-bench-tan = -lm
 
 tanh-ARGLIST = double
 tanh-RET = double
-LDFLAGS-bench-tanh = -lm
+LDLIBS-bench-tanh = -lm
 
 
 

Modified: trunk/libc/benchtests/bench-memccpy.c
==============================================================================
--- trunk/libc/benchtests/bench-memccpy.c (original)
+++ trunk/libc/benchtests/bench-memccpy.c Thu Sep  5 22:41:05 2013
@@ -59,6 +59,9 @@
 	     size_t n)
 {
   void *expect = len > n ? NULL : (char *) dst + len;
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (CALL (impl, dst, src, c, n) != expect)
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -74,23 +77,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute__ ((unused));
-      hp_timing_t stop __attribute__ ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, dst, src, c, n);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src, c, n);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -121,14 +117,12 @@
   for (i = len; i + align1 < page_size && i < len + 64; ++i)
     s1[i] = 32 + 32 * i % (max_char - 32);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, n %4zd, char %d, alignment %2zd/%2zd:", len, n, c, align1, align2);
+  printf ("Length %4zd, n %4zd, char %d, alignment %2zd/%2zd:", len, n, c, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s2, s1, c, len, n);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-memchr.c
==============================================================================
--- trunk/libc/benchtests/bench-memchr.c (original)
+++ trunk/libc/benchtests/bench-memchr.c Thu Sep  5 22:41:05 2013
@@ -39,6 +39,9 @@
 do_one_test (impl_t *impl, const char *s, int c, size_t n, char *exp_res)
 {
   char *res = CALL (impl, s, c, n);
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (res != exp_res)
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -47,23 +50,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s, c, n);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, c, n);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -96,14 +92,12 @@
       buf1[align + len] = seek_char;
     }
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd:", pos, align);
+  printf ("Length %4zd, alignment %2zd:", pos, align);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (char *) (buf1 + align), seek_char, len, result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-memcmp.c
==============================================================================
--- trunk/libc/benchtests/bench-memcmp.c (original)
+++ trunk/libc/benchtests/bench-memcmp.c Thu Sep  5 22:41:05 2013
@@ -78,23 +78,19 @@
 do_one_test (impl_t *impl, const CHAR *s1, const CHAR *s2, size_t len,
 	     int exp_result)
 {
-  if (HP_TIMING_AVAIL)
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s1, s2, len);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2, len);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -124,14 +120,12 @@
   s2[len] = align2;
   s2[len - 1] -= exp_result;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, len, exp_result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-memcpy.c
==============================================================================
--- trunk/libc/benchtests/bench-memcpy.c (original)
+++ trunk/libc/benchtests/bench-memcpy.c Thu Sep  5 22:41:05 2013
@@ -52,6 +52,9 @@
 do_one_test (impl_t *impl, char *dst, const char *src,
 	     size_t len)
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (CALL (impl, dst, src, len) != MEMCPY_RESULT (dst, len))
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -68,23 +71,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, dst, src, len);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src, len);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -107,14 +103,12 @@
   for (i = 0, j = 1; i < len; i++, j += 23)
     s1[i] = j;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s2, s1, len);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-memmem.c
==============================================================================
--- trunk/libc/benchtests/bench-memmem.c (original)
+++ trunk/libc/benchtests/bench-memmem.c Thu Sep  5 22:41:05 2013
@@ -60,23 +60,19 @@
 do_one_test (impl_t *impl, const void *haystack, size_t haystack_len,
 	     const void *needle, size_t needle_len, const void *expected)
 {
-  if (HP_TIMING_AVAIL)
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, haystack, haystack_len, needle, needle_len);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, haystack, haystack_len, needle, needle_len);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -87,16 +83,14 @@
   memcpy (tmpbuf, buf1 + idx, len);
   memcpy (buf1 + idx, str, len);
 
-  if (HP_TIMING_AVAIL)
-    printf ("String %s, offset %zd:", str, idx);
+  printf ("String %s, offset %zd:", str, idx);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, buf1, BUF1PAGES * page_size, str, len, buf1 + idx);
 
   memcpy (buf1 + idx, tmpbuf, len);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 static void
@@ -120,15 +114,13 @@
 	  buf1[idx + off] = ch;
 	}
 
-      if (HP_TIMING_AVAIL)
-	printf ("String %.*s, offset %zd:", (int) len, buf1 + idx, idx);
+      printf ("String %.*s, offset %zd:", (int) len, buf1 + idx, idx);
 
       FOR_EACH_IMPL (impl, 0)
 	do_one_test (impl, buf1, BUF1PAGES * page_size, buf1 + idx, len,
 		     buf1 + idx);
 
-      if (HP_TIMING_AVAIL)
-	putchar ('\n');
+      putchar ('\n');
 
       memcpy (buf1 + idx, tmpbuf, len);
     }

Modified: trunk/libc/benchtests/bench-memmove.c
==============================================================================
--- trunk/libc/benchtests/bench-memmove.c (original)
+++ trunk/libc/benchtests/bench-memmove.c Thu Sep  5 22:41:05 2013
@@ -67,6 +67,9 @@
 do_one_test (impl_t *impl, char *dst, char *src, const char *orig_src,
 	     size_t len)
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   memcpy (src, orig_src, len);
 #ifdef TEST_BCOPY
   CALL (impl, src, dst, len);
@@ -91,27 +94,20 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+#ifdef TEST_BCOPY
+      CALL (impl, src, dst, len);
+#else
+      CALL (impl, dst, src, len);
+#endif
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-#ifdef TEST_BCOPY
-	  CALL (impl, src, dst, len);
-#else
-	  CALL (impl, dst, src, len);
-#endif
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -134,14 +130,12 @@
   for (i = 0, j = 1; i < len; i++, j += 23)
     s1[i] = j;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s2, (char *) (buf2 + align1), s1, len);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-memset.c
==============================================================================
--- trunk/libc/benchtests/bench-memset.c (original)
+++ trunk/libc/benchtests/bench-memset.c Thu Sep  5 22:41:05 2013
@@ -75,6 +75,8 @@
 static void
 do_one_test (impl_t *impl, char *s, int c __attribute ((unused)), size_t n)
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
   char tstbuf[n];
 #ifdef TEST_BZERO
   simple_bzero (tstbuf, n);
@@ -92,28 +94,20 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+#ifdef TEST_BZERO
+      CALL (impl, s, n);
+#else
+      CALL (impl, s, c, n);
+#endif
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-#ifdef TEST_BZERO
-	  CALL (impl, s, n);
-#else
-	  CALL (impl, s, c, n);
-#endif
+  TIMING_DIFF (cur, start, stop);
 
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
-
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -123,14 +117,12 @@
   if (align + len > page_size)
     return;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd, c %2d:", len, align, c);
+  printf ("Length %4zd, alignment %2zd, c %2d:", len, align, c);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (char *) buf1 + align, c, len);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-rawmemchr.c
==============================================================================
--- trunk/libc/benchtests/bench-rawmemchr.c (original)
+++ trunk/libc/benchtests/bench-rawmemchr.c Thu Sep  5 22:41:05 2013
@@ -40,6 +40,8 @@
 static void
 do_one_test (impl_t *impl, const char *s, int c, char *exp_res)
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
   char *res = CALL (impl, s, c);
   if (res != exp_res)
     {
@@ -49,23 +51,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s, c);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, c);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -92,14 +87,12 @@
   buf1[align + len] = -seek_char;
   result = (char *) (buf1 + align + pos);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd:", pos, align);
+  printf ("Length %4zd, alignment %2zd:", pos, align);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (char *) (buf1 + align), seek_char, result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strcasecmp.c
==============================================================================
--- trunk/libc/benchtests/bench-strcasecmp.c (original)
+++ trunk/libc/benchtests/bench-strcasecmp.c Thu Sep  5 22:41:05 2013
@@ -62,6 +62,8 @@
 static void
 do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result)
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
   int result = CALL (impl, s1, s2);
   if ((exp_result == 0 && result != 0)
       || (exp_result < 0 && result >= 0)
@@ -73,23 +75,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s1, s2);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -128,14 +123,12 @@
   else
     s2[len - 1] -= exp_result;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, exp_result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strcasestr.c
==============================================================================
--- trunk/libc/benchtests/bench-strcasestr.c (original)
+++ trunk/libc/benchtests/bench-strcasestr.c Thu Sep  5 22:41:05 2013
@@ -60,23 +60,19 @@
 static void
 do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
 {
-  if (HP_TIMING_AVAIL)
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~(hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s1, s2);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 
@@ -116,15 +112,13 @@
     }
   s1[len1] = '\0';
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
-	    len1, len2, align1, align2, fail ? "fail" : "found");
+  printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
+	  len1, len2, align1, align2, fail ? "fail" : "found");
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 static int

Modified: trunk/libc/benchtests/bench-strcat.c
==============================================================================
--- trunk/libc/benchtests/bench-strcat.c (original)
+++ trunk/libc/benchtests/bench-strcat.c Thu Sep  5 22:41:05 2013
@@ -39,7 +39,9 @@
 static void
 do_one_test (impl_t *impl, char *dst, const char *src)
 {
-  size_t k = strlen (dst);
+  size_t k = strlen (dst), i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (CALL (impl, dst, src) != dst)
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -56,24 +58,17 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      dst[k] = '\0';
+      CALL (impl, dst, src);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  dst[k] = '\0';
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -100,8 +95,7 @@
   for (i = 0; i < len2; i++)
     s2[i] = 32 + 23 * i % (max_char - 32);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len1, len2, align1, align2);
+  printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len1, len2, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     {
@@ -109,8 +103,7 @@
       do_one_test (impl, s2, s1);
     }
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strchr.c
==============================================================================
--- trunk/libc/benchtests/bench-strchr.c (original)
+++ trunk/libc/benchtests/bench-strchr.c Thu Sep  5 22:41:05 2013
@@ -89,23 +89,19 @@
 static void
 do_one_test (impl_t *impl, const CHAR *s, int c, const CHAR *exp_res)
 {
-  if (HP_TIMING_AVAIL)
-    {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
-
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, c);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
-
-      printf ("\t%zd", (size_t) best_time);
-    }
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
+    {
+      CALL (impl, s, c);
+    }
+  TIMING_NOW (stop);
+
+  TIMING_DIFF (cur, start, stop);
+
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -141,15 +137,13 @@
   else
     result = NULLRET (buf + align + len);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment in bytes %2zd:",
-	    pos, align * sizeof (CHAR));
+  printf ("Length %4zd, alignment in bytes %2zd:",
+	  pos, align * sizeof (CHAR));
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, buf + align, seek_char, result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strcmp.c
==============================================================================
--- trunk/libc/benchtests/bench-strcmp.c (original)
+++ trunk/libc/benchtests/bench-strcmp.c Thu Sep  5 22:41:05 2013
@@ -138,23 +138,19 @@
 	     const CHAR *s1, const CHAR *s2,
 	     int exp_result)
 {
-  if (HP_TIMING_AVAIL)
-    {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
-
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
-
-      printf ("\t%zd", (size_t) best_time);
-    }
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
+    {
+      CALL (impl, s1, s2);
+    }
+  TIMING_NOW (stop);
+
+  TIMING_DIFF (cur, start, stop);
+
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -190,14 +186,12 @@
   s2[len + 1] = 24 + exp_result;
   s2[len - 1] -= exp_result;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, exp_result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strcpy.c
==============================================================================
--- trunk/libc/benchtests/bench-strcpy.c (original)
+++ trunk/libc/benchtests/bench-strcpy.c Thu Sep  5 22:41:05 2013
@@ -74,6 +74,9 @@
 do_one_test (impl_t *impl, CHAR *dst, const CHAR *src,
 	     size_t len __attribute__((unused)))
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (CALL (impl, dst, src) != STRCPY_RESULT (dst, len))
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -91,23 +94,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));;
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+	  CALL (impl, dst, src);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -133,14 +129,12 @@
     s1[i] = 32 + 23 * i % (max_char - 32);
   s1[len] = 0;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len, align1 * sizeof(CHAR), align2 * sizeof(CHAR));
+  printf ("Length %4zd, alignments in bytes %2zd/%2zd:", len, align1 * sizeof(CHAR), align2 * sizeof(CHAR));
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s2, s1, len);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strcpy_chk.c
==============================================================================
--- trunk/libc/benchtests/bench-strcpy_chk.c (original)
+++ trunk/libc/benchtests/bench-strcpy_chk.c Thu Sep  5 22:41:05 2013
@@ -75,6 +75,9 @@
 	     size_t len, size_t dlen)
 {
   char *res;
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (dlen <= len)
     {
       if (impl->test == 1)
@@ -110,23 +113,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
-    {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));;
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
-
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src, dlen);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
-
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
+    {
+      CALL (impl, dst, src, dlen);
+    }
+  TIMING_NOW (stop);
+
+  TIMING_DIFF (cur, start, stop);
+
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -150,13 +146,13 @@
     s1[i] = 32 + 23 * i % (max_char - 32);
   s1[len] = 0;
 
-  if (HP_TIMING_AVAIL && dlen > len)
+  if (dlen > len)
     printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s2, s1, len, dlen);
 
-  if (HP_TIMING_AVAIL && dlen > len)
+  if (dlen > len)
     putchar ('\n');
 }
 

Modified: trunk/libc/benchtests/bench-string.h
==============================================================================
--- trunk/libc/benchtests/bench-string.h (original)
+++ trunk/libc/benchtests/bench-string.h Thu Sep  5 22:41:05 2013
@@ -52,7 +52,7 @@
 # include <ifunc-impl-list.h>
 # define GL(x) _##x
 # define GLRO(x) _##x
-# include <hp-timing.h>
+# include "bench-timing.h"
 
 
 # define TEST_FUNCTION test_main ()
@@ -60,6 +60,8 @@
 # define OPT_ITERATIONS 10000
 # define OPT_RANDOM 10001
 # define OPT_SEED 10002
+
+# define INNER_LOOP_ITERS 64
 
 unsigned char *buf1, *buf2;
 int ret, do_srandom;
@@ -158,16 +160,6 @@
        if (!notall || impl->test)
 # endif /* ! (defined TEST_IFUNC && defined TEST_NAME) */
 
-# define HP_TIMING_BEST(best_time, start, end)	\
-    do									      \
-      {									      \
-	hp_timing_t tmptime;						      \
-	HP_TIMING_DIFF (tmptime, start + _dl_hp_timing_overhead, end);	      \
-	if (best_time > tmptime)					      \
-	  best_time = tmptime;						      \
-      }									      \
-    while (0)
-
 # ifndef BUF1PAGES
 #  define BUF1PAGES 1
 # endif
@@ -198,7 +190,6 @@
     error (EXIT_FAILURE, errno, "mmap failed");
   if (mprotect (buf2 + page_size, page_size, PROT_NONE))
     error (EXIT_FAILURE, errno, "mprotect failed");
-  HP_TIMING_DIFF_INIT ();
   if (do_srandom)
     {
       printf ("Setting seed to 0x%x\n", seed);

Modified: trunk/libc/benchtests/bench-strlen.c
==============================================================================
--- trunk/libc/benchtests/bench-strlen.c (original)
+++ trunk/libc/benchtests/bench-strlen.c Thu Sep  5 22:41:05 2013
@@ -62,7 +62,9 @@
 static void
 do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
 {
-  size_t len = CALL (impl, s);
+  size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (len != exp_len)
     {
       error (0, 0, "Wrong result in function %s %zd %zd", impl->name,
@@ -71,23 +73,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -105,14 +100,12 @@
     buf[align + i] = 1 + 11111 * i % MAX_CHAR;
   buf[align + len] = 0;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd:", len, align);
+  printf ("Length %4zd, alignment %2zd:", len, align);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (CHAR *) (buf + align), len);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strncasecmp.c
==============================================================================
--- trunk/libc/benchtests/bench-strncasecmp.c (original)
+++ trunk/libc/benchtests/bench-strncasecmp.c Thu Sep  5 22:41:05 2013
@@ -73,23 +73,19 @@
 do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
 	     int exp_result)
 {
-  if (HP_TIMING_AVAIL)
-    {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
-
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2, n);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
-
-      printf ("\t%zd", (size_t) best_time);
-    }
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
+    {
+      CALL (impl, s1, s2, n);
+    }
+  TIMING_NOW (stop);
+
+  TIMING_DIFF (cur, start, stop);
+
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -128,14 +124,12 @@
   else
     s2[len - 1] -= exp_result;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+  printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, n, exp_result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strncat.c
==============================================================================
--- trunk/libc/benchtests/bench-strncat.c (original)
+++ trunk/libc/benchtests/bench-strncat.c Thu Sep  5 22:41:05 2013
@@ -43,7 +43,9 @@
 static void
 do_one_test (impl_t *impl, char *dst, const char *src, size_t n)
 {
-  size_t k = strlen (dst);
+  size_t k = strlen (dst), i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (CALL (impl, dst, src, n) != dst)
     {
       error (0, 0, "Wrong result in function %s %p != %p", impl->name,
@@ -67,24 +69,18 @@
       ret = 1;
       return;
     }
-  if (HP_TIMING_AVAIL)
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      dst[k] = '\0';
+      CALL (impl, dst, src, n);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  dst[k] = '\0';
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src, n);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -114,9 +110,8 @@
   for (i = 0; i < len2; i++)
     s2[i] = 32 + 23 * i % (max_char - 32);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd/%4zd, alignment %2zd/%2zd, N %4zd:",
-	    len1, len2, align1, align2, n);
+  printf ("Length %4zd/%4zd, alignment %2zd/%2zd, N %4zd:",
+	  len1, len2, align1, align2, n);
 
   FOR_EACH_IMPL (impl, 0)
     {
@@ -124,8 +119,7 @@
       do_one_test (impl, s2, s1, n);
     }
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strncmp.c
==============================================================================
--- trunk/libc/benchtests/bench-strncmp.c (original)
+++ trunk/libc/benchtests/bench-strncmp.c Thu Sep  5 22:41:05 2013
@@ -54,23 +54,19 @@
 do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
 	     int exp_result)
 {
-  if (HP_TIMING_AVAIL)
-    {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
-
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2, n);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
-
-      printf ("\t%zd", (size_t) best_time);
-    }
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
+    {
+      CALL (impl, s1, s2, n);
+    }
+  TIMING_NOW (stop);
+
+  TIMING_DIFF (cur, start, stop);
+
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -84,14 +80,12 @@
     {
       s1 = (char*)(buf1 + page_size);
       s2 = (char*)(buf2 + page_size);
-      if (HP_TIMING_AVAIL)
-	printf ("Length %4zd/%4zd:", len, n);
+      printf ("Length %4zd/%4zd:", len, n);
 
       FOR_EACH_IMPL (impl, 0)
 	do_one_test (impl, s1, s2, n, 0);
 
-      if (HP_TIMING_AVAIL)
-	putchar ('\n');
+      putchar ('\n');
 
       return;
     }
@@ -122,14 +116,12 @@
 	s1[len] = 64;
     }
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
+  printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, n, exp_result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 static void
@@ -167,14 +159,12 @@
   if (len >= n)
     s2[n - 1] -= exp_result;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
+  printf ("Length %4zd/%4zd, alignment %2zd/%2zd:", len, n, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (char*)s1, (char*)s2, n, exp_result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strncpy.c
==============================================================================
--- trunk/libc/benchtests/bench-strncpy.c (original)
+++ trunk/libc/benchtests/bench-strncpy.c Thu Sep  5 22:41:05 2013
@@ -62,6 +62,9 @@
 static void
 do_one_test (impl_t *impl, char *dst, const char *src, size_t len, size_t n)
 {
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (CALL (impl, dst, src, n) != STRNCPY_RESULT (dst, len, n))
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -90,23 +93,16 @@
 	  }
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute__ ((unused));
-      hp_timing_t stop __attribute__ ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, dst, src, n);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, dst, src, n);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -132,14 +128,12 @@
   for (i = len + 1; i + align1 < page_size && i < len + 64; ++i)
     s1[i] = 32 + 32 * i % (max_char - 32);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, n %4zd, alignment %2zd/%2zd:", len, n, align1, align2);
+  printf ("Length %4zd, n %4zd, alignment %2zd/%2zd:", len, n, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s2, s1, len, n);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strnlen.c
==============================================================================
--- trunk/libc/benchtests/bench-strnlen.c (original)
+++ trunk/libc/benchtests/bench-strnlen.c Thu Sep  5 22:41:05 2013
@@ -38,7 +38,9 @@
 static void
 do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len)
 {
-  size_t len = CALL (impl, s, maxlen);
+  size_t len = CALL (impl, s, maxlen), i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (len != exp_len)
     {
       error (0, 0, "Wrong result in function %s %zd %zd", impl->name,
@@ -47,23 +49,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s, maxlen);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, maxlen);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -79,14 +74,12 @@
     buf1[align + i] = 1 + 7 * i % max_char;
   buf1[align + len] = 0;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd:", len, align);
+  printf ("Length %4zd, alignment %2zd:", len, align);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen));
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strpbrk.c
==============================================================================
--- trunk/libc/benchtests/bench-strpbrk.c (original)
+++ trunk/libc/benchtests/bench-strpbrk.c Thu Sep  5 22:41:05 2013
@@ -62,6 +62,9 @@
 do_one_test (impl_t *impl, const char *s, const char *rej, RES_TYPE exp_res)
 {
   RES_TYPE res = CALL (impl, s, rej);
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (res != exp_res)
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -70,23 +73,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s, rej);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, rej);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -136,14 +132,12 @@
     }
   result = STRPBRK_RESULT (s, pos);
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd, rej len %2zd:", pos, align, len);
+  printf ("Length %4zd, alignment %2zd, rej len %2zd:", pos, align, len);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s, rej, result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strrchr.c
==============================================================================
--- trunk/libc/benchtests/bench-strrchr.c (original)
+++ trunk/libc/benchtests/bench-strrchr.c Thu Sep  5 22:41:05 2013
@@ -63,6 +63,9 @@
 do_one_test (impl_t *impl, const CHAR *s, int c, CHAR *exp_res)
 {
   CHAR *res = CALL (impl, s, c);
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (res != exp_res)
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -71,23 +74,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s, c);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, c);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -126,14 +122,12 @@
   else
     result = NULL;
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment in bytes %2zd:", pos, align * sizeof(CHAR));
+  printf ("Length %4zd, alignment in bytes %2zd:", pos, align * sizeof(CHAR));
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, (CHAR *) (buf + align), seek_char, result);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strspn.c
==============================================================================
--- trunk/libc/benchtests/bench-strspn.c (original)
+++ trunk/libc/benchtests/bench-strspn.c Thu Sep  5 22:41:05 2013
@@ -65,7 +65,9 @@
 static void
 do_one_test (impl_t *impl, const char *s, const char *acc, size_t exp_res)
 {
-  size_t res = CALL (impl, s, acc);
+  size_t res = CALL (impl, s, acc), i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
   if (res != exp_res)
     {
       error (0, 0, "Wrong result in function %s %p %p", impl->name,
@@ -74,23 +76,16 @@
       return;
     }
 
-  if (HP_TIMING_AVAIL)
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~ (hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s, acc);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s, acc);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 static void
@@ -128,14 +123,12 @@
       s[i] = '\0';
     }
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd, alignment %2zd, acc len %2zd:", pos, align, len);
+  printf ("Length %4zd, alignment %2zd, acc len %2zd:", pos, align, len);
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s, acc, pos);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 int

Modified: trunk/libc/benchtests/bench-strstr.c
==============================================================================
--- trunk/libc/benchtests/bench-strstr.c (original)
+++ trunk/libc/benchtests/bench-strstr.c Thu Sep  5 22:41:05 2013
@@ -58,23 +58,19 @@
 static void
 do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
 {
-  if (HP_TIMING_AVAIL)
+  size_t i, iters = INNER_LOOP_ITERS;
+  timing_t start, stop, cur;
+
+  TIMING_NOW (start);
+  for (i = 0; i < iters; ++i)
     {
-      hp_timing_t start __attribute ((unused));
-      hp_timing_t stop __attribute ((unused));
-      hp_timing_t best_time = ~(hp_timing_t) 0;
-      size_t i;
+      CALL (impl, s1, s2);
+    }
+  TIMING_NOW (stop);
 
-      for (i = 0; i < 32; ++i)
-	{
-	  HP_TIMING_NOW (start);
-	  CALL (impl, s1, s2);
-	  HP_TIMING_NOW (stop);
-	  HP_TIMING_BEST (best_time, start, stop);
-	}
+  TIMING_DIFF (cur, start, stop);
 
-      printf ("\t%zd", (size_t) best_time);
-    }
+  TIMING_PRINT_MEAN ((double) cur, (double) iters);
 }
 
 
@@ -113,15 +109,13 @@
     }
   s1[len1] = '\0';
 
-  if (HP_TIMING_AVAIL)
-    printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
-	    len1, len2, align1, align2, fail ? "fail" : "found");
+  printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
+	  len1, len2, align1, align2, fail ? "fail" : "found");
 
   FOR_EACH_IMPL (impl, 0)
     do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
 
-  if (HP_TIMING_AVAIL)
-    putchar ('\n');
+  putchar ('\n');
 }
 
 static int

Modified: trunk/libc/benchtests/bench-timing.h
==============================================================================
--- trunk/libc/benchtests/bench-timing.h (original)
+++ trunk/libc/benchtests/bench-timing.h Thu Sep  5 22:41:05 2013
@@ -70,3 +70,6 @@
 	  (min) / (d_iters), 1e9 * (d_total_i) / (d_total_s))
 
 #endif
+
+#define TIMING_PRINT_MEAN(d_total_s, d_iters) \
+  printf ("\t%g", (d_total_s) / (d_iters))

Modified: trunk/libc/bits/socket.h
==============================================================================
--- trunk/libc/bits/socket.h (original)
+++ trunk/libc/bits/socket.h Thu Sep  5 22:41:05 2013
@@ -1,11 +1,11 @@
-/* System-specific socket constants and types.  Generic/4.3 BSD version.
+/* System-specific socket constants and types.  4.4 BSD version.
    Copyright (C) 1991-2013 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
+   modify it under the terms of the GNU Lesser General Public License as
+   published by the Free Software Foundation; either version 2.1 of the
+   License, or (at your option) any later version.
 
    The GNU C Library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,21 +13,22 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
+   License along with the GNU C Library; see the file COPYING.LIB.  If
+   not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef __BITS_SOCKET_H
 #define __BITS_SOCKET_H	1
 
-#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
+#ifndef _SYS_SOCKET_H
 # error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
 #endif
 
-#include <limits.h>
+#define	__need_size_t
+#define __need_NULL
+#include <stddef.h>
+
+#include <limits.h>		/* XXX Is this allowed?  */
 #include <bits/types.h>
-
-#define	__need_size_t
-#include <stddef.h>
 
 /* Type for length arguments in socket calls.  */
 #ifndef __socklen_t_defined
@@ -49,9 +50,25 @@
 #define SOCK_RAW SOCK_RAW
   SOCK_RDM = 4,			/* Reliably-delivered messages.  */
 #define SOCK_RDM SOCK_RDM
-  SOCK_SEQPACKET = 5		/* Sequenced, reliable, connection-based,
+  SOCK_SEQPACKET = 5,		/* Sequenced, reliable, connection-based,
 				   datagrams of fixed maximum length.  */
 #define SOCK_SEQPACKET SOCK_SEQPACKET
+
+#define SOCK_MAX (SOCK_SEQPACKET + 1)
+  /* Mask which covers at least up to SOCK_MASK-1.
+     The remaining bits are used as flags. */
+#define SOCK_TYPE_MASK 0xf
+
+  /* Flags to be ORed into the type parameter of socket and socketpair and
+     used for the flags parameter of accept4.  */
+
+  SOCK_CLOEXEC = 0x10000000,	/* Atomically set close-on-exec flag for the
+				   new descriptor(s).  */
+#define SOCK_CLOEXEC SOCK_CLOEXEC
+
+  SOCK_NONBLOCK = 0x20000000	/* Atomically mark descriptor(s) as
+				   non-blocking.  */
+#define SOCK_NONBLOCK SOCK_NONBLOCK
 };
 
 /* Protocol families.  */
@@ -120,6 +137,8 @@
 #define AF_INET6	PF_INET6
 #define	AF_MAX		PF_MAX
 
+/* Maximum queue length specifiable by listen.  */
+#define SOMAXCONN	128	/* 5 on the origional 4.4 BSD.  */
 
 /* Get the definition of the macro to define the common sockaddr members.  */
 #include <bits/sockaddr.h>
@@ -167,8 +186,10 @@
 #define MSG_CTRUNC MSG_CTRUNC
     MSG_WAITALL		= 0x40,	/* Wait for full request or error.  */
 #define MSG_WAITALL MSG_WAITALL
-    MSG_DONTWAIT	= 0x80	/* This message should be nonblocking.  */
+    MSG_DONTWAIT	= 0x80,	/* This message should be nonblocking.  */
 #define MSG_DONTWAIT MSG_DONTWAIT
+    MSG_NOSIGNAL	= 0x0400	/* Do not generate SIGPIPE on EPIPE.  */
+#define MSG_NOSIGNAL MSG_NOSIGNAL
   };
 
 
@@ -176,18 +197,105 @@
    `sendmsg' and received by `recvmsg'.  */
 struct msghdr
   {
-    __ptr_t msg_name;		/* Address to send to/receive from.  */
+    void *msg_name;		/* Address to send to/receive from.  */
     socklen_t msg_namelen;	/* Length of address data.  */
 
     struct iovec *msg_iov;	/* Vector of data to send/receive into.  */
     int msg_iovlen;		/* Number of elements in the vector.  */
 
-    __ptr_t msg_accrights;	/* Access rights information.  */
-    socklen_t msg_accrightslen;	/* Length of access rights information.  */
+    void *msg_control;		/* Ancillary data (eg BSD filedesc passing). */
+    socklen_t msg_controllen;	/* Ancillary data buffer length.  */
 
     int msg_flags;		/* Flags in received message.  */
   };
 
+/* Structure used for storage of ancillary data object information.  */
+struct cmsghdr
+  {
+    socklen_t cmsg_len;		/* Length of data in cmsg_data plus length
+				   of cmsghdr structure.  */
+    int cmsg_level;		/* Originating protocol.  */
+    int cmsg_type;		/* Protocol specific type.  */
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
+    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
+#endif
+  };
+
+/* Ancillary data object manipulation macros.  */
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
+# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
+#else
+# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
+#endif
+
+#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
+
+#define CMSG_FIRSTHDR(mhdr) \
+  ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr)		      \
+   ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
+
+#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
+			   & (size_t) ~(sizeof (size_t) - 1))
+#define CMSG_SPACE(len) (CMSG_ALIGN (len) \

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