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

[Commits] r24710 - in /fsf/trunk/libc: ./ malloc/ ports/ ports/sysdeps/unix/sysv/linux/alpha/bits/ string/ sysdeps/ieee754/dbl-64/ sys...



Author: eglibc
Date: Sat Dec  7 00:01:48 2013
New Revision: 24710

Log:
Import glibc-mainline for 2013-12-07

Added:
    fsf/trunk/libc/sysdeps/powerpc/power4/wordcopy.c
    fsf/trunk/libc/sysdeps/powerpc/power6/
    fsf/trunk/libc/sysdeps/powerpc/power6/wcschr.c
    fsf/trunk/libc/sysdeps/powerpc/power6/wcscpy.c
    fsf/trunk/libc/sysdeps/powerpc/power6/wcsrchr.c
    fsf/trunk/libc/sysdeps/powerpc/power6/wordcopy.c
    fsf/trunk/libc/sysdeps/powerpc/power7/
    fsf/trunk/libc/sysdeps/powerpc/power7/fpu/
    fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logb.c
    fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbf.c
    fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbl.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6x.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt-power5.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf-power5.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/Makefile
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/memset.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-power7.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power6.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5+/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5+/fpu/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5+/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5+/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/fpu/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/fpu/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6x/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6x/fpu/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6x/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6x/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/fpu/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power8/fpu/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power8/fpu/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power8/fpu/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power8/multiarch/
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power8/multiarch/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/addmul_1.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/lshift.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/mul_1.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power7/add_n.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power7/sub_n.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/submul_1.S
Removed:
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/wordcopy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/wcschr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/wcscpy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power6/wordcopy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/fpu/s_logbf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power7/fpu/s_logbl.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power4/wordcopy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/wordcopy.c
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/Implies
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power4/
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power5/
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power5+/
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power6x/
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power7/
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/power8/
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/malloc/malloc.c
    fsf/trunk/libc/ports/ChangeLog.alpha
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h
    fsf/trunk/libc/string/memchr.c
    fsf/trunk/libc/string/mempcpy.c
    fsf/trunk/libc/string/rawmemchr.c
    fsf/trunk/libc/string/strchrnul.c
    fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_finite.c
    fsf/trunk/libc/sysdeps/ieee754/flt-32/s_finitef.c
    fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_logbl.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/fpu/s_isnan.S
    fsf/trunk/libc/sysdeps/powerpc/powerpc32/power5/Implies
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/wcschr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/wcscpy.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power6/wcsrchr.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c
    fsf/trunk/libc/sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c
    fsf/trunk/libc/wcsmbs/wcscpy.c
    fsf/trunk/libc/wcsmbs/wcsrchr.c

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sat Dec  7 00:01:48 2013
@@ -1,3 +1,627 @@
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc64/power7/add_n.S: New file: optimized
+	__mpn_add_n for PowerPC64/POWER7.
+	* sysdeps/powerpc/powerpc64/power7/sub_n.S: New file: optimized
+	__mpn_sub_n for PowerPC64/POWER7.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc64/addmul_1.S: New file: optimized
+	__mpn_addmul_1 for PowerPC64.
+	* sysdeps/powerpc/powerpc64/submul_1.S: New file: optimized
+	__mpn_submul_1 for PowerPC64.
+	* sysdeps/powerpc/powerpc64/lshift.S: New file: optimized __mpn_lshift
+	for PowerPC64.
+	* sysdeps/powerpc/powerpc64/mul_1.S: New file: optimized __mpn_mul_1
+	for PowerPC64.
+
+2013-12-06  Fernando J. V. da Silva  <fernandojvdasilva@xxxxxxxxx>
+
+	[BZ #15089]
+	* malloc/malloc.c: Exit systrim() if pad is bigger than heap top size.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* NEWS: Mention ppc32/power4+ STT_GNU_IFUNC support.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power5+/fpu/multiarch/Implies: New file:
+	add multiarch folders.
+	* sysdeps/powerpc/powerpc32/power5+/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power5/fpu/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power5/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power6/fpu/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power6/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power6x/fpu/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power6x/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power7/fpu/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power7/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power8/fpu/multiarch/Implies: Likewise.
+	* sysdeps/powerpc/powerpc32/power8/multiarch/Implies: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power5+/Implies: Remove.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power5/Implies: Remove.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6/Implies: Remove.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power6x/Implies: Remove.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power7/Implies: Remove.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power8/Implies: Remove.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add
+	__ieee754_hypot and __ieee754_hypotf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c: New file:
+	multiarch __ieee754_hypot for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c: New file:
+	multiarch __ieee754_hypotf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/ieee754/ldbl-128ibm/s_logbl.c (__logbl): Define
+	long_double_symbol only if __logbl is defined.
+	* sysdeps/powerpc/powerpc32/power7/fpu/s_logb.c: Moved to ...
+	* sysdeps/powerpc/power7/fpu/s_logb.c: ... here.
+	* sysdeps/powerpc/powerpc32/power7/fpu/s_logbf.c: Move to ...
+	* sysdeps/powerpc/power7/fpu/s_logbf.c: ... here.
+	* sysdeps/powerpc/powerpc32/power7/fpu/s_logbl.c: Move to ...
+	* sysdeps/powerpc/power7/fpu/s_logbl.c: ... here.
+	* sysdeps/powerpc/powerpc64/power7/fpu/s_logb.c: Adjust to use new
+	path for implementation.
+	* sysdeps/powerpc/powerpc64/power7/fpu/s_logbf.c: Likewise.
+	* sysdeps/powerpc/powerpc64/power7/fpu/s_logbl.c: Likewise.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add logbf,
+	logb, and logbl multiarch implementations for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logb.c: New file:
+	multiarch logb for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbf.c: New file:
+	multiarch logbf for PowerPC32.
+	* sysdeps/powerpc/power4/fpu/multiarch/s_logbl-power7.c: New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_logbl.c: New file:
+	multiarch logbl implementation for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add modf
+	and modff multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-power5+.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf-ppc32.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modf.c: New file:
+	multiarch modf for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-power5+.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff-ppc32.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_modff.c: New file:
+	multiarch modff for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add lrint
+	and lrintf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-power6x.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint.c: New file:
+	multiarch lrint for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrintf.c: New
+	file: multiarch lrintf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add lround
+	and lroundf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-power6.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lround.c: New file:
+	multiarch lround for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lroundf.c: New
+	file: multiarch lroundf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add
+	copysign and copysignf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c: New
+	file: multiarch copysign for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c: New
+	file: multiarch copysignf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add trunc
+	and truncf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_trunc.c: New file:
+	multiarch trunc for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_truncf.c: New file:
+	multiarch truncf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add round
+	and roundf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_round.c: New file:
+	multiarch round for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_roundf.c: New file:
+	multiarch roundf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add floor
+	and floorf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floor.c: New file:
+	multiarch floor for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_floorf.c: New file:
+	multiarch floorf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add ceil
+	and ceilf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil.c: New file:
+	multiarch ceil for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf.c: New file:
+	multiarch ceilf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/ieee754/dbl-64/s_finite.c (__finite): Redefine it if FINITE
+	is defined.
+	* sysdeps/ieee754/flt-32/s_finitef.c (__finitef): Redefine it if
+	FINITEF is defined.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add finite
+	and finitef multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c: New file:
+	multiarch finite for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c: New
+	file: multiarch finitef for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add isinf
+	and isinff multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c: New file:
+	multiarch isinf for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c: New file:
+	multiarch isinff for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/fpu/s_isnan.S (__isnan): Only implement
+	alias when __isnan is defined.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add isnan
+	and isnanf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c: New file:
+	multiarch isnan for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power7.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c: New file:
+	multiarch isnanf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add sqrt
+	and sqrtf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt-power5.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrt.c: New file:
+	multiarch sqrt for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf-power5.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/w_sqrtf.c: New file:
+	multiarch sqrtf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: Add llround
+	and llroundf multiarch implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power5+.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-power6.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llround.c: New
+	file: multiarch llround for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llroundf.c: New
+	file: multiarch llroundf for PowerPC32.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile: New file:
+	multiarch PowerPC32 fpu implementations.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint.c: New file:
+	multiarch llrint for PowerPC32.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf.c: New
+	file.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/Implies: Remove.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power6.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wordcopy.c: New file:
+	multiarch wordcopy for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added wcscpy
+	wordcopy objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+	* sysdeps/powerpc/powerpc32/power4/wordcopy.c: Move ...
+	* sysdeps/powerpc/power4/wordcopy.c: ... to here.
+	* sysdeps/powerpc/powerpc32/power6/wordcopy.c: Move ...
+	* sysdeps/powerpc/power6/wordcopy.c: ... to here.
+	* sysdeps/powerpc/powerpc64/power6/wordcopy.c: Remove uneeded file.
+	* sysdeps/powerpc/powerpc64/power4/wordcopy.c: Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* wcsmbs/wcscpy.c (wcscpy): Using macro to redefine symbol name
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: New file:
+	multiarch wcscpy for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added wcscpy
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+	* sysdeps/powerpc/powerpc32/power6/wcsrchr.c: Move ...
+	* sysdeps/powerpc/power6/wcsrchr.c: ... to here.
+	* sysdeps/powerpc/powerpc64/power6/wcscpy.c: Adjust to use
+	sysdeps/powerpc/power6/wcscpy.c.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* wcsmbs/wcsrchr.c (wcsrchr): Using macro to redefine symbol name
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: New file:
+	multiarch wcsrchr for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added wcschr
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+	* sysdeps/powerpc/powerpc32/power6/wcsrchr.c: Move ...
+	* sysdeps/powerpc/power6/wcsrchr.c: ... to here.
+	* sysdeps/powerpc/powerpc64/power6/wcsrchr.c: Adjust to use
+	sysdeps/powerpc/power6/wcsrchr.c.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c: New file:
+	multiarch wcschr for PPc32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added wcschr
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+	* sysdeps/powerpc/powerpc32/power6/wcschr.c: Move ...
+	* sysdeps/powerpc/power6/wcschr.c: ... to here.
+	* sysdeps/powerpc/powerpc64/power6/wcschr.c: Adjust to use
+	sysdeps/powerpc/power6/wcschr.c.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strchr.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strchr-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strchr-ppc32.S: New file.
+	* sysdeps/powerpc/powerpc/powerpc32/power4/multiarch/strchr.c: New
+	file: multiarch strchr for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added strchr
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* string/strchrnul.c (__strchrnul): Using macro to redefine symbol
+	name.
+	* sysdeps/powerpc/powerpc32/power4//multiarch/strchrnul-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strchrnul.c: New file:
+	multiarch strchrnul for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added strchrnul
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase.c: New file:
+	multiarch strncasecmp for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l-power7.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncase_l.c: New file:
+	multiarch strncasecmp_l for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added
+	strncasecmp multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp.c: New file:
+	multiarch strncasecmp for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l-power7.S:
+	New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strcasecmp_l.c: New file:
+	multiarch strcasecmp_l for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added strcasecmp
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strncmp.c: New file:
+	multiarch strncmp for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added strncmp
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rtld-strnlen.c: New file.
+	* sysdeps/powerpc/powerpc32//power4/multiarch/strnlen-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen-ppc32.c: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strnlen.c: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added strnlen
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/strlen.c: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added strlen
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rawmemchr.c: New file:
+	multiarch rawmemchr for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added rawmemchr
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memrchr.c: New
+	file: memrchr multiarch for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Added memrchr
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* string/memchr.c (__memchr): Using macro to redefine symbol name.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memchr-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memchr-ppc32.c: New File.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memchr.c: New file:
+	multiarch memchr for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Add memchr
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* string/mempcpy.c (__mempcpy): Using macro to redefine symbol name.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy-ppc32.c: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c: New
+	file: multiarch mempcpy for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Add mempcpy
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power6.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/bzero-power7.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: New file:
+	multiarch bzero for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memset-power6.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memset-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memset-ppc32.S: New file.
+	* sysdeps/powerpc/powerpc/powerpc32/power4/multiarch/memset.c: New
+	file: multiarch memset for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memset.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Add bzero and
+	memset multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp-ppc32.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcmp.c: multiarch
+	memcmp for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/rtld-memcmp.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Add memcmp
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-a2.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-cell.S: New file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power6.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-power7.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy-ppc32.S: New
+	file.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/memcpy.c: New file:
+	multiarch memcpy for PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: Add memcpy
+	multiarch objects.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c
+	(__libc_ifunc_impl_list): Likewise.
+
+2013-12-06  Adhemerval Zanella  <azanella@xxxxxxxxxxxxxxxxxx>
+
+	* sysdeps/powerpc/powerpc32/power4/multiarch/Makefile: New file to
+	support multiarch for POWER/PPC32.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c:
+	Likewise.
+	* sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/power4/Implies: Remove
+	Implies file to make multiarch folder appers before the fpu and
+	default folder for power4 configuration.
+
 2013-12-06  Siddhesh Poyarekar  <siddhesh@xxxxxxxxxx>
 
 	* scripts/bench.pl: Append volatile keyword to type.

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sat Dec  7 00:01:48 2013
@@ -12,16 +12,16 @@
   156, 387, 431, 832, 926, 2801, 4772, 6786, 6787, 6807, 6810, 7003, 9954,
   10253, 10278, 11087, 11157, 11214, 12486, 13028, 13982, 13985, 14029,
   14032, 14143, 14155, 14547, 14699, 14752, 14876, 14910, 15004, 15048,
-  15218, 15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427, 15483,
-  15522, 15531, 15532, 15601, 15608, 15609, 15610, 15632, 15640, 15670,
-  15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749, 15754,
-  15760, 15763, 15764, 15797, 15799, 15825, 15844, 15847, 15849, 15855,
-  15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893, 15895,
-  15897, 15901, 15905, 15909, 15915, 15917, 15919, 15921, 15923, 15939,
-  15941, 15948, 15963, 15966, 15985, 15988, 15997, 16032, 16034, 16036,
-  16037, 16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103,
-  16112, 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195,
-  16214, 16245, 16271, 16274, 16283, 16289.
+  15089, 15218, 15268, 15277, 15308, 15362, 15374, 15400, 15425, 15427,
+  15483, 15522, 15531, 15532, 15601, 15608, 15609, 15610, 15632, 15640,
+  15670, 15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749,
+  15754, 15760, 15763, 15764, 15797, 15799, 15825, 15844, 15847, 15849,
+  15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893,
+  15895, 15897, 15901, 15905, 15909, 15915, 15917, 15919, 15921, 15923,
+  15939, 15941, 15948, 15963, 15966, 15985, 15988, 15997, 16032, 16034,
+  16036, 16037, 16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078,
+  16103, 16112, 16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172,
+  16195, 16214, 16245, 16271, 16274, 16283, 16289.
 
 * The public headers no longer use __unused nor __block.  This change is to
   support compiling programs that are derived from BSD sources and use
@@ -97,6 +97,8 @@
 * Support for powerpc64le has been added.
 
 * The soft-float powerpc port now supports e500 processors.
+
+* Support for STT_GNU_IFUNC symbols added for ppc32/power4+.
 
 Version 2.18
 

Modified: fsf/trunk/libc/malloc/malloc.c
==============================================================================
--- fsf/trunk/libc/malloc/malloc.c (original)
+++ fsf/trunk/libc/malloc/malloc.c Sat Dec  7 00:01:48 2013
@@ -2709,52 +2709,54 @@
   char* current_brk;     /* address returned by pre-check sbrk call */
   char* new_brk;         /* address returned by post-check sbrk call */
   size_t pagesz;
+  long  top_area;
 
   pagesz = GLRO(dl_pagesize);
   top_size = chunksize(av->top);
 
+  top_area = top_size - MINSIZE - 1;
+  if (top_area <= pad)
+    return 0;
+
   /* Release in pagesize units, keeping at least one page */
-  extra = (top_size - pad - MINSIZE - 1) & ~(pagesz - 1);
-
-  if (extra > 0) {
+  extra = (top_area - pad) & ~(pagesz - 1);
+
+  /*
+    Only proceed if end of memory is where we last set it.
+    This avoids problems if there were foreign sbrk calls.
+  */
+  current_brk = (char*)(MORECORE(0));
+  if (current_brk == (char*)(av->top) + top_size) {
 
     /*
-      Only proceed if end of memory is where we last set it.
-      This avoids problems if there were foreign sbrk calls.
+      Attempt to release memory. We ignore MORECORE return value,
+      and instead call again to find out where new end of memory is.
+      This avoids problems if first call releases less than we asked,
+      of if failure somehow altered brk value. (We could still
+      encounter problems if it altered brk in some very bad way,
+      but the only thing we can do is adjust anyway, which will cause
+      some downstream failure.)
     */
-    current_brk = (char*)(MORECORE(0));
-    if (current_brk == (char*)(av->top) + top_size) {
-
-      /*
-	Attempt to release memory. We ignore MORECORE return value,
-	and instead call again to find out where new end of memory is.
-	This avoids problems if first call releases less than we asked,
-	of if failure somehow altered brk value. (We could still
-	encounter problems if it altered brk in some very bad way,
-	but the only thing we can do is adjust anyway, which will cause
-	some downstream failure.)
-      */
-
-      MORECORE(-extra);
-      /* Call the `morecore' hook if necessary.  */
-      void (*hook) (void) = force_reg (__after_morecore_hook);
-      if (__builtin_expect (hook != NULL, 0))
-	(*hook) ();
-      new_brk = (char*)(MORECORE(0));
-
-      LIBC_PROBE (memory_sbrk_less, 2, new_brk, extra);
-
-      if (new_brk != (char*)MORECORE_FAILURE) {
-	released = (long)(current_brk - new_brk);
-
-	if (released != 0) {
-	  /* Success. Adjust top. */
-	  av->system_mem -= released;
-	  set_head(av->top, (top_size - released) | PREV_INUSE);
-	  check_malloc_state(av);
-	  return 1;
-	}
-      }
+
+    MORECORE(-extra);
+    /* Call the `morecore' hook if necessary.  */
+    void (*hook) (void) = force_reg (__after_morecore_hook);
+    if (__builtin_expect (hook != NULL, 0))
+      (*hook) ();
+    new_brk = (char*)(MORECORE(0));
+
+    LIBC_PROBE (memory_sbrk_less, 2, new_brk, extra);
+
+    if (new_brk != (char*)MORECORE_FAILURE) {
+      released = (long)(current_brk - new_brk);
+
+      if (released != 0) {
+	/* Success. Adjust top. */
+	av->system_mem -= released;
+	set_head(av->top, (top_size - released) | PREV_INUSE);
+	check_malloc_state(av);
+	return 1;
+       }
     }
   }
   return 0;

Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Sat Dec  7 00:01:48 2013
@@ -1,3 +1,8 @@
+2013-12-07  Richard Henderson <rth@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/alpha/bits/mman.h: Use <bits/mman-linux.h>,
+	dropping common values and overriding different values.
+
 2013-11-28  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* sysdeps/alpha/fpu/fegetround.c (fegetround): Use

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/bits/mman.h Sat Dec  7 00:01:48 2013
@@ -23,46 +23,7 @@
 /* The following definitions basically come from the kernel headers.
    But the kernel header is not namespace clean.  */
 
-
-/* Protections are chosen from these bits, OR'd together.  The
-   implementation does not necessarily support PROT_EXEC or PROT_WRITE
-   without PROT_READ.  The only guarantees are that no writing will be
-   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
-
-#define PROT_READ	  0x1		/* Page can be read.  */
-#define PROT_WRITE	  0x2		/* Page can be written.  */
-#define PROT_EXEC	  0x4		/* Page can be executed.  */
-#define PROT_NONE	  0x0		/* Page can not be accessed.  */
-#define PROT_GROWSDOWN	  0x01000000	/* Extend change to start of
-					   growsdown vma (mprotect only).  */
-#define PROT_GROWSUP	  0x02000000	/* Extend change to start of
-					   growsup vma (mprotect only).  */
-
-/* Sharing types (must choose one and only one of these).  */
-#define MAP_SHARED	  0x01		/* Share changes.  */
-#define MAP_PRIVATE	  0x02		/* Changes are private.  */
-#ifdef __USE_MISC
-# define MAP_TYPE	  0x0f		/* Mask for type of mapping.  */
-#endif
-
-/* Other flags.  */
-#define MAP_FIXED	  0x100		/* Interpret addr exactly.  */
-#ifdef __USE_MISC
-# define MAP_FILE	  0
-# define MAP_ANONYMOUS	  0x10		/* Don't use a file.  */
-# define MAP_ANON	  MAP_ANONYMOUS
-/* When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.  */
-# define MAP_HUGE_SHIFT	  26
-# define MAP_HUGE_MASK	  0x3f
-#endif
-
-/* Not used by Linux, but here to make sure we don't clash with
-   OSF/1 defines.  */
-#if 0 && defined __USE_BSD
-# define MAP_HASSEMAPHORE 0x0200
-# define MAP_INHERIT	  0x0400
-# define MAP_UNALIGNED	  0x0800
-#endif
+#define __MAP_ANONYMOUS	  0x10		/* Don't use a file.  */
 
 /* These are Linux-specific.  */
 #ifdef __USE_MISC
@@ -77,53 +38,28 @@
 # define MAP_HUGETLB	  0x100000	/* Create huge page mapping.  */
 #endif
 
-/* Flags to `msync'.  */
-#define MS_ASYNC	  1		/* Sync memory asynchronously.  */
-#define MS_SYNC		  2		/* Synchronous memory sync.  */
-#define MS_INVALIDATE	  4		/* Invalidate the caches.  */
+/* Flags for `mlockall'.  */
+#define MCL_CURRENT	  8192
+#define MCL_FUTURE	  16384
 
-/* Flags for `mlockall'.  */
-#define MCL_CURRENT	  8192		/* Lock all currently mapped pages.  */
-#define MCL_FUTURE	  16384		/* Lock all additions to address
-					   space.  */
+#include <bits/mman-linux.h>
 
-/* Flags for `mremap'.  */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE	1
-# define MREMAP_FIXED	2
+/* Values that differ from standard <mman-linux.h>.  For the most part newer
+   values are shared, but older values are skewed.  */
+
+#undef  MAP_FIXED
+#define MAP_FIXED	  0x100
+
+#undef  MS_SYNC
+#define MS_SYNC		  2
+#undef  MS_INVALIDATE
+#define MS_INVALIDATE	  4
+
+#ifdef __USE_BSD
+# undef  MADV_DONTNEED
+# define MADV_DONTNEED    6
 #endif
-
-/* Advice to `madvise'.  */
-#ifdef __USE_BSD
-# define MADV_NORMAL      0  /* No further special treatment.  */
-# define MADV_RANDOM      1  /* Expect random page references.  */
-# define MADV_SEQUENTIAL  2  /* Expect sequential page references.  */
-# define MADV_WILLNEED    3  /* Will need these pages.  */
-# define MADV_DONTNEED    6  /* Don't need these pages.  */
-# define MADV_REMOVE      9  /* Remove these pages and resources.  */
-# define MADV_DONTFORK    10 /* Do not inherit across fork.  */
-# define MADV_DOFORK      11 /* Do inherit across fork.  */
-# define MADV_MERGEABLE   12 /* KSM may merge identical pages.  */
-# define MADV_UNMERGEABLE 13 /* KSM may not merge identical pages.  */
-# define MADV_HUGEPAGE    14 /* Worth backing with hugepages.  */
-# define MADV_NOHUGEPAGE  15 /* Not worth backing with hugepages.  */
-# define MADV_DONTDUMP    16 /* Exclude from the core dump.  */
-# define MADV_DODUMP      17 /* Clear MADV_DONTDUMP.  */
-# define MADV_HWPOISON   100 /* Poison a page for testing.  */
+#ifdef __USE_XOPEN2K
+# undef  POSIX_MADV_DONTNEED
+# define POSIX_MADV_DONTNEED	6
 #endif
-
-/* The POSIX people had to invent similar names for the same things.  */
-#ifdef __USE_XOPEN2K
-# define POSIX_MADV_NORMAL	0 /* No further special treatment.  */
-# define POSIX_MADV_RANDOM	1 /* Expect random page references.  */
-# define POSIX_MADV_SEQUENTIAL	2 /* Expect sequential page references.  */
-# define POSIX_MADV_WILLNEED	3 /* Will need these pages.  */
-# define POSIX_MADV_DONTNEED	6 /* Don't need these pages.  */
-#endif
-
-/* Not used by Linux, but here to make sure we don't clash with
-   OSF/1 defines.  */
-#if 0 && defined __USE_BSD
-# define MADV_DONTNEED_COMPAT 4	/* Old version?  */
-# define MADV_SPACEAVAIL 5	/* Ensure resources are available.  */
-#endif

Modified: fsf/trunk/libc/string/memchr.c
==============================================================================
--- fsf/trunk/libc/string/memchr.c (original)
+++ fsf/trunk/libc/string/memchr.c Sat Dec  7 00:01:48 2013
@@ -51,9 +51,13 @@
 #undef memchr
 #undef __memchr
 
+#ifndef MEMCHR
+# define MEMCHR __memchr
+#endif
+
 /* Search no more than N bytes of S for C.  */
 __ptr_t
-__memchr (s, c_in, n)
+MEMCHR (s, c_in, n)
      const __ptr_t s;
      int c_in;
      size_t n;

Modified: fsf/trunk/libc/string/mempcpy.c
==============================================================================
--- fsf/trunk/libc/string/mempcpy.c (original)
+++ fsf/trunk/libc/string/mempcpy.c Sat Dec  7 00:01:48 2013
@@ -24,8 +24,12 @@
 #undef mempcpy
 #undef __mempcpy
 
+#ifndef MEMPCPY
+# define MEMPCPY __mempcpy
+#endif
+
 void *
-__mempcpy (void *dest, const void *src, size_t len)
+MEMPCPY (void *dest, const void *src, size_t len)
 {
   return memcpy (dest, src, len) + len;
 }

Modified: fsf/trunk/libc/string/rawmemchr.c
==============================================================================
--- fsf/trunk/libc/string/rawmemchr.c (original)
+++ fsf/trunk/libc/string/rawmemchr.c Sat Dec  7 00:01:48 2013
@@ -47,10 +47,13 @@
 
 #undef memchr
 
+#ifndef RAWMEMCHR
+# define RAWMEMCHR __rawmemchr
+#endif
 
 /* Find the first occurrence of C in S.  */
 __ptr_t
-__rawmemchr (s, c_in)
+RAWMEMCHR (s, c_in)
      const __ptr_t s;
      int c_in;
 {

Modified: fsf/trunk/libc/string/strchrnul.c
==============================================================================
--- fsf/trunk/libc/string/strchrnul.c (original)
+++ fsf/trunk/libc/string/strchrnul.c Sat Dec  7 00:01:48 2013
@@ -27,9 +27,13 @@
 #undef __strchrnul
 #undef strchrnul
 
+#ifndef STRCHRNUL
+# define STRCHRNUL __strchrnul
+#endif
+
 /* Find the first occurrence of C in S or the final NUL byte.  */
 char *
-__strchrnul (s, c_in)
+STRCHRNUL (s, c_in)
      const char *s;
      int c_in;
 {

Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_finite.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_finite.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/s_finite.c Sat Dec  7 00:01:48 2013
@@ -23,8 +23,12 @@
 #include <math_private.h>
 
 #undef __finite
-int
-__finite (double x)
+
+#ifndef FINITE
+# define FINITE __finite
+#endif
+
+int FINITE(double x)
 {
   int32_t hx;
   GET_HIGH_WORD (hx, x);

Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/s_finitef.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/s_finitef.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/s_finitef.c Sat Dec  7 00:01:48 2013
@@ -26,7 +26,12 @@
 #include <math_private.h>
 
 #undef __finitef
-int __finitef(float x)
+
+#ifndef FINITEF
+# define FINITEF __finitef
+#endif
+
+int FINITEF(float x)
 {
 	int32_t ix;
 	GET_FLOAT_WORD(ix,x);

Modified: fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_logbl.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_logbl.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/ldbl-128ibm/s_logbl.c Sat Dec  7 00:01:48 2013
@@ -44,5 +44,6 @@
     }
   return (long double) (rhx - 1023);
 }
-
+#ifndef __logbl
 long_double_symbol (libm, __logbl, logbl);
+#endif

Added: fsf/trunk/libc/sysdeps/powerpc/power4/wordcopy.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power4/wordcopy.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power4/wordcopy.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,212 @@
+/* _memcopy.c -- subroutines for memory copy functions.
+   Copyright (C) 1991-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Torbjorn Granlund (tege@xxxxxxx).
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* BE VERY CAREFUL IF YOU CHANGE THIS CODE...!  */
+
+#include <stddef.h>
+#include <memcopy.h>
+
+/* _wordcopy_fwd_aligned -- Copy block beginning at SRCP to
+   block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
+   Both SRCP and DSTP should be aligned for memory operations on `op_t's.  */
+
+#ifndef WORDCOPY_FWD_ALIGNED
+# define WORDCOPY_FWD_ALIGNED _wordcopy_fwd_aligned
+#endif
+
+void
+WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1;
+
+  if (len & 1)
+  {
+    ((op_t *) dstp)[0] = ((op_t *) srcp)[0];
+
+    if (len == 1)
+      return;
+    srcp += OPSIZ;
+    dstp += OPSIZ;
+    len -= 1;
+  }
+
+  do
+    {
+      a0 = ((op_t *) srcp)[0];
+      a1 = ((op_t *) srcp)[1];
+      ((op_t *) dstp)[0] = a0;
+      ((op_t *) dstp)[1] = a1;
+
+      srcp += 2 * OPSIZ;
+      dstp += 2 * OPSIZ;
+      len -= 2;
+    }
+  while (len != 0);
+}
+
+/* _wordcopy_fwd_dest_aligned -- Copy block beginning at SRCP to
+   block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
+   DSTP should be aligned for memory operations on `op_t's, but SRCP must
+   *not* be aligned.  */
+
+#ifndef WORDCOPY_FWD_DEST_ALIGNED
+# define WORDCOPY_FWD_DEST_ALIGNED _wordcopy_fwd_dest_aligned
+#endif
+
+void
+WORDCOPY_FWD_DEST_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1, a2;
+  int sh_1, sh_2;
+
+  /* Calculate how to shift a word read at the memory operation
+     aligned srcp to make it aligned for copy.  */
+
+  sh_1 = 8 * (srcp % OPSIZ);
+  sh_2 = 8 * OPSIZ - sh_1;
+
+  /* Make SRCP aligned by rounding it down to the beginning of the `op_t'
+     it points in the middle of.  */
+  srcp &= -OPSIZ;
+  a0 = ((op_t *) srcp)[0];
+
+  if (len & 1)
+  {
+    a1 = ((op_t *) srcp)[1];
+    ((op_t *) dstp)[0] = MERGE (a0, sh_1, a1, sh_2);
+
+    if (len == 1)
+      return;
+
+    a0 = a1;
+    srcp += OPSIZ;
+    dstp += OPSIZ;
+    len -= 1;
+  }
+
+  do
+    {
+      a1 = ((op_t *) srcp)[1];
+      a2 = ((op_t *) srcp)[2];
+      ((op_t *) dstp)[0] = MERGE (a0, sh_1, a1, sh_2);
+      ((op_t *) dstp)[1] = MERGE (a1, sh_1, a2, sh_2);
+      a0 = a2;
+
+      srcp += 2 * OPSIZ;
+      dstp += 2 * OPSIZ;
+      len -= 2;
+    }
+  while (len != 0);
+}
+
+/* _wordcopy_bwd_aligned -- Copy block finishing right before
+   SRCP to block finishing right before DSTP with LEN `op_t' words
+   (not LEN bytes!).  Both SRCP and DSTP should be aligned for memory
+   operations on `op_t's.  */
+
+#ifndef WORDCOPY_BWD_ALIGNED
+# define WORDCOPY_BWD_ALIGNED _wordcopy_bwd_aligned
+#endif
+
+void
+WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1;
+
+  if (len & 1)
+  {
+    srcp -= OPSIZ;
+    dstp -= OPSIZ;
+    ((op_t *) dstp)[0] = ((op_t *) srcp)[0];
+
+    if (len == 1)
+      return;
+    len -= 1;
+  }
+
+  do
+    {
+      srcp -= 2 * OPSIZ;
+      dstp -= 2 * OPSIZ;
+
+      a1 = ((op_t *) srcp)[1];
+      a0 = ((op_t *) srcp)[0];
+      ((op_t *) dstp)[1] = a1;
+      ((op_t *) dstp)[0] = a0;
+
+      len -= 2;
+    }
+  while (len != 0);
+}
+
+/* _wordcopy_bwd_dest_aligned -- Copy block finishing right
+   before SRCP to block finishing right before DSTP with LEN `op_t'
+   words (not LEN bytes!).  DSTP should be aligned for memory
+   operations on `op_t', but SRCP must *not* be aligned.  */
+
+#ifndef WORDCOPY_BWD_DEST_ALIGNED
+# define WORDCOPY_BWD_DEST_ALIGNED _wordcopy_bwd_dest_aligned
+#endif
+
+void
+WORDCOPY_BWD_DEST_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1, a2;
+  int sh_1, sh_2;
+
+  /* Calculate how to shift a word read at the memory operation
+     aligned srcp to make it aligned for copy.  */
+
+  sh_1 = 8 * (srcp % OPSIZ);
+  sh_2 = 8 * OPSIZ - sh_1;
+
+  /* Make srcp aligned by rounding it down to the beginning of the op_t
+     it points in the middle of.  */
+  srcp &= -OPSIZ;
+  a2 = ((op_t *) srcp)[0];
+
+  if (len & 1)
+  {
+    srcp -= OPSIZ;
+    dstp -= OPSIZ;
+    a1 = ((op_t *) srcp)[0];
+    ((op_t *) dstp)[0] = MERGE (a1, sh_1, a2, sh_2);
+
+    if (len == 1)
+      return;
+
+    a2 = a1;
+    len -= 1;
+  }
+
+  do
+    {
+      srcp -= 2 * OPSIZ;
+      dstp -= 2 * OPSIZ;
+
+      a1 = ((op_t *) srcp)[1];
+      a0 = ((op_t *) srcp)[0];
+      ((op_t *) dstp)[1] = MERGE (a1, sh_1, a2, sh_2);
+      ((op_t *) dstp)[0] = MERGE (a0, sh_1, a1, sh_2);
+      a2 = a0;
+
+      len -= 2;
+    }
+  while (len != 0);
+}

Added: fsf/trunk/libc/sysdeps/powerpc/power6/wcschr.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power6/wcschr.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power6/wcschr.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,89 @@
+/* wcschr.c - Wide Character Search for POWER6+.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   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; see the file COPYING.LIB.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#include <wchar.h>
+
+#ifndef WCSCHR
+# define WCSCHR wcschr
+#endif
+
+/* Find the first occurrence of WC in WCS.  */
+wchar_t *
+WCSCHR (const wchar_t *wcs, const wchar_t wc)
+{
+  const wchar_t *wcs2 = wcs + 1;
+
+  if (*wcs == wc)
+    return (wchar_t *) wcs;
+  if (*wcs == L'\0')
+    return NULL;
+
+  do
+    {
+      wcs += 2;
+
+      if (*wcs2 == wc)
+        return (wchar_t *) wcs2;
+      if (*wcs2 == L'\0')
+        return NULL;
+       wcs2 += 2;
+
+      if (*wcs == wc)
+        return (wchar_t *) wcs;
+      if (*wcs == L'\0')
+        return NULL;
+      wcs += 2;
+
+      if (*wcs2 == wc)
+        return (wchar_t *) wcs2;
+      if (*wcs2 == L'\0')
+        return NULL;
+      wcs2 += 2;
+
+      if (*wcs == wc)
+        return (wchar_t *) wcs;
+      if (*wcs == L'\0')
+        return NULL;
+      wcs += 2;
+
+      if (*wcs2 == wc)
+        return (wchar_t *) wcs2;
+      if (*wcs2 == L'\0')
+        return NULL;
+      wcs2 += 2;
+
+      if (*wcs == wc)
+        return (wchar_t *) wcs;
+      if (*wcs == L'\0')
+        return NULL;
+      wcs += 2;
+
+      if (*wcs2 == wc)
+        return (wchar_t *) wcs2;
+      if (*wcs2 == L'\0')
+        return NULL;
+      wcs2 += 2;
+
+      if (*wcs == wc)
+        return (wchar_t *) wcs;
+    }
+  while (*wcs != L'\0');
+
+  return NULL;
+}
+libc_hidden_def (wcschr)

Added: fsf/trunk/libc/sysdeps/powerpc/power6/wcscpy.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power6/wcscpy.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power6/wcscpy.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,105 @@
+/* wcscpy.c - Wide Character Copy for POWER6+.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   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; see the file COPYING.LIB.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#include <stddef.h>
+#include <wchar.h>
+
+#ifndef WCSCPY
+# define WCSCPY wcscpy
+#endif
+
+/* Copy SRC to DEST.  */
+wchar_t *
+WCSCPY (wchar_t *dest, const wchar_t *src)
+{
+  wint_t c,d;
+  wchar_t *wcp, *wcp2;
+
+  if (__alignof__ (wchar_t) >= sizeof (wchar_t))
+    {
+      const ptrdiff_t off = dest - src;
+
+      wcp = (wchar_t *) src;
+      wcp2 = wcp + 1 ;
+
+      do
+        {
+          d = *wcp;
+          wcp[off] = d;
+          if (d == L'\0')
+            return dest;
+          wcp += 2;
+
+          c = *wcp2;
+          wcp2[off] = c;
+          if (c == L'\0')
+            return dest;
+          wcp2 += 2;
+
+          d = *wcp;
+          wcp[off] = d;
+          if (d == L'\0')
+            return dest;
+          wcp += 2;
+
+          c = *wcp2;
+          wcp2[off] = c;
+          if (c == L'\0')
+            return dest;
+          wcp2 += 2;
+
+          d = *wcp;
+          wcp[off] = d;
+          if (d == L'\0')
+            return dest;
+          wcp += 2;
+
+          c = *wcp2;
+          wcp2[off] = c;
+          if (c == L'\0')
+            return dest;
+          wcp2 += 2;
+
+          d = *wcp;
+          wcp[off] = d;
+          if (d == L'\0')
+            return dest;
+          wcp += 2;
+
+          c = *wcp2;
+          wcp2[off] = c;
+          if (c == L'\0')
+            return dest;
+          wcp2 += 2;
+        }
+      while (c != L'\0');
+
+    }
+  else
+    {
+      wcp = dest;
+
+      do
+        {
+          c = *src++;
+          *wcp++ = c;
+        }
+      while (c != L'\0');
+    }
+  return dest;
+}

Added: fsf/trunk/libc/sysdeps/powerpc/power6/wcsrchr.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power6/wcsrchr.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power6/wcsrchr.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,89 @@
+/* wcsrchr.c - Wide Character Reverse Search for POWER6+.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   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; see the file COPYING.LIB.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#include <wchar.h>
+
+#ifndef WCSRCHR
+# define WCSRCHR wcsrchr
+#endif
+
+/* Find the last occurrence of WC in WCS.  */
+wchar_t *
+WCSRCHR (const wchar_t *wcs, const wchar_t wc)
+{
+  const wchar_t *wcs2 = wcs + 1;
+  const wchar_t *retval = NULL;
+
+  if (*wcs == wc)
+    retval = wcs;
+
+  if (*wcs == L'\0') return (wchar_t *) retval;
+
+  do
+    {
+    wcs+=2;
+
+    if (*wcs2 == wc)
+      retval = wcs2;
+    if (*wcs2 == L'\0')
+      return (wchar_t *) retval;
+    wcs2+=2;
+
+    if (*wcs == wc)
+      retval = wcs;
+    if (*wcs == L'\0')
+      return (wchar_t *) retval;
+    wcs+=2;
+
+    if (*wcs2 == wc)
+      retval = wcs2;
+    if (*wcs2 == L'\0')
+      return (wchar_t *) retval;
+    wcs2+=2;
+
+    if (*wcs == wc)
+      retval = wcs;
+    if (*wcs == L'\0')
+      return (wchar_t *) retval;
+    wcs+=2;
+
+    if (*wcs2 == wc)
+      retval = wcs2;
+    if (*wcs2 == L'\0')
+      return (wchar_t *) retval;
+    wcs2+=2;
+
+    if (*wcs == wc)
+      retval = wcs;
+    if (*wcs == L'\0')
+      return (wchar_t *) retval;
+    wcs+=2;
+
+    if (*wcs2 == wc)
+      retval = wcs2;
+    if (*wcs2 == L'\0')
+      return (wchar_t *) retval;
+    wcs2+=2;
+
+    if (*wcs == wc)
+      retval = wcs;
+    }
+  while (*wcs != L'\0');
+
+  return (wchar_t *) retval;
+}

Added: fsf/trunk/libc/sysdeps/powerpc/power6/wordcopy.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power6/wordcopy.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power6/wordcopy.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,221 @@
+/* _memcopy.c -- subroutines for memory copy functions.
+   Copyright (C) 1991-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Torbjorn Granlund (tege@xxxxxxx).
+   Updated for POWER6 by Steven Munroe (sjmunroe@xxxxxxxxxx).
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* BE VERY CAREFUL IF YOU CHANGE THIS CODE...!  */
+
+#include <stddef.h>
+#include <memcopy.h>
+
+/* _wordcopy_fwd_aligned -- Copy block beginning at SRCP to
+   block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
+   Both SRCP and DSTP should be aligned for memory operations on `op_t's.  */
+
+#ifndef WORDCOPY_FWD_ALIGNED
+# define WORDCOPY_FWD_ALIGNED _wordcopy_fwd_aligned
+#endif
+
+void
+WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1;
+
+  if (len & 1)
+  {
+    ((op_t *) dstp)[0] = ((op_t *) srcp)[0];
+
+    if (len == 1)
+      return;
+    srcp += OPSIZ;
+    dstp += OPSIZ;
+    len -= 1;
+  }
+
+  do
+    {
+      a0 = ((op_t *) srcp)[0];
+      a1 = ((op_t *) srcp)[1];
+      ((op_t *) dstp)[0] = a0;
+      ((op_t *) dstp)[1] = a1;
+
+      srcp += 2 * OPSIZ;
+      dstp += 2 * OPSIZ;
+      len -= 2;
+    }
+  while (len != 0);
+}
+
+/* _wordcopy_fwd_dest_aligned -- Copy block beginning at SRCP to
+   block beginning at DSTP with LEN `op_t' words (not LEN bytes!).
+   DSTP should be aligned for memory operations on `op_t's, but SRCP must
+   *not* be aligned.  */
+
+#define fwd_align_merge(align)                                         \
+  do                                                                   \
+    {                                                                  \
+      a1 = ((op_t *) srcp)[1];                                         \
+      a2 = ((op_t *) srcp)[2];                                         \
+      ((op_t *) dstp)[0] = MERGE (a0, align*8, a1, (__WORDSIZE-align*8)); \
+      ((op_t *) dstp)[1] = MERGE (a1, align*8, a2, (__WORDSIZE-align*8)); \
+      a0 = a2;                                                         \
+      srcp += 2 * OPSIZ;                                               \
+      dstp += 2 * OPSIZ;                                               \
+      len -= 2;                                                                \
+    }                                                                  \
+  while (len != 0)
+
+#ifndef WORDCOPY_FWD_DEST_ALIGNED
+# define WORDCOPY_FWD_DEST_ALIGNED _wordcopy_fwd_dest_aligned
+#endif
+
+void
+WORDCOPY_FWD_DEST_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1, a2;
+  int sh_1, sh_2;
+  int align;
+
+  /* Calculate how to shift a word read at the memory operation
+     aligned srcp to make it aligned for copy.  */
+
+  align = srcp % OPSIZ;
+  sh_1 = 8 * (srcp % OPSIZ);
+  sh_2 = 8 * OPSIZ - sh_1;
+
+  /* Make SRCP aligned by rounding it down to the beginning of the `op_t'
+     it points in the middle of.  */
+  srcp &= -OPSIZ;
+  a0 = ((op_t *) srcp)[0];
+
+  if (len & 1)
+  {
+    a1 = ((op_t *) srcp)[1];
+    ((op_t *) dstp)[0] = MERGE (a0, sh_1, a1, sh_2);
+
+    if (len == 1)
+      return;
+
+    a0 = a1;
+    srcp += OPSIZ;
+    dstp += OPSIZ;
+    len -= 1;
+  }
+
+  fwd_align_merge (align);
+
+}
+
+/* _wordcopy_bwd_aligned -- Copy block finishing right before
+   SRCP to block finishing right before DSTP with LEN `op_t' words
+   (not LEN bytes!).  Both SRCP and DSTP should be aligned for memory
+   operations on `op_t's.  */
+
+#ifndef WORDCOPY_BWD_ALIGNED
+# define WORDCOPY_BWD_ALIGNED _wordcopy_bwd_aligned
+#endif
+
+void
+WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1;
+
+  if (len & 1)
+  {
+    srcp -= OPSIZ;
+    dstp -= OPSIZ;
+    ((op_t *) dstp)[0] = ((op_t *) srcp)[0];
+
+    if (len == 1)
+      return;
+    len -= 1;
+  }
+
+  do
+    {
+      srcp -= 2 * OPSIZ;
+      dstp -= 2 * OPSIZ;
+
+      a1 = ((op_t *) srcp)[1];
+      a0 = ((op_t *) srcp)[0];
+      ((op_t *) dstp)[1] = a1;
+      ((op_t *) dstp)[0] = a0;
+
+      len -= 2;
+    }
+  while (len != 0);
+}
+
+#define bwd_align_merge(align)                                         \
+  do                                                                   \
+    {                                                                  \
+      srcp -= 2 * OPSIZ;                                               \
+      dstp -= 2 * OPSIZ;                                               \
+      a1 = ((op_t *) srcp)[1];                                         \
+      a0 = ((op_t *) srcp)[0];                                         \
+      ((op_t *) dstp)[1] = MERGE (a1, align*8, a2, (__WORDSIZE-align*8)); \
+      ((op_t *) dstp)[0] = MERGE (a0, align*8, a1, (__WORDSIZE-align*8)); \
+      a2 = a0;                                                         \
+      len -= 2;                                                                \
+    }                                                                  \
+  while (len != 0)
+
+/* _wordcopy_bwd_dest_aligned -- Copy block finishing right
+   before SRCP to block finishing right before DSTP with LEN `op_t'
+   words (not LEN bytes!).  DSTP should be aligned for memory
+   operations on `op_t', but SRCP must *not* be aligned.  */
+
+#ifndef WORDCOPY_BWD_DEST_ALIGNED
+# define WORDCOPY_BWD_DEST_ALIGNED _wordcopy_bwd_dest_aligned
+#endif
+
+void
+WORDCOPY_BWD_DEST_ALIGNED (long int dstp, long int srcp, size_t len)
+{
+  op_t a0, a1, a2;
+  int sh_1, sh_2;
+  int align;
+
+  /* Calculate how to shift a word read at the memory operation
+     aligned srcp to make it aligned for copy.  */
+
+  align = srcp % OPSIZ;
+  sh_1 = 8 * (srcp % OPSIZ);
+  sh_2 = 8 * OPSIZ - sh_1;
+
+  /* Make srcp aligned by rounding it down to the beginning of the op_t
+     it points in the middle of.  */
+  srcp &= -OPSIZ;
+  a2 = ((op_t *) srcp)[0];
+
+  if (len & 1)
+  {
+    srcp -= OPSIZ;
+    dstp -= OPSIZ;
+    a1 = ((op_t *) srcp)[0];
+    ((op_t *) dstp)[0] = MERGE (a1, sh_1, a2, sh_2);
+
+    if (len == 1)
+      return;
+
+    a2 = a1;
+    len -= 1;
+  }
+
+  bwd_align_merge (align);
+}

Added: fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logb.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logb.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logb.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,78 @@
+/* logb(). PowerPC/POWER7 version.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math_ldbl_opt.h>
+
+/* This implementation avoids FP to INT conversions by using VSX
+   bitwise instructions over FP values.  */
+
+static const double two1div52 = 2.220446049250313e-16;	/* 1/2**52  */
+static const double two10m1   = -1023.0;		/* 2**10 -1  */
+
+/* FP mask to extract the exponent.  */
+static const union {
+  unsigned long long mask;
+  double d;
+} mask = { 0x7ff0000000000000ULL };
+
+double
+__logb (double x)
+{
+  double ret;
+
+  if (__builtin_expect (x == 0.0, 0))
+    /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF].  */
+    return -1.0 / __builtin_fabs (x);
+
+  /* ret = x & 0x7ff0000000000000;  */
+  asm (
+    "xxland %x0,%x1,%x2\n"
+    "fcfid  %0,%0"
+    : "=f" (ret)
+    : "f" (x), "f" (mask.d));
+  /* ret = (ret >> 52) - 1023.0;  */
+  ret = (ret * two1div52) + two10m1;
+  if (__builtin_expect (ret > -two10m1, 0))
+    /* Multiplication is used to set logb (+-INF) = INF.  */
+    return (x * x);
+  else if (__builtin_expect (ret == two10m1, 0))
+    {
+      /* POSIX specifies that denormal numbers are treated as
+         though they were normalized.  */
+      int32_t lx, ix;
+      int ma;
+
+      EXTRACT_WORDS (ix, lx, x);
+      if (ix == 0)
+	ma = __builtin_clz (lx) + 32;
+      else
+	ma = __builtin_clz (ix);
+      return (double) (-1023 - (ma - 12));
+    }
+  /* Test to avoid logb_downward (0.0) == -0.0.  */
+  return ret == -0.0 ? 0.0 : ret;
+}
+weak_alias (__logb, logb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__logb, __logbl)
+weak_alias (__logb, logbl)
+#endif
+
+#if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
+compat_symbol (libm, logb, logbl, GLIBC_2_0);
+#endif

Added: fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbf.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbf.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,60 @@
+/* logbf(). PowerPC/POWER7 version.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "math_private.h"
+
+/* This implementation avoids FP to INT conversions by using VSX
+   bitwise instructions over FP values.  */
+
+static const double two1div52 = 2.220446049250313e-16;	/* 1/2**52  */
+static const double two10m1   = -1023.0;		/* -2**10 + 1  */
+static const double two7m1    = -127.0;			/* -2**7 + 1  */
+
+/* FP mask to extract the exponent.  */
+static const union {
+  unsigned long long mask;
+  double d;
+} mask = { 0x7ff0000000000000ULL };
+
+float
+__logbf (float x)
+{
+  /* VSX operation are all done internally as double.  */
+  double ret;
+
+  if (__builtin_expect (x == 0.0, 0))
+    /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF].  */
+    return -1.0 / __builtin_fabsf (x);
+
+  /* ret = x & 0x7f800000;  */
+  asm (
+    "xxland %x0,%x1,%x2\n"
+    "fcfid  %0,%0"
+    : "=f"(ret)
+    : "f" (x), "f" (mask.d));
+  /* ret = (ret >> 52) - 1023.0, since ret is double.  */
+  ret = (ret * two1div52) + two10m1;
+  if (__builtin_expect (ret > -two7m1, 0))
+    /* Multiplication is used to set logb (+-INF) = INF.  */
+    return (x * x);
+  /* Since operations are done with double we don't need
+     additional tests for subnormal numbers.
+     The test is to avoid logb_downward (0.0) == -0.0.  */
+  return ret == -0.0 ? 0.0 : ret;
+}
+weak_alias (__logbf, logbf)

Added: fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbl.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbl.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/power7/fpu/s_logbl.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,71 @@
+/* logbl(). PowerPC/POWER7 version.
+   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+/* This implementation avoids FP to INT conversions by using VSX
+   bitwise instructions over FP values.  */
+
+static const double two1div52 = 2.220446049250313e-16;	/* 1/2**52  */
+static const double two10m1   = -1023.0;		/* 2**10 -1  */
+
+/* FP mask to extract the exponent.  */
+static const union {
+  unsigned long long mask;
+  double d;
+} mask = { 0x7ff0000000000000ULL };
+
+long double
+__logbl (long double x)
+{
+  double xh;
+  double ret;
+
+  if (__builtin_expect (x == 0.0L, 0))
+    /* Raise FE_DIVBYZERO and return -HUGE_VAL[LF].  */
+    return -1.0L / __builtin_fabsl (x);
+
+  xh = ldbl_high (x);
+  /* ret = x & 0x7ff0000000000000;  */
+  asm (
+    "xxland %x0,%x1,%x2\n"
+    "fcfid  %0,%0"
+    : "=f" (ret)
+    : "f" (xh), "f" (mask.d));
+  /* ret = (ret >> 52) - 1023.0;  */
+  ret = (ret * two1div52) + two10m1;
+  if (__builtin_expect (ret > -two10m1, 0))
+    /* Multiplication is used to set logb (+-INF) = INF.  */
+    return (xh * xh);
+  else if (__builtin_expect (ret == two10m1, 0))
+    {
+      /* POSIX specifies that denormal number is treated as
+         though it were normalized.  */
+      int64_t hx;
+
+      EXTRACT_WORDS64 (hx, xh);
+      return (long double) (-1023 - (__builtin_clzll (hx) - 12));
+    }
+  /* Test to avoid logb_downward (0.0) == -0.0.  */
+  return ret == -0.0 ? 0.0 : ret;
+}
+#ifndef __logbl
+long_double_symbol (libm, __logbl, logbl);
+#endif

Modified: fsf/trunk/libc/sysdeps/powerpc/powerpc32/fpu/s_isnan.S
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/fpu/s_isnan.S (original)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/fpu/s_isnan.S Sat Dec  7 00:01:48 2013
@@ -37,9 +37,11 @@
 
 /* It turns out that the 'double' version will also always work for
    single-precision.  */
+#ifndef __isnan
 strong_alias (__isnan, __isnanf)
 hidden_def (__isnanf)
 weak_alias (__isnanf, isnanf)
+#endif
 
 #ifdef NO_LONG_DOUBLE
 strong_alias (__isnan, __isnanl)

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile Sat Dec  7 00:01:48 2013
@@ -1,0 +1,37 @@
+ifeq ($(subdir),math)
+sysdep_routines += s_isnan-power7 s_isnan-power6 s_isnan-power5 s_isnan-ppc32 \
+		   s_isnanf-power6 s_isnanf-power5 s_isinf-power7 \
+		   s_isinf-ppc32 s_isinff-ppc32 s_finite-power7 \
+		   s_finite-ppc32 s_finitef-ppc32 s_copysign-power6 \
+		   s_copysign-ppc32 s_modf-power5+ s_modf-ppc32 \
+		   s_modff-power5+ s_modff-ppc32
+
+libm-sysdep_routines += s_llrintf-power6 s_llrintf-ppc32 s_llrint-power6 \
+			s_llrint-ppc32 s_llround-power6 s_llround-power5+ \
+			s_llround-ppc32 w_sqrt-power5 w_sqrt-ppc32 \
+			w_sqrtf-power5 w_sqrtf-ppc32 s_isnan-power7 \
+			s_isnan-power6 s_isnan-power5 s_isnan-ppc32 \
+			s_isnanf-power6 s_isnanf-power5 s_isinf-power7 \
+			s_isinf-ppc32 s_isinff-ppc32 s_finite-power7 \
+			s_finite-ppc32 s_finitef-ppc32 s_ceil-power5+ \
+			s_ceil-ppc32 s_ceilf-power5+ s_ceilf-ppc32 \
+			s_floor-power5+ s_floor-ppc32 s_floorf-power5+ \
+			s_floorf-ppc32 s_round-power5+ s_round-ppc32 \
+			s_roundf-power5+ s_roundf-ppc32 s_trunc-power5+ \
+			s_trunc-ppc32 s_truncf-power5+ s_truncf-ppc32 \
+			s_copysign-power6 s_copysign-ppc32 s_lround-power6x \
+			s_lround-power5+ s_lround-ppc32 s_lrint-power6x \
+			s_lrint-ppc32 s_modf-power5+ s_modf-ppc32 \
+			s_modff-power5+ s_modff-ppc32 s_logbl-power7 \
+			s_logbl-ppc32 s_logb-power7 s_logb-ppc32 \
+			s_logbf-power7 s_logbf-ppc32 e_hypot-power7 \
+			e_hypot-ppc32 e_hypotf-power7 e_hypotf-ppc32
+
+CFLAGS-s_modf-power5+.c = -mcpu=power5+
+CFLAGS-s_modff-power5+.c = -mcpu=power5+
+CFLAGS-s_logbl-power7.c = -mcpu=power7
+CFLAGS-s_logb-power7.c = -mcpu=power7
+CFLAGS-s_logbf-power7.c = -mcpu=power7
+CFLAGS-e_hypot-power7.c = -mcpu=power7
+CFLAGS-e_hypotf-power7.c = -mcpu=power7
+endif

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-power7.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,26 @@
+/* __ieee_hypot() POWER7 version.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#undef strong_alias
+#define strong_alias(a, b)
+
+#define __ieee754_hypot __ieee754_hypot_power7
+
+#include <sysdeps/powerpc/fpu/e_hypot.c>

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot-ppc32.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,26 @@
+/* __ieee_hypot() PowerPC32 version.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#undef strong_alias
+#define strong_alias(a, b)
+
+#define __ieee754_hypot __ieee754_hypot_ppc32
+
+#include <sysdeps/powerpc/fpu/e_hypot.c>

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypot.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,32 @@
+/* Multiple versions of ieee754_hypot.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+
+extern __typeof (__ieee754_hypot) __ieee754_hypot_ppc32 attribute_hidden;
+extern __typeof (__ieee754_hypot) __ieee754_hypot_power7 attribute_hidden;
+
+libc_ifunc (__ieee754_hypot,
+	    (hwcap & PPC_FEATURE_ARCH_2_06)
+	    ? __ieee754_hypot_power7
+            : __ieee754_hypot_ppc32);
+
+strong_alias (__ieee754_hypot, __hypot_finite)

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-power7.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,26 @@
+/* __ieee754_hypot POWER7 version.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#undef strong_alias
+#define strong_alias(a, b)
+
+#define __ieee754_hypotf __ieee754_hypotf_power7
+
+#include <sysdeps/powerpc/fpu/e_hypotf.c>

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf-ppc32.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,26 @@
+/* __ieee_hypot() PowerPC32 version.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#undef strong_alias
+#define strong_alias(a, b)
+
+#define __ieee754_hypotf __ieee754_hypotf_ppc32
+
+#include <sysdeps/ieee754/flt-32/e_hypotf.c>

Added: fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c (added)
+++ fsf/trunk/libc/sysdeps/powerpc/powerpc32/power4/fpu/multiarch/e_hypotf.c Sat Dec  7 00:01:48 2013
@@ -1,0 +1,32 @@
+/* Multiple versions of ieee754_hypotf.
+   Copyright (C) 2013 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <shlib-compat.h>
+#include "init-arch.h"
+
+extern __typeof (__ieee754_hypotf) __ieee754_hypotf_ppc32 attribute_hidden;

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