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

[Commits] r15509 - in /fsf/trunk/libc: ./ ctype/ elf/ grp/ include/ inet/ libio/ localedata/ manual/ math/ math/bits/ misc/sys/ nptl/ ...



Author: eglibc
Date: Sun Oct 23 17:49:41 2011
New Revision: 15509

Log:
Import glibc-mainline for 2011-10-23

Added:
    fsf/trunk/libc/localedata/tst-setlocale2.c
    fsf/trunk/libc/math/bits/math-finite.h
    fsf/trunk/libc/string/test-rawmemchr.c
    fsf/trunk/libc/sysdeps/i386/i686/fpu/e_log.S
    fsf/trunk/libc/sysdeps/i386/i686/fpu/e_logf.S
    fsf/trunk/libc/sysdeps/i386/i686/fpu/e_logl.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memchr-sse2.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memchr.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memrchr-c.c
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memrchr-sse2.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memrchr.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/rawmemchr-sse2-bsf.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/rawmemchr-sse2.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/rawmemchr.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/wmemcmp-c.c
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/wmemcmp-sse4.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/wmemcmp-ssse3.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/wmemcmp.S
    fsf/trunk/libc/sysdeps/ia64/fpu/bits/math-finite.h
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_isinf_nsl.c
    fsf/trunk/libc/sysdeps/x86_64/dla.h
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/Makefile
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_ceil-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_ceil.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_ceilf-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_ceilf.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_floor-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_floor.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_floorf-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_floorf.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_fma.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_fmaf.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_nearbyint.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_rint-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_rint.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_rintf-c.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_rintf.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/memcmp-ssse3.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp-sse42.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/wmemcmp-c.c
    fsf/trunk/libc/sysdeps/x86_64/multiarch/wmemcmp-sse4.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/wmemcmp-ssse3.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/wmemcmp.S
Removed:
    fsf/trunk/libc/sysdeps/x86_64/multiarch/s_fma.c
    fsf/trunk/libc/sysdeps/x86_64/multiarch/s_fmaf.c
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/README
    fsf/trunk/libc/Versions.def
    fsf/trunk/libc/config.h.in
    fsf/trunk/libc/configure
    fsf/trunk/libc/configure.in
    fsf/trunk/libc/ctype/Versions
    fsf/trunk/libc/ctype/ctype-info.c
    fsf/trunk/libc/ctype/ctype.h
    fsf/trunk/libc/elf/dl-fini.c
    fsf/trunk/libc/elf/do-rel.h
    fsf/trunk/libc/elf/dynamic-link.h
    fsf/trunk/libc/elf/pldd-xx.c
    fsf/trunk/libc/grp/initgroups.c
    fsf/trunk/libc/include/ctype.h
    fsf/trunk/libc/inet/getnetgrent_r.c
    fsf/trunk/libc/libio/iofwide.c
    fsf/trunk/libc/localedata/ChangeLog
    fsf/trunk/libc/localedata/Makefile
    fsf/trunk/libc/manual/string.texi
    fsf/trunk/libc/math/Makefile
    fsf/trunk/libc/math/Versions
    fsf/trunk/libc/math/bits/mathcalls.h
    fsf/trunk/libc/math/e_acoshl.c
    fsf/trunk/libc/math/e_acosl.c
    fsf/trunk/libc/math/e_asinl.c
    fsf/trunk/libc/math/e_atan2l.c
    fsf/trunk/libc/math/e_atanhl.c
    fsf/trunk/libc/math/e_coshl.c
    fsf/trunk/libc/math/e_exp10.c
    fsf/trunk/libc/math/e_exp10f.c
    fsf/trunk/libc/math/e_exp10l.c
    fsf/trunk/libc/math/e_exp2l.c
    fsf/trunk/libc/math/e_expl.c
    fsf/trunk/libc/math/e_fmodl.c
    fsf/trunk/libc/math/e_gammal_r.c
    fsf/trunk/libc/math/e_hypotl.c
    fsf/trunk/libc/math/e_j0l.c
    fsf/trunk/libc/math/e_j1l.c
    fsf/trunk/libc/math/e_jnl.c
    fsf/trunk/libc/math/e_lgammal_r.c
    fsf/trunk/libc/math/e_log10l.c
    fsf/trunk/libc/math/e_log2l.c
    fsf/trunk/libc/math/e_logl.c
    fsf/trunk/libc/math/e_powl.c
    fsf/trunk/libc/math/e_scalb.c
    fsf/trunk/libc/math/e_scalbf.c
    fsf/trunk/libc/math/e_scalbl.c
    fsf/trunk/libc/math/e_sinhl.c
    fsf/trunk/libc/math/e_sqrtl.c
    fsf/trunk/libc/math/math.h
    fsf/trunk/libc/math/math_private.h
    fsf/trunk/libc/math/s_cacosh.c
    fsf/trunk/libc/math/s_cacoshl.c
    fsf/trunk/libc/math/s_casinh.c
    fsf/trunk/libc/math/s_casinhf.c
    fsf/trunk/libc/math/s_casinhl.c
    fsf/trunk/libc/math/s_catan.c
    fsf/trunk/libc/math/s_catanf.c
    fsf/trunk/libc/math/s_catanh.c
    fsf/trunk/libc/math/s_catanhf.c
    fsf/trunk/libc/math/s_catanhl.c
    fsf/trunk/libc/math/s_catanl.c
    fsf/trunk/libc/math/s_ccos.c
    fsf/trunk/libc/math/s_ccosf.c
    fsf/trunk/libc/math/s_ccosh.c
    fsf/trunk/libc/math/s_ccoshf.c
    fsf/trunk/libc/math/s_ccoshl.c
    fsf/trunk/libc/math/s_ccosl.c
    fsf/trunk/libc/math/s_cexp.c
    fsf/trunk/libc/math/s_cexpf.c
    fsf/trunk/libc/math/s_cexpl.c
    fsf/trunk/libc/math/s_clog.c
    fsf/trunk/libc/math/s_clog10.c
    fsf/trunk/libc/math/s_clog10f.c
    fsf/trunk/libc/math/s_clog10l.c
    fsf/trunk/libc/math/s_clogf.c
    fsf/trunk/libc/math/s_clogl.c
    fsf/trunk/libc/math/s_csin.c
    fsf/trunk/libc/math/s_csinf.c
    fsf/trunk/libc/math/s_csinh.c
    fsf/trunk/libc/math/s_csinhf.c
    fsf/trunk/libc/math/s_csinhl.c
    fsf/trunk/libc/math/s_csinl.c
    fsf/trunk/libc/math/s_csqrt.c
    fsf/trunk/libc/math/s_csqrtf.c
    fsf/trunk/libc/math/s_csqrtl.c
    fsf/trunk/libc/math/s_ctan.c
    fsf/trunk/libc/math/s_ctanf.c
    fsf/trunk/libc/math/s_ctanh.c
    fsf/trunk/libc/math/s_ctanhf.c
    fsf/trunk/libc/math/s_ctanhl.c
    fsf/trunk/libc/math/s_ctanl.c
    fsf/trunk/libc/math/s_nan.c
    fsf/trunk/libc/math/s_nanf.c
    fsf/trunk/libc/math/s_nanl.c
    fsf/trunk/libc/math/w_acos.c
    fsf/trunk/libc/math/w_acosf.c
    fsf/trunk/libc/math/w_acosh.c
    fsf/trunk/libc/math/w_acoshf.c
    fsf/trunk/libc/math/w_acoshl.c
    fsf/trunk/libc/math/w_acosl.c
    fsf/trunk/libc/math/w_asin.c
    fsf/trunk/libc/math/w_asinf.c
    fsf/trunk/libc/math/w_asinl.c
    fsf/trunk/libc/math/w_atan2.c
    fsf/trunk/libc/math/w_atan2f.c
    fsf/trunk/libc/math/w_atan2l.c
    fsf/trunk/libc/math/w_atanh.c
    fsf/trunk/libc/math/w_atanhf.c
    fsf/trunk/libc/math/w_atanhl.c
    fsf/trunk/libc/math/w_cosh.c
    fsf/trunk/libc/math/w_coshf.c
    fsf/trunk/libc/math/w_coshl.c
    fsf/trunk/libc/math/w_exp10.c
    fsf/trunk/libc/math/w_exp10f.c
    fsf/trunk/libc/math/w_exp10l.c
    fsf/trunk/libc/math/w_exp2.c
    fsf/trunk/libc/math/w_exp2f.c
    fsf/trunk/libc/math/w_exp2l.c
    fsf/trunk/libc/math/w_fmod.c
    fsf/trunk/libc/math/w_fmodf.c
    fsf/trunk/libc/math/w_fmodl.c
    fsf/trunk/libc/math/w_hypot.c
    fsf/trunk/libc/math/w_hypotf.c
    fsf/trunk/libc/math/w_hypotl.c
    fsf/trunk/libc/math/w_j0.c
    fsf/trunk/libc/math/w_j0f.c
    fsf/trunk/libc/math/w_j0l.c
    fsf/trunk/libc/math/w_j1.c
    fsf/trunk/libc/math/w_j1f.c
    fsf/trunk/libc/math/w_j1l.c
    fsf/trunk/libc/math/w_jn.c
    fsf/trunk/libc/math/w_jnf.c
    fsf/trunk/libc/math/w_lgamma.c
    fsf/trunk/libc/math/w_lgamma_r.c
    fsf/trunk/libc/math/w_lgammaf.c
    fsf/trunk/libc/math/w_lgammaf_r.c
    fsf/trunk/libc/math/w_lgammal.c
    fsf/trunk/libc/math/w_lgammal_r.c
    fsf/trunk/libc/math/w_log.c
    fsf/trunk/libc/math/w_log10.c
    fsf/trunk/libc/math/w_log10f.c
    fsf/trunk/libc/math/w_log10l.c
    fsf/trunk/libc/math/w_log2.c
    fsf/trunk/libc/math/w_log2f.c
    fsf/trunk/libc/math/w_log2l.c
    fsf/trunk/libc/math/w_logf.c
    fsf/trunk/libc/math/w_logl.c
    fsf/trunk/libc/math/w_pow.c
    fsf/trunk/libc/math/w_powf.c
    fsf/trunk/libc/math/w_powl.c
    fsf/trunk/libc/math/w_remainder.c
    fsf/trunk/libc/math/w_remainderf.c
    fsf/trunk/libc/math/w_remainderl.c
    fsf/trunk/libc/math/w_scalb.c
    fsf/trunk/libc/math/w_scalbf.c
    fsf/trunk/libc/math/w_scalbl.c
    fsf/trunk/libc/math/w_sinh.c
    fsf/trunk/libc/math/w_sinhf.c
    fsf/trunk/libc/math/w_sinhl.c
    fsf/trunk/libc/math/w_sqrt.c
    fsf/trunk/libc/math/w_sqrtf.c
    fsf/trunk/libc/math/w_sqrtl.c
    fsf/trunk/libc/math/w_tgamma.c
    fsf/trunk/libc/math/w_tgammaf.c
    fsf/trunk/libc/math/w_tgammal.c
    fsf/trunk/libc/misc/sys/cdefs.h
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/pthread_create.c
    fsf/trunk/libc/nscd/netgroupcache.c
    fsf/trunk/libc/string/Makefile
    fsf/trunk/libc/string/memrchr.c
    fsf/trunk/libc/string/stratcliff.c
    fsf/trunk/libc/string/test-memcmp.c
    fsf/trunk/libc/string/test-strcmp.c
    fsf/trunk/libc/sysdeps/i386/configure
    fsf/trunk/libc/sysdeps/i386/configure.in
    fsf/trunk/libc/sysdeps/i386/fpu/e_acos.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_acosf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_acosh.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_acoshf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_acoshl.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_acosl.c
    fsf/trunk/libc/sysdeps/i386/fpu/e_asin.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_asinf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_atan2.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_atan2f.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_atan2l.c
    fsf/trunk/libc/sysdeps/i386/fpu/e_atanh.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_atanhf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_atanhl.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp10.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp10f.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp10l.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp2.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp2f.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_exp2l.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_expf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_expl.c
    fsf/trunk/libc/sysdeps/i386/fpu/e_fmod.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_fmodf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_fmodl.c
    fsf/trunk/libc/sysdeps/i386/fpu/e_hypot.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_hypotf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log10.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log10f.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log10l.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log2.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log2f.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_log2l.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_logf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_logl.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_pow.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_powf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_powl.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_remainder.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_remainderf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_remainderl.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_scalb.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_scalbf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_scalbl.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_sqrt.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_sqrtf.S
    fsf/trunk/libc/sysdeps/i386/fpu/e_sqrtl.c
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/Makefile
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memcmp-sse4.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/memcmp-ssse3.S
    fsf/trunk/libc/sysdeps/i386/i686/multiarch/wcscmp-sse2.S
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/dla.h
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/doasin.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/dosincos.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_acosh.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_asin.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_atan2.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_atanh.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_cosh.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_exp.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_exp2.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_fmod.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_gamma_r.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_hypot.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_j0.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_j1.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_jn.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_lgamma_r.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_log.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_log10.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_log2.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_pow.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_remainder.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_sinh.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_sqrt.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/halfulp.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_asinh.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_atan.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_ceil.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_floor.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_fma.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_fmaf.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_rint.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_tan.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/w_exp.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_acosf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_acoshf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_asinf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_atan2f.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_atanhf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_coshf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_exp2f.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_expf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_fmodf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_gammaf_r.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_hypotf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_j0f.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_j1f.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_jnf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_lgammaf_r.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_log10f.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_log2f.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_logf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_powf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_remainderf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_sinhf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/e_sqrtf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_asinhf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_ceilf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_floorf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_nearbyintf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_rintf.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/w_expf.c
    fsf/trunk/libc/sysdeps/ieee754/k_standard.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_acoshl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_acosl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_asinl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_atan2l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_atanhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_coshl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_expl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_fmodl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_gammal_r.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_hypotl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_j0l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_j1l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_jnl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_log10l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_log2l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_logl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_powl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_remainderl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128/e_sinhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_atan2l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_coshl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_expl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_log10l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_logl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_powl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_atanl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_acoshl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_asinl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_atan2l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_atanhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_coshl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_gammal_r.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_hypotl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_j0l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_j1l.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_jnl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_remainderl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/e_sinhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/s_asinhl.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-96/w_expl.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/e_hypot.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/e_hypotf.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/e_sqrt.c
    fsf/trunk/libc/sysdeps/powerpc/fpu/e_sqrtf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrt.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c
    fsf/trunk/libc/sysdeps/s390/fpu/e_sqrt.c
    fsf/trunk/libc/sysdeps/s390/fpu/e_sqrtf.c
    fsf/trunk/libc/sysdeps/s390/fpu/e_sqrtl.c
    fsf/trunk/libc/sysdeps/s390/fpu/libm-test-ulps
    fsf/trunk/libc/sysdeps/sparc/sparc32/e_sqrt.c
    fsf/trunk/libc/sysdeps/sparc/sparc64/fpu/e_sqrtl.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/init-first.c
    fsf/trunk/libc/sysdeps/x86_64/dl-machine.h
    fsf/trunk/libc/sysdeps/x86_64/fpu/bits/fenv.h
    fsf/trunk/libc/sysdeps/x86_64/fpu/bits/mathinline.h
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_exp2l.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_fmodl.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_log10l.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_log2l.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_logl.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_powl.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_remainderl.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_scalbl.S
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_sqrt.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/e_sqrtf.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/feupdateenv.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/fraiseexcpt.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/libm-test-ulps
    fsf/trunk/libc/sysdeps/x86_64/fpu/math_private.h
    fsf/trunk/libc/sysdeps/x86_64/memrchr.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/Makefile
    fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
    fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.h
    fsf/trunk/libc/sysdeps/x86_64/multiarch/memcmp-sse4.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/memcmp.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/rawmemchr.S
    fsf/trunk/libc/sysdeps/x86_64/multiarch/strcmp.S
    fsf/trunk/libc/sysdeps/x86_64/wcscmp.S
    fsf/trunk/libc/wcsmbs/wcscmp.c
    fsf/trunk/libc/wcsmbs/wmemcmp.c

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sun Oct 23 17:49:41 2011
@@ -1,3 +1,706 @@
+2011-09-22  Liubov Dmitrieva  <liubov.dmitrieva@xxxxxxxxx>
+
+	* sysdeps/x86_64/wcscmp.S: Update.
+	Fix wrong comparison semantics.
+	wcscmp shall use signed comparison not unsigned.
+	Don't use substraction to avoid overflow bug.
+	* sysdeps/i386/i686/multiarch/wcscmp-sse2.S: Likewise.
+	* wcsmbc/wcscmp.c: Likewise.
+	* string/test-strcmp.c: Likewise.
+	Add new tests to check cases with negative values.
+
+2011-10-23  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/ieee754/dbl-64/dla.h: Move DLA_FMA definition to...
+	* sysdeps/x86_64/dla.h: ...here.  New file.
+	* sysdeps/ieee754/dbl-64/doasin.c: Use <dla.h> not "dla.h".
+	* sysdeps/ieee754/dbl-64/dosincos.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
+	* sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
+
+2011-10-23  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Add __jnl_finite and
+	__ynl_finite aliases.
+
+2011-10-22  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/x86_64/fpu/libm-test-ulps: Update.
+
+	* sysdeps/ieee754/dbl-64/dla.h: When compiling with FMA4 support
+	define DLA_FMA.
+	[DLA_FMA] (EMULV): Use DLA_FMA.
+	[DLA_FMA] (MUL12): Use EMULV.
+	* sysdeps/ieee754/dbl-64/doasin.c [DLA_FMA]: Don't define variables
+	that are not needed.
+	* sysdeps/ieee754/dbl-64/dosincos.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+	* sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_atan.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_tan.c: Likewise.
+
+2011-10-22  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* math/s_nan.c: Undef __nan.
+	* math/s_nanf.c: Undef __nanf.
+	* math/s_nanl.c: Undef __nanl.
+	* sysdeps/ieee754/ldbl-128ibm/s_atanl.c: Include <math.h> before
+	"math_private.h".
+
+2011-10-22  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* math/s_catan.c: Add branch predictions.
+	* math/s_catanf.c: Likewise.
+	* math/s_catanh.c: Likewise.
+	* math/s_catanhf.c: Likewise.
+	* math/s_catanhl.c: Likewise.
+	* math/s_catanl.c: Likewise.
+	* math/s_cexp.c: Likewise.
+	* math/s_cexpf.c: Likewise.
+	* math/s_cexpl.c: Likewise.
+	* math/s_clog.c: Likewise.
+	* math/s_clog10.c: Likewise.
+	* math/s_clog10f.c: Likewise.
+	* math/s_clog10l.c: Likewise.
+	* math/s_clogf.c: Likewise.
+	* math/s_clogl.c: Likewise.
+	* math/s_csqrt.c: Likewise.
+	* math/s_csqrtf.c: Likewise.
+	* math/s_csqrtl.c: Likewise.
+	* math/s_ctanf.c: Likewise.
+	* math/s_ctanh.c: Likewise.
+	* math/s_ctanhf.c: Likewise.
+	* math/s_ctanhl.c: Likewise.
+	* math/s_ctanl.c: Likewise.
+
+	* math/math_private.h: Define __nan, __nanf, __nanl.
+	* math/s_cacosh.c: Include <math_private.h>.
+	* math/s_cacoshl.c: Likewise.
+	* math/s_casinh.c: Likewise.
+	* math/s_casinhf.c: Likewise.
+	* math/s_casinhl.c: Likewise.
+	* math/s_ccos.c: Rely entire on ccosh.
+	* math/s_ccosf.c: Rely entire on ccoshf.
+	* math/s_ccosl.c: Rely entirely on ccoshl.
+	* math/s_ccosh.c: Add branch predicion helpers.  Add branch prediction.
+	Remove tests for FE_INVALID.
+	* math/s_ccoshf.c: Likewise.
+	* math/s_ccoshl.c: Likewise.
+	* math/s_csin.c: Likewise.
+	* math/s_csinf.c: Likewise.
+	* math/s_csinh.c Likewise.
+	* math/s_csinhf.c: Likewise.
+	* math/s_csinhl.c: Likewise.
+	* math/s_csinl.c: Likewise.
+	* math/s_ctan.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_acosh.c: Use __ieee754_sqrt.
+	* sysdeps/ieee754/flt-32/e_acoshf.c: Use __ieee754_sqrtf.
+	* sysdeps/ieee754/ldbl-96/e_acoshl.c: Use __ieee754_sqrtl.
+
+2011-10-21  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Fix
+	compilation problems.
+
+	* sysdeps/ieee754/dbl-64/e_log.c (__ieee754_log): Add a few more
+	__builtin_expect.
+
+2011-10-20  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/i386/configure.in: Test for -mfma4 option.
+	* config.h.in: Add HAVE_FMA4_SUPPORT entry.
+	* sysdeps/x86_64/multiarch/init-arch.h: Define HAS_FMA4 and
+	COMMON_CPUID_INDEX_80000001.
+	* sysdeps/x86_64/multiarch/init-arch.c: Read 80000001 leaf for AMD.
+	* sysdeps/x86_64/fpu/multiarch/s_fma.c: Test for FMA4 support and
+	use it if FMA3 is not supported.
+	* sysdeps/x86_64/fpu/multiarch/s_fmaf.c: Likewise.
+
+	* sysdeps/x86_64/multiarch/s_fma.c: Moved to ../fpu/multiarch.
+	* sysdeps/x86_64/multiarch/s_fmaf.c: Likewise.
+
+2011-10-20  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	[BZ #12892]
+	* elf/dl-fini.c (_dl_sort_fini): Ignore relocation dependency if
+	it would create a cycle with a link time dependency.
+
+2011-10-19  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/rawmemchr.S: Small optimization to safe an
+	instruction.
+	* string/Makefile (strop-tests): Add rawmemchr.
+	* string/test-rawmemchr.c: New file.
+
+	* sysdeps/x86_64/multiarch/init-arch.h: Define bit_AVX and index_AVX.
+	* sysdeps/x86_64/multiarch/strcmp-sse42.S: New file.  Split out from...
+	* sysdeps/x86_64/multiarch/strcmp.S: ...here.  Include strcmp-sse42.S
+	when compiling str{,n}casecmp and when AVX is available.  Hook up
+	new optimized code in initializers.
+
+2011-10-19  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/x86_64/fpu/math_private.h (libc_feupdateenv): Use
+	__feraiseexcept instead of feraiseexcept.
+
+2011-10-18  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* math/math_private.h: Define defaults for libc_fetestexcept and
+	libc_feupdateenv.
+	* sysdeps/ieee754/dbl-64/s_fma.c: Use libc_fe* interfaces.
+	* sysdeps/ieee754/dbl-64/s_fmaf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_exp2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_expf.c: Likewise.
+	* sysdeps/ieee754/flt-32/s_nearbyintf.c: Likewise.
+	* sysdeps/x86_64/fpu/math_private.h: Define special versions of
+	libc_fetestexcept and libc_feupdateenv.
+
+	* math/math_private.h: Define defaults for libc_feholdexcept_setround,
+	libc_feholdexcept_setroundf, libc_feholdexcept_setroundl.
+	* sysdeps/ieee754/dbl-64/e_exp2.c: Use libc_feholdexcept_setround.
+	* sysdeps/x86_64/fpu/math_private.h: Define special version of
+	libc_feholdexcept_setround.
+
+	* sysdeps/x86_64/fpu/multiarch/Makefile [math] (libm-sysdep-routines):
+	Add s_nearbyint-c and s_nearbyintf-c.
+	* sysdeps/x86_64/fpu/bits/mathinline.h: Define nearbyint and
+	nearbyintf inlines.
+	* sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_nearbyint.S: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_nearbyintf-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_nearbyintf.S: New file.
+
+	* math/math_private.h: Define defaults for libc_fegetround,
+	libc_fegetroundf, libc_fegetroundl, libc_fesetround, libc_fesetroundf,
+	libc_fesetroundl, libc_feholdexcept, libc_feholdexceptf,
+	libc_feholdexceptl, libc_fesetenv, libc_fesetenvf, libc_fesetenvl.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Use
+	libc_feholdexcept, libc_fesetround, libc_fesetenv instead of the
+	standard functions.
+	* sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+	Remove comments and hacks for old compiler versions.
+	* sysdeps/x86_64/fpu/math_private.h: Define special versions of
+	libc_fegetround, libc_fesetround, libc_feholdexcept, and
+	libc_feholdexceptl.
+
+2011-10-18  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/x86_64/fpu/bits/fenv.h: Add C linkage markers.
+	(__feraiseexcept_renamed): Add __NTH.
+	(feraiseexcept): Add __NTH.  Rename local variables to fix
+	namespace violations.
+
+2011-10-17  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/ieee754/dbl-64/e_exp2.c (__ieee754_exp2): Small optimization.
+
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c: New file.
+
+	* sysdeps/x86_64/fpu/math_private.h: Relax asm requirements for
+	recently added interfaces.
+	* sysdeps/x86_64/fpu/bits/mathinline.h: Likewise.
+
+	* sysdeps/x86_64/fpu/math_private.h: Add some parenthesis to be safe
+	about macro parameter expansion.
+
+	* sysdeps/x86_64/fpu/bits/mathinline.h: Don't define inlines if
+	__NO_MATH_INLINES is defined.  Cleanups.
+
+	* sysdeps/x86_64/fpu/math_private.h: Define __rint, __rintf, __floor,
+	and __floorf is target has SSE4.1.
+	* sysdeps/x86_64/fpu/multiarch/s_floor-c.c: Undef first.
+	* sysdeps/x86_64/fpu/multiarch/s_floorf-c.: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/s_rint-c.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/s_rintf-c.c: Likewise.
+
+	* sysdeps/x86_64/fpu/bits/mathinline.h (floor): Use correct function
+	name.
+	(floorf): Likewise.
+
+	* nscd/netgroupcache.c (addgetnetgrentX): Fix #ifdef nesting.
+
+2011-10-17  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* misc/sys/cdefs.h: Fix last change.
+
+	* grp/initgroups.c (internal_getgrouplist): Fix initgroups
+	database lookup.
+
+2011-10-16  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* misc/sys/cdefs.h: Use leaf function attribute in __THROW.
+
+	* sysdeps/ieee754/dbl-64/s_ceil.c: Avoid alias renamed.
+	* sysdeps/ieee754/dbl-64/s_floor.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_rint.c: Likewise.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Likewise.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Likewise.
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Likewise.
+	* sysdeps/ieee754/flt-32/s_ceilf.c: Likewise.
+	* sysdeps/ieee754/flt-32/s_floorf.c: Likewise.
+	* sysdeps/ieee754/flt-32/s_rintf.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/Makefile: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_ceil-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_ceil.S: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_ceilf-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_ceilf.S: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_floor-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_floor.S: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_floorf-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_floorf.S: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_rint-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_rint.S: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_rintf-c.c: New file.
+	* sysdeps/x86_64/fpu/multiarch/s_rintf.S: New file.
+
+	* sysdeps/x86_64/fpu/bits/mathinline.h: Add inlines for rint, rintf,
+	ceil, ceilf, floor, floorf.
+
+	* elf/do-rel.h (elf_dynamic_do_Rel): Work around linker problem.
+	Perform IRELATIVE relocations last.
+
+	* elf/do-rel.h: Add another parameter nrelative, replacing the
+	local variable with the same name.  Change name of the function
+	to end in Rel or Rela (uppercase).
+	* elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Add new element
+	nrelative to ranges.  Only nonzero for DT_REL/DT_RELA.  Pass to the
+	elf_dynamic_do_##reloc function.
+
+2011-10-15  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* sysdeps/i386/i686/fpu/e_log.S: No need for the fyl2xp1 use, fyl2x
+	is sufficient, at least on modern CPUs.
+
+	* sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: New file.
+
+	* sysdeps/ieee754/dbl-64/e_cosh.c: Cleanup.
+	* sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c: New file.
+
+	* math/Versions [libm] (GLIBC_2.15): Add __exp_finite, __expf_finite,
+	__expl_finite.
+	* math/bits/math-finite.h: Add entries for exp.
+	* math/e_expl.c: Add __*_finite alias.
+	* sysdeps/i386/fpu/e_exp.S: Likewise.
+	* sysdeps/i386/fpu/e_expf.S: Likewise.
+	* sysdeps/i386/fpu/e_expl.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_exp.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_expf.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_expl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_expl.c: Likewise.
+	* sysdeps/ieee754/dbl-64/w_exp.c: Complete rewrite.
+	* sysdeps/ieee754/flt-32/w_expf.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/w_expl.c: Likewise.
+
+	* sysdeps/i386/i686/fpu/e_logf.S: No need for the fyl2xp1 use, fyl2x
+	is sufficient, at least on modern CPUs.
+
+	* ctype/ctype-info.c (__ctype_init): Define.
+	* include/ctype.h (__ctype_init): Declare.
+	(__ctype_b_loc): The variable is always initialized.
+	(__ctype_toupper_loc): Likewise.
+	(__ctype_tolower_loc): Likewise.
+	* ctype/Versions: Export __ctype_init for GLIBC_PRIVATE.
+	* sysdeps/unix/sysv/linux/init-first.c (_init): Call __ctype_init.
+
+2011-10-15  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* wcsmbs/wmemcmp.c (WMEMCMP): Define.
+
+	* configure.in: Also look in $cxxmachine/include for C++ system
+	headers.
+
+2011-09-27  Liubov Dmitrieva  <liubov.dmitrieva@xxxxxxxxx>
+
+	* sysdeps/x86_64/multiarch/Makefile: (sysdep_routines): Add
+	memcmp-ssse3 wmemcmp-sse4 wmemcmp-ssse3 wmemcmp-c
+	* sysdeps/x86_64/multiarch/memcmp-ssse3: New file.
+	* sysdeps/x86_64/multiarch/memcmp.S: Update.  Add __memcmp_ssse3.
+	* sysdeps/x86_64/multiarch/memcmp-sse4.S: Update.
+	(USE_AS_WMEMCMP): New macro.
+	Fixing indents.
+	* sysdeps/x86_64/multiarch/wmemcmp.S: New file.
+	* sysdeps/x86_64/multiarch/wmemcmp-ssse3.S: New file.
+	* sysdeps/x86_64/multiarch/wmemcmp-sse4.S: New file.
+	* sysdeps/x86_64/multiarch/wmemcmp-c.S: New file.
+	* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+	wmemcmp-ssse3 wmemcmp-sse4 wmemcmp-c
+	* sysdeps/i386/i686/multiarch/wmemcmp.S: New file.
+	* sysdeps/i386/i686/multiarch/wmemcmp-c.c: New file.
+	* sysdeps/i386/i686/multiarch/wmemcmp-ssse3.S: New file.
+	* sysdeps/i386/i686/multiarch/wmemcmp-sse4.S: New file.
+	* sysdeps/i386/i686/multiarch/memcmp-sse4.S: Update.
+	(USE_AS_WMEMCMP): New macro.
+	* sysdeps/i386/i686/multiarch/memcmp-ssse3: Likewise.
+	* sysdeps/string/test-memcmp.c: Update.
+	Fix simple_wmemcmp.
+	Add new tests.
+	* wcsmbs/wmemcmp.c: Update.
+	(WMEMCMP): New macro.
+	Fix overflow bug.
+
+2011-10-12  Andreas Jaeger  <aj@xxxxxxx>
+
+	[BZ #13268]
+	* math/bits/mathcalls.h: Mark argument 2 of modf as non-null.
+
+2011-10-15  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* libio/iofwide.c (do_length): Avoid warning.
+
+	* ctype/ctype.h (__isctype_f): Add missing __THROW.
+
+2011-10-14  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* elf/pldd-xx.c (find_maps): Remove leftover debug message.
+
+	* sysdeps/i386/fpu/e_log.S: Add real definition of __log_finite.
+	* sysdeps/i386/fpu/e_logf.S: Add real definition of __logf_finite.
+	* sysdeps/i386/fpu/e_logl.S: Add real definition of __logl_finite.
+	* sysdeps/i386/i686/fpu/e_log.S: New file.
+	* sysdeps/i386/i686/fpu/e_logf.S: New file.
+	* sysdeps/i386/i686/fpu/e_logl.S: New file.
+
+	* ctype/ctype.h: Add support for inlined isXXX functions when
+	compiling C++ code.
+
+2011-10-14  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/s390/fpu/libm-test-ulps: Adjust ULPs for jn tests.
+
+	* sysdeps/x86_64/fpu/fraiseexcpt.c: Fix last change.
+
+2011-10-13  Roland McGrath  <roland@xxxxxxxxxxxxx>
+
+	[BZ #13291]
+	* manual/string.texi (String/Array Comparison): Typo fix in strverscmp.
+
+2011-10-13  Andreas Schwab  <schwab@xxxxxxxxxx>
+
+	* sysdeps/x86_64/fpu/fraiseexcpt.c: Add __feraiseexcept alias.
+	* sysdeps/x86_64/fpu/feupdateenv.c: Use __feraiseexcept instead of
+	feraiseexcept.
+
+	* sysdeps/x86_64/memrchr.S: Check for zero size.
+
+	* string/stratcliff.c: Add memrchr tests.
+
+2011-10-12  Liubov Dmitrieva  <liubov.dmitrieva@xxxxxxxxx>
+
+	* sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+	memchr-sse2 memchr-sse2-bsf memrchr-sse2 memrchr-sse2-bsf memrchr-c
+	rawmemchr-sse2 rawmemchr-sse2-bsf.
+	* sysdeps/i386/i686/multiarch/memchr.S: New file.
+	* sysdeps/i386/i686/multiarch/memchr-sse2.S: New file.
+	* sysdeps/i386/i686/multiarch/memchr-sse2-bsf.S: New file.
+	* sysdeps/i386/i686/multiarch/memrchr.S: New file.
+	* sysdeps/i386/i686/multiarch/memrchr-c.c: New file.
+	* sysdeps/i386/i686/multiarch/memrchr-sse2.S: New file.
+	* sysdeps/i386/i686/multiarch/memrchr-sse2-bsf.S: New file.
+	* sysdeps/i386/i686/multiarch/rawmemchr.S: New file.
+	* sysdeps/i386/i686/multiarch/rawmemchr-sse2.S: New file.
+	* sysdeps/i386/i686/multiarch/rawmemchr-sse2-bsf.S: New file.
+	* string/memrchr.c (MEMRCHR): New macro.
+
+2011-10-12  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	Add integration with gcc's -ffinite-math-only and optimize wrapper
+	functions in libm.
+	* Versions.def: Define GLIBC_2.15 version for libm.
+	* math/Makefile (headers): Add bits/math-finite.h.
+	* math/bits/math-finite.h: New file.
+	* sysdeps/ia64/fpu/bits/math-finite.h: New file.
+	* math/Versions [libm] (GLIBC_2.15): Export __*_finite symbols.
+	* math/e_acoshl.c: Add __*_finite alias.
+	* math/e_acosl.c: Likewise.
+	* math/e_asinl.c: Likewise.
+	* math/e_atan2l.c: Likewise.
+	* math/e_atanhl.c: Likewise.
+	* math/e_coshl.c: Likewise.
+	* math/e_exp10.c: Likewise.
+	* math/e_exp10f.c: Likewise.
+	* math/e_exp10l.c: Likewise.
+	* math/e_exp2l.c: Likewise.
+	* math/e_fmodl.c: Likewise.
+	* math/e_gammal_r.c: Likewise.
+	* math/e_hypotl.c: Likewise.
+	* math/e_j0l.c: Likewise.
+	* math/e_j1l.c: Likewise.
+	* math/e_jnl.c: Likewise.
+	* math/e_lgammal_r.c: Likewise.
+	* math/e_log10l.c: Likewise.
+	* math/e_log2l.c: Likewise.
+	* math/e_logl.c: Likewise.
+	* math/e_powl.c: Likewise.
+	* math/e_sinhl.c: Likewise.
+	* math/e_sqrtl.c: Likewise.
+	* math/e_scalb.c: Completely rewritten and optimized.
+	* math/e_scalbf.c: Likewise.
+	* math/e_scalbl.c: Likewise.
+	* math/w_acos.c: Likewise.
+	* math/w_acosf.c: Likewise.
+	* math/w_acosl.c: Likewise.
+	* math/w_acosh.c: Likewise.
+	* math/w_acoshf.c: Likewise.
+	* math/w_acoshl.c: Likewise.
+	* math/w_asin.c: Likewise.
+	* math/w_asinf.c: Likewise.
+	* math/w_asinl.c: Likewise.
+	* math/w_atan2.c: Likewise.
+	* math/w_atan2f.c: Likewise.
+	* math/w_atan2l.c: Likewise.
+	* math/w_atanh.c: Likewise.
+	* math/w_atanhf.c: Likewise.
+	* math/w_atanhl.c: Likewise.
+	* math/w_exp10.c: Likewise.
+	* math/w_exp10f.c: Likewise.
+	* math/w_exp10l.c: Likewise.
+	* math/w_fmod.c: Likewise.
+	* math/w_fmodf.c: Likewise.
+	* math/w_fmodl.c: Likewise.
+	* math/w_j0.c: Likewise.
+	* math/w_j0f.c: Likewise.
+	* math/w_j0l.c: Likewise.
+	* math/w_j1.c: Likewise.
+	* math/w_j1f.c: Likewise.
+	* math/w_j1l.c: Likewise.
+	* math/w_jn.c: Likewise.
+	* math/w_jnf.c: Likewise.
+	* math/w_log.c: Likewise.
+	* math/w_logf.c: Likewise.
+	* math/w_logl.c: Likewise.
+	* math/w_log10.c: Likewise.
+	* math/w_log10f.c: Likewise.
+	* math/w_log10l.c: Likewise.
+	* math/w_log2.c: Likewise.
+	* math/w_log2f.c: Likewise.
+	* math/w_log2l.c: Likewise.
+	* math/w_pow.c: Likewise.
+	* math/w_powf.c: Likewise.
+	* math/w_powl.c: Likewise.
+	* math/w_remainder.c: Likewise.
+	* math/w_remainderf.c: Likewise.
+	* math/w_remainderl.c: Likewise.
+	* math/w_scalb.c: Likewise.
+	* math/w_scalbf.c: Likewise.
+	* math/w_scalbl.c: Likewise.
+	* math/w_sqrt.c: Likewise.
+	* math/w_sqrtf.c: Likewise.
+	* math/w_sqrtl.c: Likewise.
+	* math/math.h: Define __MATH_DECLARE_LDOUBLE if long double functions
+	are declared.  Include <bits/math-finite.h> if -ffinite-math-only is
+	used.
+	* math/math_private.h: Declare __kernel_standard_f.
+	* math/w_cosh.c: Remove cruft and optimize a bit.
+	* math/w_coshf.c: Likewise.
+	* math/w_coshl.c: Likewise.
+	* math/w_exp2.c: Likewise.
+	* math/w_exp2f.c: Likewise.
+	* math/w_exp2l.c: Likewise.
+	* math/w_hypot.c: Likewise.
+	* math/w_hypotf.c: Likewise.
+	* math/w_hypotl.c: Likewise.
+	* math/w_lgamma.c: Likewise.
+	* math/w_lgamma_r.c: Likewise.
+	* math/w_lgammaf.c: Likewise.
+	* math/w_lgammaf_r.c: Likewise.
+	* math/w_lgammal.c: Likewise.
+	* math/w_lgammal_r.c: Likewise.
+	* math/w_sinh.c: Likewise.
+	* math/w_sinhf.c: Likewise.
+	* math/w_sinhl.c: Likewise.
+	* math/w_tgamma.c: Likewise.
+	* math/w_tgammaf.c: Likewise.
+	* math/w_tgammal.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
+	* sysdeps/i386/fpu/e_acos.S: Add __*_finite alias.
+	Minor optimizations.  Pretty printing.  Remove cruft.
+	* sysdeps/i386/fpu/e_acosf.S: Likewise.
+	* sysdeps/i386/fpu/e_acosh.S: Likewise.
+	* sysdeps/i386/fpu/e_acoshf.S: Likewise.
+	* sysdeps/i386/fpu/e_acoshl.S: Likewise.
+	* sysdeps/i386/fpu/e_acosl.c: Likewise.
+	* sysdeps/i386/fpu/e_asin.S: Likewise.
+	* sysdeps/i386/fpu/e_asinf.S: Likewise.
+	* sysdeps/i386/fpu/e_atan2.S: Likewise.
+	* sysdeps/i386/fpu/e_atan2f.S: Likewise.
+	* sysdeps/i386/fpu/e_atan2l.c: Likewise.
+	* sysdeps/i386/fpu/e_atanh.S: Likewise.
+	* sysdeps/i386/fpu/e_atanhf.S: Likewise.
+	* sysdeps/i386/fpu/e_atanhl.S: Likewise.
+	* sysdeps/i386/fpu/e_exp10.S: Likewise.
+	* sysdeps/i386/fpu/e_exp10f.S: Likewise.
+	* sysdeps/i386/fpu/e_exp10l.S: Likewise.
+	* sysdeps/i386/fpu/e_exp2.S: Likewise.
+	* sysdeps/i386/fpu/e_exp2f.S: Likewise.
+	* sysdeps/i386/fpu/e_exp2l.S: Likewise.
+	* sysdeps/i386/fpu/e_fmod.S: Likewise.
+	* sysdeps/i386/fpu/e_fmodf.S: Likewise.
+	* sysdeps/i386/fpu/e_fmodl.c: Likewise.
+	* sysdeps/i386/fpu/e_hypot.S: Likewise.
+	* sysdeps/i386/fpu/e_hypotf.S: Likewise.
+	* sysdeps/i386/fpu/e_log.S: Likewise.
+	* sysdeps/i386/fpu/e_log10.S: Likewise.
+	* sysdeps/i386/fpu/e_log10f.S: Likewise.
+	* sysdeps/i386/fpu/e_log10l.S: Likewise.
+	* sysdeps/i386/fpu/e_log2.S: Likewise.
+	* sysdeps/i386/fpu/e_log2f.S: Likewise.
+	* sysdeps/i386/fpu/e_log2l.S: Likewise.
+	* sysdeps/i386/fpu/e_logf.S: Likewise.
+	* sysdeps/i386/fpu/e_logl.S: Likewise.
+	* sysdeps/i386/fpu/e_pow.S: Likewise.
+	* sysdeps/i386/fpu/e_powf.S: Likewise.
+	* sysdeps/i386/fpu/e_powl.S: Likewise.
+	* sysdeps/i386/fpu/e_remainder.S: Likewise.
+	* sysdeps/i386/fpu/e_remainderf.S: Likewise.
+	* sysdeps/i386/fpu/e_remainderl.S: Likewise.
+	* sysdeps/i386/fpu/e_scalb.S: Likewise.
+	* sysdeps/i386/fpu/e_scalbf.S: Likewise.
+	* sysdeps/i386/fpu/e_scalbl.S: Likewise.
+	* sysdeps/i386/fpu/e_sqrt.S: Likewise.
+	* sysdeps/i386/fpu/e_sqrtf.S: Likewise.
+	* sysdeps/i386/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_acosh.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_cosh.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_fmod.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_j0.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log10.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_log2.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_remainder.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
+	* sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
+	* sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
+	* sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_acosf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_acoshf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_atan2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_coshf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_exp2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_fmodf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_hypotf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_j0f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_log10f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_log2f.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_logf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_powf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_remainderf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
+	* sysdeps/ieee754/flt-32/e_sqrtf.c: Likewise.
+	* sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_acoshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_acosl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_atan2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_coshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_fmodl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_j0l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_lgammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_log10l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_log2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_logl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_powl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_remainderl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_acosl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_atan2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_coshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_fmodl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_log10l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_log2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_logl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_remainderl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_acoshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_atan2l.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_coshl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_remainderl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
+	* sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
+	* sysdeps/powerpc/fpu/e_hypot.c: Likewise.
+	* sysdeps/powerpc/fpu/e_hypotf.c: Likewise.
+	* sysdeps/powerpc/fpu/e_sqrt.c: Likewise.
+	* sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/powerpc/powerpc64/fpu/e_sqrt.c: Likewise.
+	* sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/s390/fpu/e_sqrt.c: Likewise.
+	* sysdeps/s390/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/s390/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/sparc/sparc32/e_sqrt.c: Likewise.
+	* sysdeps/sparc/sparc64/fpu/e_sqrtl.c: Likewise.
+	* sysdeps/x86_64/fpu/e_exp2l.S: Likewise.
+	* sysdeps/x86_64/fpu/e_fmodl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_log10l.S: Likewise.
+	* sysdeps/x86_64/fpu/e_log2l.S: Likewise.
+	* sysdeps/x86_64/fpu/e_logl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_powl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_remainderl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_scalbl.S: Likewise.
+	* sysdeps/x86_64/fpu/e_sqrt.c: Likewise.  Fix parameter order
+	* sysdeps/x86_64/fpu/e_sqrtf.c: Likewise.
+	* sysdeps/x86_64/fpu/math_private.h (__isnan): Cast d parameter.
+	(__isnanf): Likewise.
+	(__isinf_ns): Likewise.
+	(__isinf_nsf): Likewise.
+	(__finite): Likewise.
+	(__finitef): Likewise.
+	(__ieee754_sqrt): Define as macro.
+	(__ieee754_sqrtf): Define as macro.
+	(__ieee754_sqrtl): Define as macro.
+	* sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Add partially
+	inlined copy.
+	* sysdeps/x86_64/fpu/bits/mathinline.h: Make use of
+	__FINITE_MATH_ONLY__ consistent.
+	* sysdeps/ieee754/k_standard.c (__kernel_standard_f): New function.
+
+2011-10-10  Andreas Schwab  <schwab@xxxxxxxxxxxxxx>
+
+	* inet/getnetgrent_r.c (nscd_getnetgrent): Use __rawmemchr instead
+	of rawmemchr.
+
+	* sysdeps/ieee754/ldbl-128ibm/s_isinf_nsl.c: New file.
+
 2011-10-09  Ulrich Drepper  <drepper@xxxxxxxxx>
 
 	* po/ja.po: Update from translation team.

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sun Oct 23 17:49:41 2011
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2011-10-8
+GNU C Library NEWS -- history of user-visible changes.  2011-10-20
 Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -9,9 +9,9 @@
 
 * The following bugs are resolved with this release:
 
-  6779, 6783, 9696, 11589, 12403, 12847, 12868, 12852, 12874, 12885, 12907,
-  12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114, 13118,
-  13123, 13134, 13138, 13150, 13179, 13192
+  6779, 6783, 9696, 11589, 12403, 12847, 12868, 12852, 12874, 12885, 12892,
+  12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114,
+  13118, 13123, 13134, 13138, 13150, 13179, 13192, 13268, 13291
 
 * New program pldd to list loaded object of a process
   Implemented by Ulrich Drepper.
@@ -33,7 +33,7 @@
 * Optimized strchr and strrchr for SSE on x86-32.
   Contributed by Liubov Dmitrieva.
 
-* Optimized memchr, memrchr, rawmemchr for x86-64.
+* Optimized memchr, memrchr, rawmemchr, memcmp, wmemcmp for x86-64 and x86-32.
   Contributed by Liubov Dmitrieva.
 
 * New interfaces: scandirat, scandirat64
@@ -43,6 +43,15 @@
   Implemented by Ulrich Drepper.
 
 * nscd now also caches the netgroup database.
+  Implemented by Ulrich Drepper.
+
+* Integrate libm with gcc's -ffinite-math-only option.
+  Implemented by Ulrich Drepper.
+
+* Lots of generic, 64-bit, and x86-64-specific performance optimizations
+  to math functions.  Implemented by Ulrich Drepper.
+
+* Optimized strcasecmp and strncasecmp for AVX on x86-64.
   Implemented by Ulrich Drepper.
 
 Version 2.14

Modified: fsf/trunk/libc/README
==============================================================================
--- fsf/trunk/libc/README (original)
+++ fsf/trunk/libc/README Sun Oct 23 17:49:41 2011
@@ -94,4 +94,7 @@
 
 The GNU C Library is free software.  See the file COPYING.LIB for copying
 conditions, and LICENSES for notices about a few contributions that require
-these additional notices to be distributed.
+these additional notices to be distributed.  License copyright years may be
+listed using range notation, e.g., 2000-2011, indicating that every year in
+the range, inclusive, is a copyrightable year that would otherwise be listed
+individually.

Modified: fsf/trunk/libc/Versions.def
==============================================================================
--- fsf/trunk/libc/Versions.def (original)
+++ fsf/trunk/libc/Versions.def Sun Oct 23 17:49:41 2011
@@ -54,6 +54,7 @@
   GLIBC_2.2.3
   GLIBC_2.3.4
   GLIBC_2.4
+  GLIBC_2.15
 }
 libnsl {
   GLIBC_2.0

Modified: fsf/trunk/libc/config.h.in
==============================================================================
--- fsf/trunk/libc/config.h.in (original)
+++ fsf/trunk/libc/config.h.in Sun Oct 23 17:49:41 2011
@@ -117,6 +117,9 @@
 
 /* Define if gcc supports AVX.  */
 #undef	HAVE_AVX_SUPPORT
+
+/* Define if gcc supports FMA4.  */
+#undef	HAVE_FMA4_SUPPORT
 
 /* Define if the compiler's exception support is based on libunwind.  */
 #undef	HAVE_CC_WITH_LIBUNWIND

Modified: fsf/trunk/libc/configure
==============================================================================
--- fsf/trunk/libc/configure (original)
+++ fsf/trunk/libc/configure Sun Oct 23 17:49:41 2011
@@ -5372,11 +5372,16 @@
   SYSINCLUDES="$SYSINCLUDES \
 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
   if test -n "$CXX"; then
+    CXX_SYSINCLUDES=
     cxxversion=`$CXX -dumpversion 2>&5` &&
     cxxmachine=`$CXX -dumpmachine 2>&5` &&
-    cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
-    CXX_SYSINCLUDES="-isystem $cxxheaders \
+    for d in include "$cxxmachine/include"; do
+      i=../../../../$d/c++/$cxxversion
+      cxxheaders=`$CXX -print-file-name="$i"` &&
+      test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
+      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+    done
   fi
 fi
 

Modified: fsf/trunk/libc/configure.in
==============================================================================
--- fsf/trunk/libc/configure.in (original)
+++ fsf/trunk/libc/configure.in Sun Oct 23 17:49:41 2011
@@ -1061,11 +1061,16 @@
   SYSINCLUDES="$SYSINCLUDES \
 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
   if test -n "$CXX"; then
+    CXX_SYSINCLUDES=
     cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
     cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
-    cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
-    CXX_SYSINCLUDES="-isystem $cxxheaders \
+    for d in include "$cxxmachine/include"; do
+      i=../../../../$d/c++/$cxxversion
+      cxxheaders=`$CXX -print-file-name="$i"` &&
+      test "x$cxxheaders" != x && test "x$i" != "x$cxxheaders" &&
+      CXX_SYSINCLUDES="$CXX_SYSINCLUDES -isystem $cxxheaders \
 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+    done
   fi
 fi
 AC_SUBST(SYSINCLUDES)

Modified: fsf/trunk/libc/ctype/Versions
==============================================================================
--- fsf/trunk/libc/ctype/Versions (original)
+++ fsf/trunk/libc/ctype/Versions Sun Oct 23 17:49:41 2011
@@ -21,4 +21,7 @@
     # functions used by optimized macros in ctype.h
     __ctype_b_loc; __ctype_tolower_loc; __ctype_toupper_loc;
   }
+  GLIBC_PRIVATE {
+    __ctype_init;
+  }
 }

Modified: fsf/trunk/libc/ctype/ctype-info.c
==============================================================================
--- fsf/trunk/libc/ctype/ctype-info.c (original)
+++ fsf/trunk/libc/ctype/ctype-info.c Sun Oct 23 17:49:41 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,95,96,97,99,2000, 2002, 2008
+/* Copyright (C) 1991,92,95,96,97,99,2000, 2002, 2008, 2011
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -24,6 +24,19 @@
 __libc_tsd_define (, const uint16_t *, CTYPE_B)
 __libc_tsd_define (, const int32_t *, CTYPE_TOLOWER)
 __libc_tsd_define (, const int32_t *, CTYPE_TOUPPER)
+
+
+void
+__ctype_init (void)
+{
+  const uint16_t **bp = __libc_tsd_address (const uint16_t *, CTYPE_B);
+  *bp = (const uint16_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_CLASS) + 128;
+  const int32_t **up = __libc_tsd_address (const int32_t *, CTYPE_TOUPPER);
+  *up = ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOUPPER) + 128);
+  const int32_t **lp = __libc_tsd_address (const int32_t *, CTYPE_TOLOWER);
+  *lp = ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOLOWER) + 128);
+}
+libc_hidden_def (__ctype_init)
 
 
 #include <shlib-compat.h>

Modified: fsf/trunk/libc/ctype/ctype.h
==============================================================================
--- fsf/trunk/libc/ctype/ctype.h (original)
+++ fsf/trunk/libc/ctype/ctype.h Sun Oct 23 17:49:41 2011
@@ -1,5 +1,5 @@
-/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004,2007,2008,2009
-   	Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,95,96,97,98,99,2001,2002,2004,2007,2008,2009,2011
+	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
@@ -85,8 +85,18 @@
 extern __const __int32_t **__ctype_toupper_loc (void)
      __THROW __attribute__ ((__const));
 
-#define __isctype(c, type) \
+
+#ifndef __cplusplus
+# define __isctype(c, type) \
   ((*__ctype_b_loc ())[(int) (c)] & (unsigned short int) type)
+#elif defined __USE_EXTERN_INLINES
+# define __isctype_f(type) \
+  __extern_inline int							      \
+  is##type (int __c) __THROW						      \
+  {									      \
+    return (*__ctype_b_loc ())[(int) (__c)] & (unsigned short int) _IS##type; \
+  }
+#endif
 
 #define	__isascii(c)	(((c) & ~0x7f) == 0)	/* If C is a 7 bit value.  */
 #define	__toascii(c)	((c) & 0x7f)		/* Mask off high bits.  */
@@ -169,7 +179,23 @@
 	__res = (a)[(int) (c)];						      \
       __res; }))
 
-#if !defined __NO_CTYPE && !defined __cplusplus
+#if !defined __NO_CTYPE
+# ifdef __isctype_f
+__isctype_f (alnum)
+__isctype_f (alpha)
+__isctype_f (cntrl)
+__isctype_f (digit)
+__isctype_f (lower)
+__isctype_f (graph)
+__isctype_f (print)
+__isctype_f (punct)
+__isctype_f (space)
+__isctype_f (upper)
+__isctype_f (xdigit)
+#  ifdef __USE_ISOC99
+__isctype_f (blank)
+#  endif
+# elif defined __isctype
 # define isalnum(c)	__isctype((c), _ISalnum)
 # define isalpha(c)	__isctype((c), _ISalpha)
 # define iscntrl(c)	__isctype((c), _IScntrl)
@@ -181,9 +207,9 @@
 # define isspace(c)	__isctype((c), _ISspace)
 # define isupper(c)	__isctype((c), _ISupper)
 # define isxdigit(c)	__isctype((c), _ISxdigit)
-
-# ifdef __USE_ISOC99
-#  define isblank(c)	__isctype((c), _ISblank)
+#  ifdef __USE_ISOC99
+#   define isblank(c)	__isctype((c), _ISblank)
+#  endif
 # endif
 
 # ifdef __USE_EXTERN_INLINES

Modified: fsf/trunk/libc/elf/dl-fini.c
==============================================================================
--- fsf/trunk/libc/elf/dl-fini.c (original)
+++ fsf/trunk/libc/elf/dl-fini.c Sun Oct 23 17:49:41 2011
@@ -100,7 +100,17 @@
 	      /* Look through the relocation dependencies of the object.  */
 	      while (m-- > 0)
 		if (__builtin_expect (relmaps[m] == thisp, 0))
-		  goto move;
+		  {
+		    /* If a cycle exists with a link time dependency,
+		       preserve the latter.  */
+		    struct link_map **runp = thisp->l_initfini;
+		    if (runp != NULL)
+		      while (*runp != NULL)
+			if (__builtin_expect (*runp++ == maps[k], 0))
+			  goto ignore;
+		    goto move;
+		  }
+	    ignore:;
 	    }
 
 	  --k;

Modified: fsf/trunk/libc/elf/do-rel.h
==============================================================================
--- fsf/trunk/libc/elf/do-rel.h (original)
+++ fsf/trunk/libc/elf/do-rel.h Sun Oct 23 17:49:41 2011
@@ -21,13 +21,10 @@
    `elf_dynamic_do_rel' and `elf_dynamic_do_rela'.  */
 
 #ifdef DO_RELA
-# define elf_dynamic_do_rel		elf_dynamic_do_rela
-# define RELCOUNT_IDX			VERSYMIDX (DT_RELACOUNT)
+# define elf_dynamic_do_Rel		elf_dynamic_do_Rela
 # define Rel				Rela
 # define elf_machine_rel		elf_machine_rela
 # define elf_machine_rel_relative	elf_machine_rela_relative
-#else
-# define RELCOUNT_IDX			VERSYMIDX (DT_RELCOUNT)
 #endif
 
 #ifndef DO_ELF_MACHINE_REL_RELATIVE
@@ -50,13 +47,18 @@
    than fully resolved now.  */
 
 auto inline void __attribute__ ((always_inline))
-elf_dynamic_do_rel (struct link_map *map,
+elf_dynamic_do_Rel (struct link_map *map,
 		    ElfW(Addr) reladdr, ElfW(Addr) relsize,
+		    __typeof (((ElfW(Dyn) *) 0)->d_un.d_val) nrelative,
 		    int lazy, int skip_ifunc)
 {
   const ElfW(Rel) *r = (const void *) reladdr;
   const ElfW(Rel) *end = (const void *) (reladdr + relsize);
   ElfW(Addr) l_addr = map->l_addr;
+# if defined ELF_MACHINE_IRELATIVE && !defined RTLD_BOOTSTRAP
+  const ElfW(Rel) *r2 = NULL;
+  const ElfW(Rel) *end2 = NULL;
+# endif
 
 #if (!defined DO_RELA || !defined ELF_MACHINE_PLT_REL) && !defined RTLD_BOOTSTRAP
   /* We never bind lazily during ld.so bootstrap.  Unfortunately gcc is
@@ -66,17 +68,31 @@
     {
       /* Doing lazy PLT relocations; they need very little info.  */
       for (; r < end; ++r)
-	elf_machine_lazy_rel (map, l_addr, r, skip_ifunc);
+# ifdef ELF_MACHINE_IRELATIVE
+	if (ELFW(R_TYPE) (r->r_info) == ELF_MACHINE_IRELATIVE)
+	  {
+	    if (r2 == NULL)
+	      r2 = r;
+	    end2 = r;
+	  }
+	else
+# endif
+	  elf_machine_lazy_rel (map, l_addr, r, skip_ifunc);
+
+# ifdef ELF_MACHINE_IRELATIVE
+      if (r2 != NULL)
+	for (; r2 <= end2; ++r2)
+	  if (ELFW(R_TYPE) (r2->r_info) == ELF_MACHINE_IRELATIVE)
+	    elf_machine_lazy_rel (map, l_addr, r2, skip_ifunc);
+# endif
     }
   else
 #endif
     {
       const ElfW(Sym) *const symtab =
 	(const void *) D_PTR (map, l_info[DT_SYMTAB]);
-      ElfW(Word) nrelative = (map->l_info[RELCOUNT_IDX] == NULL
-			      ? 0 : map->l_info[RELCOUNT_IDX]->d_un.d_val);
       const ElfW(Rel) *relative = r;
-      r = r + MIN (nrelative, relsize / sizeof (ElfW(Rel)));
+      r += nrelative;
 
 #ifndef RTLD_BOOTSTRAP
       /* This is defined in rtld.c, but nowhere in the static libc.a; make
@@ -116,24 +132,69 @@
 
 	  for (; r < end; ++r)
 	    {
+#if defined ELF_MACHINE_IRELATIVE && !defined RTLD_BOOTSTRAP
+	      if (ELFW(R_TYPE) (r->r_info) == ELF_MACHINE_IRELATIVE)
+		{
+		  if (r2 == NULL)
+		    r2 = r;
+		  end2 = r;
+		  continue;
+		}
+#endif
+
 	      ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)] & 0x7fff;
 	      elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)],
 			       &map->l_versions[ndx],
 			       (void *) (l_addr + r->r_offset), skip_ifunc);
 	    }
+
+#if defined ELF_MACHINE_IRELATIVE && !defined RTLD_BOOTSTRAP
+	  if (r2 != NULL)
+	    for (; r2 <= end2; ++r2)
+	      if (ELFW(R_TYPE) (r2->r_info) == ELF_MACHINE_IRELATIVE)
+		{
+		  ElfW(Half) ndx
+		    = version[ELFW(R_SYM) (r2->r_info)] & 0x7fff;
+		  elf_machine_rel (map, r2,
+				   &symtab[ELFW(R_SYM) (r2->r_info)],
+				   &map->l_versions[ndx],
+				   (void *) (l_addr + r2->r_offset),
+				   skip_ifunc);
+		}
+#endif
 	}
 #ifndef RTLD_BOOTSTRAP
       else
-	for (; r < end; ++r)
-	  elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], NULL,
-			   (void *) (l_addr + r->r_offset), skip_ifunc);
+	{
+	  for (; r < end; ++r)
+# ifdef ELF_MACHINE_IRELATIVE
+	    if (ELFW(R_TYPE) (r->r_info) == ELF_MACHINE_IRELATIVE)
+	      {
+		if (r2 == NULL)
+		  r2 = r;
+		end2 = r;
+	      }
+	    else
+# endif
+	      elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)], NULL,
+			       (void *) (l_addr + r->r_offset), skip_ifunc);
+
+# ifdef ELF_MACHINE_IRELATIVE
+	  if (r2 != NULL)
+	    for (; r2 <= end2; ++r2)
+	      if (ELFW(R_TYPE) (r2->r_info) == ELF_MACHINE_IRELATIVE)
+		elf_machine_rel (map, r2, &symtab[ELFW(R_SYM) (r2->r_info)],
+				 NULL, (void *) (l_addr + r2->r_offset),
+				 skip_ifunc);
+# endif
+	}
 #endif
     }
 }
 
-#undef elf_dynamic_do_rel
+#undef elf_dynamic_do_Rel
 #undef Rel
 #undef elf_machine_rel
 #undef elf_machine_rel_relative
 #undef DO_ELF_MACHINE_REL_RELATIVE
-#undef RELCOUNT_IDX
+#undef DO_RELA

Modified: fsf/trunk/libc/elf/dynamic-link.h
==============================================================================
--- fsf/trunk/libc/elf/dynamic-link.h (original)
+++ fsf/trunk/libc/elf/dynamic-link.h Sun Oct 23 17:49:41 2011
@@ -258,17 +258,24 @@
 # ifdef ELF_MACHINE_PLTREL_OVERLAP
 #  define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \
   do {									      \
-    struct { ElfW(Addr) start, size; int lazy; } ranges[3];		      \
+    struct { ElfW(Addr) start, size;					      \
+	     __typeof (((ElfW(Dyn) *) 0)->d_un.d_val) nrelative; int lazy; }  \
+    ranges[3];								      \
     int ranges_index;							      \
 									      \
     ranges[0].lazy = ranges[2].lazy = 0;				      \
     ranges[1].lazy = 1;							      \
     ranges[0].size = ranges[1].size = ranges[2].size = 0;		      \
+    ranges[0].nrelative = ranges[1].nrelative = ranges[2].nrelative = 0;      \
 									      \
     if ((map)->l_info[DT_##RELOC])					      \
       {									      \
 	ranges[0].start = D_PTR ((map), l_info[DT_##RELOC]);		      \
 	ranges[0].size = (map)->l_info[DT_##RELOC##SZ]->d_un.d_val;	      \
+	if (map->l_info[VERSYMIDX (DT_##RELOC##COUNT)] != NULL)		      \
+	  ranges[0].nrelative						      \
+	    = MIN (map->l_info[VERSYMIDX (DT_##RELOC##COUNT)]->d_un.d_val,    \
+		   ranges[0].size / sizeof (ElfW(reloc)));		      \
       }									      \
 									      \
     if ((do_lazy)							      \
@@ -286,21 +293,25 @@
       elf_dynamic_do_##reloc ((map),					      \
 			      ranges[ranges_index].start,		      \
 			      ranges[ranges_index].size,		      \
+			      ranges[ranges_index].nrelative,		      \
 			      ranges[ranges_index].lazy,		      \
 			      skip_ifunc);				      \
   } while (0)
 # else
 #  define _ELF_DYNAMIC_DO_RELOC(RELOC, reloc, map, do_lazy, skip_ifunc, test_rel) \
   do {									      \
-    struct { ElfW(Addr) start, size; int lazy; } ranges[2];		      \
-    ranges[0].lazy = 0;							      \
-    ranges[0].size = ranges[1].size = 0;				      \
-    ranges[0].start = 0;						      \
+    struct { ElfW(Addr) start, size;					      \
+	     __typeof (((ElfW(Dyn) *) 0)->d_un.d_val) nrelative; int lazy; }  \
+      ranges[2] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };			      \
 									      \
     if ((map)->l_info[DT_##RELOC])					      \
       {									      \
 	ranges[0].start = D_PTR ((map), l_info[DT_##RELOC]);		      \
 	ranges[0].size = (map)->l_info[DT_##RELOC##SZ]->d_un.d_val;	      \
+	if (map->l_info[VERSYMIDX (DT_##RELOC##COUNT)] != NULL)		      \
+	  ranges[0].nrelative						      \
+	    = MIN (map->l_info[VERSYMIDX (DT_##RELOC##COUNT)]->d_un.d_val,    \
+		   ranges[0].size / sizeof (ElfW(reloc)));		      \
       }									      \
     if ((map)->l_info[DT_PLTREL]					      \
 	&& (!test_rel || (map)->l_info[DT_PLTREL]->d_un.d_val == DT_##RELOC)) \
@@ -312,7 +323,8 @@
 		/* This test does not only detect whether the relocation      \
 		   sections are in the right order, it also checks whether    \
 		   there is a DT_REL/DT_RELA section.  */		      \
-		|| ranges[0].start + ranges[0].size != start))		      \
+		|| __builtin_expect (ranges[0].start + ranges[0].size	      \
+				     != start, 0)))			      \
 	  {								      \
 	    ranges[1].start = start;					      \
 	    ranges[1].size = (map)->l_info[DT_PLTRELSZ]->d_un.d_val;	      \
@@ -327,8 +339,8 @@
       }									      \
 									      \
     if (ELF_DURING_STARTUP)						      \
-      elf_dynamic_do_##reloc ((map), ranges[0].start, ranges[0].size, 0,      \
-			      skip_ifunc);				      \
+      elf_dynamic_do_##reloc ((map), ranges[0].start, ranges[0].size,	      \
+			      ranges[0].nrelative, 0, skip_ifunc);	      \
     else								      \
       {									      \
 	int ranges_index;						      \
@@ -336,6 +348,7 @@
 	  elf_dynamic_do_##reloc ((map),				      \
 				  ranges[ranges_index].start,		      \
 				  ranges[ranges_index].size,		      \
+				  ranges[ranges_index].nrelative,	      \
 				  ranges[ranges_index].lazy,		      \
 				  skip_ifunc);				      \
       }									      \
@@ -351,7 +364,7 @@
 # if ! ELF_MACHINE_NO_REL
 #  include "do-rel.h"
 #  define ELF_DYNAMIC_DO_REL(map, lazy, skip_ifunc) \
-  _ELF_DYNAMIC_DO_RELOC (REL, rel, map, lazy, skip_ifunc, _ELF_CHECK_REL)
+  _ELF_DYNAMIC_DO_RELOC (REL, Rel, map, lazy, skip_ifunc, _ELF_CHECK_REL)
 # else
 #  define ELF_DYNAMIC_DO_REL(map, lazy, skip_ifunc) /* Nothing to do.  */
 # endif
@@ -360,7 +373,7 @@
 #  define DO_RELA
 #  include "do-rel.h"
 #  define ELF_DYNAMIC_DO_RELA(map, lazy, skip_ifunc) \
-  _ELF_DYNAMIC_DO_RELOC (RELA, rela, map, lazy, skip_ifunc, _ELF_CHECK_REL)
+  _ELF_DYNAMIC_DO_RELOC (RELA, Rela, map, lazy, skip_ifunc, _ELF_CHECK_REL)
 # else
 #  define ELF_DYNAMIC_DO_RELA(map, lazy, skip_ifunc) /* Nothing to do.  */
 # endif

Modified: fsf/trunk/libc/elf/pldd-xx.c
==============================================================================
--- fsf/trunk/libc/elf/pldd-xx.c (original)
+++ fsf/trunk/libc/elf/pldd-xx.c Sun Oct 23 17:49:41 2011
@@ -101,7 +101,6 @@
       default:
 	break;
       }
-  printf("progam header at offset %lu\n", (unsigned long)phdr);
 
   if (phdr == 0 || phnum == 0 || phent == 0)
     error (EXIT_FAILURE, 0, gettext ("cannot find program header of process"));

Modified: fsf/trunk/libc/grp/initgroups.c
==============================================================================
--- fsf/trunk/libc/grp/initgroups.c (original)
+++ fsf/trunk/libc/grp/initgroups.c Sun Oct 23 17:49:41 2011
@@ -82,9 +82,8 @@
 
   if (__nss_initgroups_database == NULL)
     {
-      no_more = __nss_database_lookup ("initgroups", NULL, "",
-				       &__nss_initgroups_database);
-      if (no_more == 0 && __nss_initgroups_database == NULL)
+      if (__nss_database_lookup ("initgroups", NULL, "",
+				 &__nss_initgroups_database) < 0)
 	{
 	  if (__nss_group_database == NULL)
 	    no_more = __nss_database_lookup ("group", NULL, "compat files",
@@ -92,11 +91,8 @@
 
 	  __nss_initgroups_database = __nss_group_database;
 	}
-      else if (__nss_initgroups_database != NULL)
-	{
-	  assert (no_more == 0);
-	  use_initgroups_entry = true;
-	}
+      else
+	use_initgroups_entry = true;
     }
   else
     /* __nss_initgroups_database might have been set through

Modified: fsf/trunk/libc/include/ctype.h
==============================================================================
--- fsf/trunk/libc/include/ctype.h (original)
+++ fsf/trunk/libc/include/ctype.h Sun Oct 23 17:49:41 2011
@@ -1,4 +1,8 @@
 #ifndef _CTYPE_H
+
+/* Initialize ctype locale data.  */
+extern void __ctype_init (void);
+libc_hidden_proto (__ctype_init)
 
 extern int __isctype (int __c, int __mask);
 
@@ -22,31 +26,23 @@
 __libc_tsd_define (extern, const int32_t *, CTYPE_TOUPPER)
 __libc_tsd_define (extern, const int32_t *, CTYPE_TOLOWER)
 
+
 CTYPE_EXTERN_INLINE const uint16_t ** __attribute__ ((const))
 __ctype_b_loc (void)
 {
-  const uint16_t **tablep = __libc_tsd_address (const uint16_t *, CTYPE_B);
-  if (__builtin_expect (*tablep == NULL, 0))
-    *tablep = (const uint16_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_CLASS) + 128;
-  return tablep;
+  return __libc_tsd_address (const uint16_t *, CTYPE_B);
 }
 
 CTYPE_EXTERN_INLINE const int32_t ** __attribute__ ((const))
 __ctype_toupper_loc (void)
 {
-  const int32_t **tablep = __libc_tsd_address (const int32_t *, CTYPE_TOUPPER);
-  if (__builtin_expect (*tablep == NULL, 0))
-    *tablep = ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOUPPER) + 128);
-  return tablep;
+  return __libc_tsd_address (const int32_t *, CTYPE_TOUPPER);
 }
 
 CTYPE_EXTERN_INLINE const int32_t ** __attribute__ ((const))
 __ctype_tolower_loc (void)
 {
-  const int32_t **tablep = __libc_tsd_address (const int32_t *, CTYPE_TOLOWER);
-  if (__builtin_expect (*tablep == NULL, 0))
-    *tablep = ((int32_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_TOLOWER) + 128);
-  return tablep;
+  return __libc_tsd_address (const int32_t *, CTYPE_TOLOWER);
 }
 
 # endif	/* Not NOT_IN_libc.  */

Modified: fsf/trunk/libc/inet/getnetgrent_r.c
==============================================================================
--- fsf/trunk/libc/inet/getnetgrent_r.c (original)
+++ fsf/trunk/libc/inet/getnetgrent_r.c Sun Oct 23 17:49:41 2011
@@ -250,11 +250,11 @@
 
   datap->type = triple_val;
   datap->val.triple.host = datap->cursor;
-  datap->cursor = (char *) rawmemchr (datap->cursor, '\0') + 1;
+  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
   datap->val.triple.user = datap->cursor;
-  datap->cursor = (char *) rawmemchr (datap->cursor, '\0') + 1;
+  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
   datap->val.triple.domain = datap->cursor;
-  datap->cursor = (char *) rawmemchr (datap->cursor, '\0') + 1;
+  datap->cursor = (char *) __rawmemchr (datap->cursor, '\0') + 1;
 
   return NSS_STATUS_SUCCESS;
 }

Modified: fsf/trunk/libc/libio/iofwide.c
==============================================================================
--- fsf/trunk/libc/libio/iofwide.c (original)
+++ fsf/trunk/libc/libio/iofwide.c Sun Oct 23 17:49:41 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2003, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2003, 2005, 2011 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
@@ -471,7 +471,6 @@
   const unsigned char *cp = (const unsigned char *) from_start;
   wchar_t to_buf[max];
   struct __gconv_step *gs = codecvt->__cd_in.__cd.__steps;
-  int status;
   size_t dummy;
 
   codecvt->__cd_in.__cd.__data[0].__outbuf = (unsigned char *) to_buf;
@@ -484,10 +483,10 @@
     PTR_DEMANGLE (fct);
 #endif
 
-  status = DL_CALL_FCT (fct,
-			(gs, codecvt->__cd_in.__cd.__data, &cp,
-			 (const unsigned char *) from_end, NULL,
-			 &dummy, 0, 0));
+  DL_CALL_FCT (fct,
+	       (gs, codecvt->__cd_in.__cd.__data, &cp,
+		(const unsigned char *) from_end, NULL,
+		&dummy, 0, 0));
 
   result = cp - (const unsigned char *) from_start;
 #else

Modified: fsf/trunk/libc/localedata/ChangeLog
==============================================================================
--- fsf/trunk/libc/localedata/ChangeLog (original)
+++ fsf/trunk/libc/localedata/ChangeLog Sun Oct 23 17:49:41 2011
@@ -1,3 +1,10 @@
+2011-10-15  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	* Makefile (tests): Add tst-setlocale2:
+	(LOCALES): Add tr_TR.ISO-8859-9;
+	(tst-setlocale2-ENV): Define.
+	* tst-setlocale2.c: New file.
+
 2011-07-02  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* tests-mbwc/tst_funcs.h (TST_DECL_VARS, TST_HEAD_LOCALE):

Modified: fsf/trunk/libc/localedata/Makefile
==============================================================================
--- fsf/trunk/libc/localedata/Makefile (original)
+++ fsf/trunk/libc/localedata/Makefile Sun Oct 23 17:49:41 2011
@@ -94,7 +94,7 @@
 
 tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \
 	tst-leaks tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale \
-	tst-strfmon1 tst-sscanf tst-strptime bug-setlocale1
+	tst-strfmon1 tst-sscanf tst-strptime bug-setlocale1 tst-setlocale2
 ifeq (yes,$(build-shared))
 ifneq (no,$(PERL))
 tests: $(objpfx)mtrace-tst-leaks
@@ -137,7 +137,7 @@
 	   hr_HR.ISO-8859-2 sv_SE.ISO-8859-1 ja_JP.SJIS fr_FR.ISO-8859-1 \
 	   vi_VN.TCVN5712-1 nb_NO.ISO-8859-1 nn_NO.ISO-8859-1 \
 	   tr_TR.UTF-8 cs_CZ.UTF-8 zh_TW.EUC-TW fa_IR.UTF-8 fr_FR.UTF-8 \
-	   ja_JP.UTF-8 si_LK.UTF-8
+	   ja_JP.UTF-8 si_LK.UTF-8 tr_TR.ISO-8859-9
 LOCALE_SRCS := $(shell echo "$(LOCALES)"|sed 's/\([^ .]*\)[^ ]*/\1/g')
 CHARMAPS := $(shell echo "$(LOCALES)" | \
 		    sed -e 's/[^ .]*[.]\([^ ]*\)/\1/g' -e s/SJIS/SHIFT_JIS/g)
@@ -303,6 +303,7 @@
 
 bug-setlocale1-ENV = LOCPATH=$(common-objpfx)localedata
 bug-setlocale1-ARGS = $(common-objpfx)
+tst-setlocale2-ENV = LOCPATH=$(common-objpfx)localedata
 
 $(objdir)/iconvdata/gconv-modules:
 	$(MAKE) -C ../iconvdata subdir=iconvdata $@

Added: fsf/trunk/libc/localedata/tst-setlocale2.c
==============================================================================
--- fsf/trunk/libc/localedata/tst-setlocale2.c (added)
+++ fsf/trunk/libc/localedata/tst-setlocale2.c Sun Oct 23 17:49:41 2011
@@ -1,0 +1,76 @@
+#include <ctype.h>
+#include <locale.h>
+#include <stdio.h>
+#include <wctype.h>
+
+
+static int
+do_test (void)
+{
+  const char *loc = "de_DE.ISO-8859-1";
+  if (setlocale (LC_ALL, loc) == NULL)
+    {
+      printf ("cannot set %s locale\n", loc);
+      return 1;
+    }
+  printf ("selected locale %s\n", loc);
+
+  wint_t win = 0xe4;
+  wint_t wex = 0xc4;
+  wint_t wch = towupper (win);
+  if (wch != wex)
+    {
+      printf ("towupper(%x) = %x, expected %x\n", win, wch, wex);
+      return 1;
+    }
+  wch = toupper (win);
+  if (wch != wex)
+    {
+      printf ("toupper(%x) = %x, expected %x\n", win, wch, wex);
+      return 1;
+    }
+
+  win = 0x69;
+  wex = 0x49;
+  wch = towupper (win);
+  if (wch != wex)
+    {
+      printf ("towupper(%x) = %x, expected %x\n", win, wch, wex);
+      return 1;
+    }
+  wch = toupper (win);
+  if (wch != wex)
+    {
+      printf ("toupper(%x) = %x, expected %x\n", win, wch, wex);
+      return 1;
+    }
+
+  loc = "tr_TR.ISO-8859-9";
+  if (setlocale (LC_ALL, loc) == NULL)
+    {
+      printf ("cannot set %s locale\n", loc);
+      return 1;
+    }
+  printf ("selected locale %s\n", loc);
+
+  win = 0x69;
+  wex = 0x130;
+  wch = towupper (win);
+  if (wch != wex)
+    {
+      printf ("towupper(%x) = %x, expected %x\n", win, wch, wex);
+      return 1;
+    }
+  wch = toupper (win);
+  wex = 0xdd;
+  if (wch != wex)
+    {
+      printf ("toupper(%x) = %x, expected %x\n", win, wch, wex);
+      return 1;
+    }
+
+  return 0;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"

Modified: fsf/trunk/libc/manual/string.texi
==============================================================================
--- fsf/trunk/libc/manual/string.texi (original)
+++ fsf/trunk/libc/manual/string.texi Sun Oct 23 17:49:41 2011
@@ -1249,10 +1249,10 @@
 @comment GNU
 @deftypefun int strverscmp (const char *@var{s1}, const char *@var{s2})
 The @code{strverscmp} function compares the string @var{s1} against
-@var{s2}, considering them as holding indices/version numbers.  Return
-value follows the same conventions as found in the @code{strverscmp}
-function.  In fact, if @var{s1} and @var{s2} contain no digits,
-@code{strverscmp} behaves like @code{strcmp}.
+@var{s2}, considering them as holding indices/version numbers.  The
+return value follows the same conventions as found in the
+@code{strcmp} function.  In fact, if @var{s1} and @var{s2} contain no
+digits, @code{strverscmp} behaves like @code{strcmp}.
 
 Basically, we compare strings normally (character by character), until
 we find a digit in each string - then we enter a special comparison

Modified: fsf/trunk/libc/math/Makefile
==============================================================================
--- fsf/trunk/libc/math/Makefile (original)
+++ fsf/trunk/libc/math/Makefile Sun Oct 23 17:49:41 2011
@@ -1,5 +1,4 @@
-# Copyright (C) 1996-2001,2002,2003,2004,2005,2006,2011
-#	Free Software Foundation, Inc.
+# Copyright (C) 1996-2006,2011 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
@@ -25,7 +24,8 @@
 headers		:= math.h bits/mathcalls.h bits/mathinline.h bits/huge_val.h \
 		   bits/huge_valf.h bits/huge_vall.h bits/inf.h bits/nan.h \
 		   fpu_control.h complex.h bits/cmathcalls.h fenv.h \
-		   bits/fenv.h bits/fenvinline.h bits/mathdef.h tgmath.h
+		   bits/fenv.h bits/fenvinline.h bits/mathdef.h tgmath.h \
+		   bits/math-finite.h
 
 # Internal header files.
 distribute	:= math_ldbl.h math_private.h machine/asm.h

Modified: fsf/trunk/libc/math/Versions
==============================================================================
--- fsf/trunk/libc/math/Versions (original)
+++ fsf/trunk/libc/math/Versions Sun Oct 23 17:49:41 2011
@@ -168,4 +168,34 @@
     # puts exp2l in GLIBC_2.1, which will override this entry.
     exp2l;
   }
+  GLIBC_2.15 {
+    # Optimized -ffinite-math-only entry points
+    __acos_finite; __acosf_finite; __acosl_finite;
+    __acosh_finite; __acoshf_finite; __acoshl_finite;
+    __asin_finite; __asinf_finite; __asinl_finite;
+    __atan2_finite; __atan2f_finite; __atan2l_finite;
+    __atanh_finite; __atanhf_finite; __atanhl_finite;
+    __cosh_finite; __coshf_finite; __coshl_finite;
+    __exp10_finite; __exp10f_finite; __exp10l_finite;
+    __exp2_finite; __exp2f_finite; __exp2l_finite;
+    __fmod_finite; __fmodf_finite; __fmodl_finite;
+    __hypot_finite; __hypotf_finite; __hypotl_finite;
+    __j0_finite; __j0f_finite; __j0l_finite;
+    __y0_finite; __y0f_finite; __y0l_finite;
+    __j1_finite; __j1f_finite; __j1l_finite;
+    __y1_finite; __y1f_finite; __y1l_finite;
+    __jn_finite; __jnf_finite; __jnl_finite;
+    __yn_finite; __ynf_finite; __ynl_finite;
+    __lgamma_r_finite; __lgammaf_r_finite; __lgammal_r_finite;
+    __log_finite; __logf_finite; __logl_finite;
+    __log10_finite; __log10f_finite; __log10l_finite;
+    __log2_finite; __log2f_finite; __log2l_finite;
+    __pow_finite; __powf_finite; __powl_finite;
+    __remainder_finite; __remainderf_finite; __remainderl_finite;
+    __scalb_finite; __scalbf_finite; __scalbl_finite;
+    __sinh_finite; __sinhf_finite; __sinhl_finite;
+    __sqrt_finite; __sqrtf_finite; __sqrtl_finite;
+    __gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
+    __exp_finite; __expf_finite; __expl_finite;
+  }
 }

Added: fsf/trunk/libc/math/bits/math-finite.h
==============================================================================
--- fsf/trunk/libc/math/bits/math-finite.h (added)
+++ fsf/trunk/libc/math/bits/math-finite.h Sun Oct 23 17:49:41 2011
@@ -1,0 +1,322 @@
+/* Entry points to finite-math-only compiler runs.
+   Copyright (C) 2011 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/math-finite.h> directly; include <math.h> instead."
+#endif
+
+/* acos.  */
+extern double acos (double) __asm__ ("__acos_finite");
+extern float acosf (float) __asm__ ("__acosf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double acosl (long double) __asm__ ("__acosl_finite");
+#endif
+
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
+/* acosh.  */
+extern double acosh (double) __asm__ ("__acosh_finite");
+extern float acoshf (float) __asm__ ("__acoshf_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double acoshl (long double) __asm__ ("__acoshl_finite");
+# endif
+#endif
+
+/* asin.  */
+extern double asin (double) __asm__ ("__asin_finite");
+extern float asinf (float) __asm__ ("__asinf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double asinl (long double) __asm__ ("__asinl_finite");
+#endif
+
+/* atan2.  */
+extern double atan2 (double, double) __asm__ ("__atan2_finite");
+extern float atan2f (float, float) __asm__ ("__atan2f_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double atan2l (long double, long double) __asm__ ("__atan2l_finite");
+#endif
+
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
+/* atanh.  */
+extern double atanh (double) __asm__ ("__atanh_finite");
+extern float atanhf (float) __asm__ ("__atanhf_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double atanhl (long double) __asm__ ("__atanhl_finite");
+# endif
+#endif
+
+/* cosh.  */
+extern double cosh (double) __asm__ ("__cosh_finite");
+extern float coshf (float) __asm__ ("__coshf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double coshl (long double) __asm__ ("__coshl_finite");
+#endif
+
+/* exp.  */
+extern double exp (double) __asm__ ("__exp_finite");
+extern float expf (float) __asm__ ("__expf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double expl (long double) __asm__ ("__expl_finite");
+#endif
+
+#ifdef __USE_GNU
+/* exp10.  */
+extern double exp10 (double) __asm__ ("__exp10_finite");
+extern float exp10f (float) __asm__ ("__exp10f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double exp10l (long double) __asm__ ("__exp10l_finite");
+# endif
+
+/* pow10.  */
+extern double pow10 (double) __asm__ ("__exp10_finite");
+extern float pow10f (float) __asm__ ("__exp10f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double pow10l (long double) __asm__ ("__exp10l_finite");
+# endif
+#endif
+
+#ifdef __USE_ISOC99
+/* exp2.  */
+extern double exp2 (double) __asm__ ("__exp2_finite");
+extern float exp2f (float) __asm__ ("__exp2f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double exp2l (long double) __asm__ ("__exp2l_finite");
+# endif
+#endif
+
+/* fmod.  */
+extern double fmod (double, double) __asm__ ("__fmod_finite");
+extern float fmodf (float, float) __asm__ ("__fmodf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double fmodl (long double, long double) __asm__ ("__fmodl_finite");
+#endif
+
+#ifdef __USE_ISOC99
+/* hypot.  */
+extern double hypot (double, double) __asm__ ("__hypot_finite");
+extern float hypotf (float, float) __asm__ ("__hypotf_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double hypotl (long double, long double) __asm__ ("__hypotl_finite");
+# endif
+#endif
+
+#if defined __USE_MISC || defined __USE_XOPEN
+/* j0.  */
+extern double j0 (double) __asm__ ("__j0_finite");
+extern float j0f (float) __asm__ ("__j0f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double j0l (long double) __asm__ ("__j0l_finite");
+# endif
+
+/* y0.  */
+extern double y0 (double) __asm__ ("__y0_finite");
+extern float y0f (float) __asm__ ("__y0f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double y0l (long double) __asm__ ("__y0l_finite");
+# endif
+
+/* j1.  */
+extern double j1 (double) __asm__ ("__j1_finite");
+extern float j1f (float) __asm__ ("__j1f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double j1l (long double) __asm__ ("__j1l_finite");
+# endif
+
+/* y1.  */
+extern double y1 (double) __asm__ ("__y1_finite");
+extern float y1f (float) __asm__ ("__y1f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double y1l (long double) __asm__ ("__y1l_finite");
+# endif
+
+/* jn.  */
+extern double jn (int, double) __asm__ ("__jn_finite");
+extern float jnf (int, float) __asm__ ("__jnf_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double jnl (int, long double) __asm__ ("__jnl_finite");
+# endif
+
+/* yn.  */
+extern double yn (int, double) __asm__ ("__yn_finite");
+extern float ynf (int, float) __asm__ ("__ynf_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double ynl (int, long double) __asm__ ("__ynl_finite");
+# endif
+#endif
+
+#ifdef __USE_MISC
+/* lgamma_r.  */
+extern double lgamma_r (double, int *) __asm__ ("__lgamma_r_finite");
+extern float lgammaf_r (float, int *) __asm__ ("__lgammaf_r_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double lgammal_r (long double, int *) __asm__ ("__lgammal_r_finite");
+# endif
+#endif
+
+#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
+/* lgamma.  */
+__extern_always_inline double lgamma (double __d)
+{
+# ifdef __USE_ISOC99
+  int __local_signgam = 0;
+  return lgamma_r (__d, &__local_signgam);
+# else
+  return lgamma_r (__d, &signgam);
+# endif
+}
+__extern_always_inline float lgammaf (float __d)
+{
+# ifdef __USE_ISOC99
+  int __local_signgam = 0;
+  return lgammaf_r (__d, &__local_signgam);
+# else
+  return lgammaf_r (__d, &signgam);
+# endif
+}
+# ifdef __MATH_DECLARE_LDOUBLE
+__extern_always_inline long double lgammal (long double __d)
+{
+# ifdef __USE_ISOC99
+  int __local_signgam = 0;
+  return lgammal_r (__d, &__local_signgam);
+# else
+  return lgammal_r (__d, &signgam);
+# endif
+}
+# endif
+#endif
+
+#if defined __USE_MISC || defined __USE_XOPEN
+/* gamma.  */
+__extern_always_inline double gamma (double __d)
+{
+# ifdef __USE_ISOC99
+  int __local_signgam = 0;
+  return lgamma_r (__d, &__local_signgam);
+# else
+  return lgamma_r (__d, &signgam);
+# endif
+}
+__extern_always_inline float gammaf (float __d)
+{
+# ifdef __USE_ISOC99
+  int __local_signgam = 0;
+  return lgammaf_r (__d, &__local_signgam);
+# else
+  return lgammaf_r (__d, &signgam);
+# endif
+}
+# ifdef __MATH_DECLARE_LDOUBLE
+__extern_always_inline long double gammal (long double __d)
+{
+#  ifdef __USE_ISOC99
+  int __local_signgam = 0;
+  return lgammal_r (__d, &__local_signgam);
+#  else
+  return lgammal_r (__d, &signgam);
+#  endif
+}
+# endif
+#endif
+
+/* log.  */
+extern double log (double) __asm__ ("__log_finite");
+extern float logf (float) __asm__ ("__logf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double logl (long double) __asm__ ("__logl_finite");
+#endif
+
+/* log10.  */
+extern double log10 (double) __asm__ ("__log10_finite");
+extern float log10f (float) __asm__ ("__log10f_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double log10l (long double) __asm__ ("__log10l_finite");
+#endif
+
+#ifdef __USE_ISOC99
+/* log2.  */
+extern double log2 (double) __asm__ ("__log2_finite");
+extern float log2f (float) __asm__ ("__log2f_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double log2l (long double) __asm__ ("__log2l_finite");
+# endif
+#endif
+
+/* pow.  */
+extern double pow (double, double) __asm__ ("__pow_finite");
+extern float powf (float, float) __asm__ ("__powf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double powl (long double, long double) __asm__ ("__powl_finite");
+#endif
+
+/* remainder.  */
+extern double remainder (double, double) __asm__ ("__remainder_finite");
+extern float remainderf (float, float) __asm__ ("__remainderf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double remainderl (long double, long double) __asm__ ("__remainderl_finite");
+#endif
+
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
+/* scalb.  */
+extern double scalb (double, double) __asm__ ("__scalb_finite");
+extern float scalbf (float, float) __asm__ ("__scalbf_finite");
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double scalbl (long double, long double) __asm__ ("__scalbl_finite");
+# endif
+#endif
+
+/* sinh.  */
+extern double sinh (double) __asm__ ("__sinh_finite");
+extern float sinhf (float) __asm__ ("__sinhf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double sinhl (long double) __asm__ ("__sinhl_finite");
+#endif
+
+/* sqrt.  */
+extern double sqrt (double) __asm__ ("__sqrt_finite");
+extern float sqrtf (float) __asm__ ("__sqrtf_finite");
+#ifdef __MATH_DECLARE_LDOUBLE
+extern long double sqrtl (long double) __asm__ ("__sqrtl_finite");
+#endif
+
+#ifdef __USE_ISOC99
+/* tgamma.  */
+extern double __gamma_r_finite (double, int *);
+__extern_always_inline double tgamma (double __d)
+{
+  int __local_signgam = 0;
+  double __res = __gamma_r_finite (__d, &__local_signgam);
+  return __local_signgam < 0 ? -__res : __res;
+}
+extern float __gammaf_r_finite (float, int *);
+__extern_always_inline float tgammaf (float __d)
+{
+  int __local_signgam = 0;
+  float __res = __gammaf_r_finite (__d, &__local_signgam);
+  return __local_signgam < 0 ? -__res : __res;
+}
+# ifdef __MATH_DECLARE_LDOUBLE
+extern long double __gammal_r_finite (long double, int *);
+__extern_always_inline long double tgammal (long double __d)
+{
+  int __local_signgam = 0;
+  long double __res = __gammal_r_finite (__d, &__local_signgam);
+  return __local_signgam < 0 ? -__res : __res;
+}
+# endif
+#endif

Modified: fsf/trunk/libc/math/bits/mathcalls.h
==============================================================================
--- fsf/trunk/libc/math/bits/mathcalls.h (original)
+++ fsf/trunk/libc/math/bits/mathcalls.h Sun Oct 23 17:49:41 2011
@@ -1,5 +1,5 @@
 /* Prototype declarations for math functions; helper file for <math.h>.
-   Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1996-2002, 2003, 2006, 2011 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
@@ -113,7 +113,8 @@
 __MATHCALL (log10,, (_Mdouble_ __x));
 
 /* Break VALUE into integral and fractional parts.  */
-__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr));
+__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr))
+     __attribute__ ((__nonnull__ (2)));
 _Mdouble_END_NAMESPACE
 
 #ifdef __USE_GNU

Modified: fsf/trunk/libc/math/e_acoshl.c
==============================================================================
--- fsf/trunk/libc/math/e_acoshl.c (original)
+++ fsf/trunk/libc/math/e_acoshl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_acoshl, __acoshl_finite)
 
 stub_warning (acoshl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_acosl.c
==============================================================================
--- fsf/trunk/libc/math/e_acosl.c (original)
+++ fsf/trunk/libc/math/e_acosl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_acosl, __acosl_finite)
 
 stub_warning (acosl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_asinl.c
==============================================================================
--- fsf/trunk/libc/math/e_asinl.c (original)
+++ fsf/trunk/libc/math/e_asinl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_asinl, __asinl_finite)
 
 stub_warning (asinl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_atan2l.c
==============================================================================
--- fsf/trunk/libc/math/e_atan2l.c (original)
+++ fsf/trunk/libc/math/e_atan2l.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_atan2l, __atan2l_finite)
 
 stub_warning (atan2l)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_atanhl.c
==============================================================================
--- fsf/trunk/libc/math/e_atanhl.c (original)
+++ fsf/trunk/libc/math/e_atanhl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_atanhl, __atanhl_finite)
 
 stub_warning (__ieee754_atanhl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_coshl.c
==============================================================================
--- fsf/trunk/libc/math/e_coshl.c (original)
+++ fsf/trunk/libc/math/e_coshl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_coshl, __coshl_finite)
 
 stub_warning (__ieee754_coshl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_exp10.c
==============================================================================
--- fsf/trunk/libc/math/e_exp10.c (original)
+++ fsf/trunk/libc/math/e_exp10.c Sun Oct 23 17:49:41 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -28,3 +28,4 @@
      replaced sometime (soon?).  */
   return __ieee754_exp (M_LN10 * arg);
 }
+strong_alias (__ieee754_exp10, __exp10_finite)

Modified: fsf/trunk/libc/math/e_exp10f.c
==============================================================================
--- fsf/trunk/libc/math/e_exp10f.c (original)
+++ fsf/trunk/libc/math/e_exp10f.c Sun Oct 23 17:49:41 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -28,3 +28,4 @@
      replaced sometime (soon?).  */
   return __ieee754_expf (M_LN10 * arg);
 }
+strong_alias (__ieee754_exp10f, __exp10f_finite)

Modified: fsf/trunk/libc/math/e_exp10l.c
==============================================================================
--- fsf/trunk/libc/math/e_exp10l.c (original)
+++ fsf/trunk/libc/math/e_exp10l.c Sun Oct 23 17:49:41 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1998.
 
@@ -28,3 +28,4 @@
      replaced sometime (soon?).  */
   return __ieee754_expl (M_LN10l * arg);
 }
+strong_alias (__ieee754_exp10l, __exp10l_finite)

Modified: fsf/trunk/libc/math/e_exp2l.c
==============================================================================
--- fsf/trunk/libc/math/e_exp2l.c (original)
+++ fsf/trunk/libc/math/e_exp2l.c Sun Oct 23 17:49:41 2011
@@ -8,3 +8,4 @@
      replaced sometime (soon?).  */
   return __ieee754_expl (M_LN2l * x);
 }
+strong_alias (__ieee754_exp2l, __exp2l_finite)

Modified: fsf/trunk/libc/math/e_expl.c
==============================================================================
--- fsf/trunk/libc/math/e_expl.c (original)
+++ fsf/trunk/libc/math/e_expl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_expl, __expl_finite)
 
 stub_warning (expl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_fmodl.c
==============================================================================
--- fsf/trunk/libc/math/e_fmodl.c (original)
+++ fsf/trunk/libc/math/e_fmodl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_fmodl, __fmodl_finite)
 
 stub_warning (fmodl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_gammal_r.c
==============================================================================
--- fsf/trunk/libc/math/e_gammal_r.c (original)
+++ fsf/trunk/libc/math/e_gammal_r.c Sun Oct 23 17:49:41 2011
@@ -10,6 +10,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_gammal_r, __gammal_r_finite)
 
 stub_warning (__ieee754_gammal_r)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_hypotl.c
==============================================================================
--- fsf/trunk/libc/math/e_hypotl.c (original)
+++ fsf/trunk/libc/math/e_hypotl.c Sun Oct 23 17:49:41 2011
@@ -9,6 +9,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_hypotl, __hypotl_finite)
 
 stub_warning (__ieee754_hypotl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_j0l.c
==============================================================================
--- fsf/trunk/libc/math/e_j0l.c (original)
+++ fsf/trunk/libc/math/e_j0l.c Sun Oct 23 17:49:41 2011
@@ -10,6 +10,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_j0l, __j0l_finite)
 
 stub_warning (j0l)
 
@@ -20,6 +21,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_y0l, __y0l_finite)
 
 stub_warning (y0l)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_j1l.c
==============================================================================
--- fsf/trunk/libc/math/e_j1l.c (original)
+++ fsf/trunk/libc/math/e_j1l.c Sun Oct 23 17:49:41 2011
@@ -10,6 +10,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_j1l, __j1l_finite)
 
 stub_warning (j1l)
 
@@ -20,6 +21,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_y1l, __y1l_finite)
 
 stub_warning (y1l)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_jnl.c
==============================================================================
--- fsf/trunk/libc/math/e_jnl.c (original)
+++ fsf/trunk/libc/math/e_jnl.c Sun Oct 23 17:49:41 2011
@@ -10,6 +10,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_jnl, __jnl_finite)
 
 stub_warning (jnl)
 
@@ -20,6 +21,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_ynl, __ynl_finite)
 
 stub_warning (ynl)
 #include <stub-tag.h>

Modified: fsf/trunk/libc/math/e_lgammal_r.c
==============================================================================
--- fsf/trunk/libc/math/e_lgammal_r.c (original)
+++ fsf/trunk/libc/math/e_lgammal_r.c Sun Oct 23 17:49:41 2011
@@ -11,6 +11,7 @@
   __set_errno (ENOSYS);
   return 0.0;
 }
+strong_alias (__ieee754_lgammal_r, __lgammal_r_finite)
 
 stub_warning (lgammal)

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