[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...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r24710 - in /fsf/trunk/libc: ./ malloc/ ports/ ports/sysdeps/unix/sysv/linux/alpha/bits/ string/ sysdeps/ieee754/dbl-64/ sys...
- From: eglibc@xxxxxxxxxx
- Date: Sat, 07 Dec 2013 08:01:50 -0000
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