forked from pool/glibc
Accepting request 228198 from home:Andreas_Schwab:Factory
- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan, isinf, finite; fix missing static symbols - glibc-2.14-crypt.diff: update for file renaming OBS-URL: https://build.opensuse.org/request/show/228198 OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=346
This commit is contained in:
parent
26f82ad953
commit
8f0c4de31f
@ -1,7 +1,7 @@
|
|||||||
Index: glibc-2.18.90/Versions.def
|
Index: glibc-2.19/Versions.def
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.18.90.orig/Versions.def
|
--- glibc-2.19.orig/Versions.def
|
||||||
+++ glibc-2.18.90/Versions.def
|
+++ glibc-2.19/Versions.def
|
||||||
@@ -45,6 +45,9 @@ libc {
|
@@ -45,6 +45,9 @@ libc {
|
||||||
libcrypt {
|
libcrypt {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
@ -12,10 +12,10 @@ Index: glibc-2.18.90/Versions.def
|
|||||||
libdl {
|
libdl {
|
||||||
GLIBC_2.0
|
GLIBC_2.0
|
||||||
GLIBC_2.1
|
GLIBC_2.1
|
||||||
Index: glibc-2.18.90/crypt/Makefile
|
Index: glibc-2.19/crypt/Makefile
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.18.90.orig/crypt/Makefile
|
--- glibc-2.19.orig/crypt/Makefile
|
||||||
+++ glibc-2.18.90/crypt/Makefile
|
+++ glibc-2.19/crypt/Makefile
|
||||||
@@ -21,14 +21,18 @@
|
@@ -21,14 +21,18 @@
|
||||||
subdir := crypt
|
subdir := crypt
|
||||||
|
|
||||||
@ -37,10 +37,10 @@ Index: glibc-2.18.90/crypt/Makefile
|
|||||||
|
|
||||||
include ../Makeconfig
|
include ../Makeconfig
|
||||||
|
|
||||||
Index: glibc-2.18.90/crypt/Versions
|
Index: glibc-2.19/crypt/Versions
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.18.90.orig/crypt/Versions
|
--- glibc-2.19.orig/crypt/Versions
|
||||||
+++ glibc-2.18.90/crypt/Versions
|
+++ glibc-2.19/crypt/Versions
|
||||||
@@ -3,3 +3,8 @@ libcrypt {
|
@@ -3,3 +3,8 @@ libcrypt {
|
||||||
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
|
crypt; crypt_r; encrypt; encrypt_r; fcrypt; setkey; setkey_r;
|
||||||
}
|
}
|
||||||
@ -50,10 +50,10 @@ Index: glibc-2.18.90/crypt/Versions
|
|||||||
+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
+ crypt_gensalt; crypt_gensalt_rn; crypt_gensalt_ra;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
Index: glibc-2.18.90/crypt/crypt-entry.c
|
Index: glibc-2.19/crypt/crypt-entry.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.18.90.orig/crypt/crypt-entry.c
|
--- glibc-2.19.orig/crypt/crypt-entry.c
|
||||||
+++ glibc-2.18.90/crypt/crypt-entry.c
|
+++ glibc-2.19/crypt/crypt-entry.c
|
||||||
@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar;
|
@@ -81,7 +81,7 @@ extern struct crypt_data _ufc_foobar;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -76,140 +76,130 @@ Index: glibc-2.18.90/crypt/crypt-entry.c
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
+#endif
|
+#endif
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/aarch64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/alpha/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/arm/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/ia64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/m68k/m680x0/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
Index: glibc-2.19/shlib-versions
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- glibc-2.19.orig/shlib-versions
|
||||||
+++ glibc-2.18.90/ports/sysdeps/unix/sysv/linux/tile/tilepro/nptl/libowcrypt.abilist
|
+++ glibc-2.19/shlib-versions
|
||||||
@@ -0,0 +1,5 @@
|
|
||||||
+OW_CRYPT_1.0
|
|
||||||
+ OW_CRYPT_1.0 A
|
|
||||||
+ crypt_gensalt F
|
|
||||||
+ crypt_gensalt_ra F
|
|
||||||
+ crypt_gensalt_rn F
|
|
||||||
Index: glibc-2.18.90/shlib-versions
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.18.90.orig/shlib-versions
|
|
||||||
+++ glibc-2.18.90/shlib-versions
|
|
||||||
@@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_
|
@@ -93,6 +93,7 @@ sh.*-.*-linux.* ld=ld-linux.so.2 GLIBC_
|
||||||
|
|
||||||
# This defines the shared library version numbers we will install.
|
# This defines the shared library version numbers we will install.
|
||||||
@ -218,110 +208,120 @@ Index: glibc-2.18.90/shlib-versions
|
|||||||
|
|
||||||
# The gross patch for programs assuming broken locale implementations.
|
# The gross patch for programs assuming broken locale implementations.
|
||||||
sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
|
sh.*-.*-.* libBrokenLocale=1 GLIBC_2.2
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/i386/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt-le.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/s390/s390-64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/sh/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/sparc/sparc64/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
+ crypt_gensalt F
|
+ crypt_gensalt F
|
||||||
+ crypt_gensalt_ra F
|
+ crypt_gensalt_ra F
|
||||||
+ crypt_gensalt_rn F
|
+ crypt_gensalt_rn F
|
||||||
Index: glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ glibc-2.18.90/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/x86_64/64/nptl/libowcrypt.abilist
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+OW_CRYPT_1.0
|
||||||
|
+ OW_CRYPT_1.0 A
|
||||||
|
+ crypt_gensalt F
|
||||||
|
+ crypt_gensalt_ra F
|
||||||
|
+ crypt_gensalt_rn F
|
||||||
|
Index: glibc-2.19/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ glibc-2.19/sysdeps/unix/sysv/linux/x86_64/x32/nptl/libowcrypt.abilist
|
||||||
@@ -0,0 +1,5 @@
|
@@ -0,0 +1,5 @@
|
||||||
+OW_CRYPT_1.0
|
+OW_CRYPT_1.0
|
||||||
+ OW_CRYPT_1.0 A
|
+ OW_CRYPT_1.0 A
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan,
|
||||||
|
isinf, finite; fix missing static symbols
|
||||||
|
- glibc-2.14-crypt.diff: update for file renaming
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de
|
Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan,
|
||||||
|
isinf, finite; fix missing static symbols
|
||||||
|
- glibc-2.14-crypt.diff: update for file renaming
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de
|
Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 29 16:41:25 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
- powerpc-opt-power8.patch: remove broken POWER8 implementation of isnan,
|
||||||
|
isinf, finite; fix missing static symbols
|
||||||
|
- glibc-2.14-crypt.diff: update for file renaming
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de
|
Thu Mar 27 08:40:20 UTC 2014 - schwab@suse.de
|
||||||
|
|
||||||
|
@ -31,6 +31,25 @@
|
|||||||
* sysdeps/powerpc/powerpc64/power7/strcspn.S: New file: optimited
|
* sysdeps/powerpc/powerpc64/power7/strcspn.S: New file: optimited
|
||||||
strcspn for POWER7.
|
strcspn for POWER7.
|
||||||
|
|
||||||
|
2014-03-12 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
[BZ #16689]
|
||||||
|
* sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
|
||||||
|
(__bzero_ppc): Call memset@local instead of __memset_ppc@local for
|
||||||
|
static build.
|
||||||
|
* sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c: Build IFUNC
|
||||||
|
selector for static builds.
|
||||||
|
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/strspn.c (strspn): Build IFUNC
|
||||||
|
selector for static builds.
|
||||||
|
|
||||||
|
2014-03-11 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
[BZ #16683]
|
||||||
|
* sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S (__bzero_ppc):
|
||||||
|
Define it for static builds as well.
|
||||||
|
(NO_BZERO_IMPL): Likewise.
|
||||||
|
|
||||||
2014-03-11 Vidya Ranganathan <vidya@linux.vnet.ibm.com>
|
2014-03-11 Vidya Ranganathan <vidya@linux.vnet.ibm.com>
|
||||||
|
|
||||||
* sysdeps/powerpc/powerpc64/power7/strspn.S: New file: Optimization.
|
* sysdeps/powerpc/powerpc64/power7/strspn.S: New file: Optimization.
|
||||||
@ -238,6 +257,42 @@ Index: glibc-2.19/string/strspn.c
|
|||||||
{
|
{
|
||||||
const char *p;
|
const char *p;
|
||||||
const char *a;
|
const char *a;
|
||||||
|
Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
|
||||||
|
+++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S
|
||||||
|
@@ -19,8 +19,17 @@
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
|
||||||
|
+/* memset ifunc selector is not built for static and memset@local
|
||||||
|
+ for shared builds makes the linker point the call to the ifunc
|
||||||
|
+ selector. */
|
||||||
|
+#ifdef SHARED
|
||||||
|
+# define MEMSET __memset_ppc
|
||||||
|
+#else
|
||||||
|
+# define MEMSET memset
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
ENTRY (__bzero_ppc)
|
||||||
|
mr r5,r4
|
||||||
|
li r4,0
|
||||||
|
- b __memset_ppc@local
|
||||||
|
+ b MEMSET@local
|
||||||
|
END (__bzero_ppc)
|
||||||
|
Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
|
||||||
|
+++ glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
/* Define multiple versions only for definition in libc. */
|
||||||
|
-#if defined SHARED && !defined NOT_IN_libc
|
||||||
|
+#ifndef NOT_IN_libc
|
||||||
|
# include <string.h>
|
||||||
|
# include <strings.h>
|
||||||
|
# include "init-arch.h"
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
|
Index: glibc-2.19/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc32/power4/multiarch/init-arch.h
|
||||||
@ -254,80 +309,26 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
|
||||||
@@ -4,7 +4,8 @@ sysdep_routines += s_isnan-power7 s_isna
|
@@ -21,7 +21,8 @@ libm-sysdep_routines += s_isnan-power7 s
|
||||||
s_copysign-ppc64 s_finite-power7 s_finite-ppc64 \
|
|
||||||
s_finitef-ppc64 s_isinff-ppc64 s_isinf-power7 \
|
|
||||||
s_isinf-ppc64 s_modf-power5+ s_modf-ppc64 \
|
|
||||||
- s_modff-power5+ s_modff-ppc64
|
|
||||||
+ s_modff-power5+ s_modff-ppc64 s_isnan-power8 \
|
|
||||||
+ s_isinf-power8 s_finite-power8
|
|
||||||
|
|
||||||
libm-sysdep_routines += s_isnan-power7 s_isnan-power6x s_isnan-power6 \
|
|
||||||
s_isnan-power5 s_isnan-ppc64 s_llround-power6x \
|
|
||||||
@@ -21,7 +22,9 @@ libm-sysdep_routines += s_isnan-power7 s
|
|
||||||
s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \
|
s_logbl-power7 s_logb-ppc64 s_logbf-ppc64 \
|
||||||
s_logbl-ppc64 s_modf-power5+ s_modf-ppc64 \
|
s_logbl-ppc64 s_modf-power5+ s_modf-ppc64 \
|
||||||
s_modff-power5+ s_modff-ppc64 e_hypot-ppc64 \
|
s_modff-power5+ s_modff-ppc64 e_hypot-ppc64 \
|
||||||
- e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7
|
- e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7
|
||||||
+ e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \
|
+ e_hypot-power7 e_hypotf-ppc64 e_hypotf-power7 \
|
||||||
+ s_isnan-power8 s_isinf-power8 s_finite-power8 \
|
|
||||||
+ s_llrint-power8 s_llround-power8
|
+ s_llrint-power8 s_llround-power8
|
||||||
|
|
||||||
CFLAGS-s_logbf-power7.c = -mcpu=power7
|
CFLAGS-s_logbf-power7.c = -mcpu=power7
|
||||||
CFLAGS-s_logbl-power7.c = -mcpu=power7
|
CFLAGS-s_logbl-power7.c = -mcpu=power7
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S
|
|
||||||
@@ -0,0 +1,33 @@
|
|
||||||
+/* isnan(). PowerPC64/POWER7 version.
|
|
||||||
+ Copyright (C) 2014 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 <sysdep.h>
|
|
||||||
+#include <math_ldbl_opt.h>
|
|
||||||
+
|
|
||||||
+#undef hidden_def
|
|
||||||
+#define hidden_def(name)
|
|
||||||
+#undef weak_alias
|
|
||||||
+#define weak_alias(name, alias)
|
|
||||||
+#undef strong_alias
|
|
||||||
+#define strong_alias(name, alias)
|
|
||||||
+#undef compat_symbol
|
|
||||||
+#define compat_symbol(lib, name, symbol, ver)
|
|
||||||
+
|
|
||||||
+#define __finite __finite_power8
|
|
||||||
+
|
|
||||||
+#include <sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S>
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
|
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c
|
||||||
@@ -23,10 +23,13 @@
|
@@ -25,8 +25,8 @@ extern __typeof (__finite) __finite_ppc6
|
||||||
|
|
||||||
extern __typeof (__finite) __finite_ppc64 attribute_hidden;
|
|
||||||
extern __typeof (__finite) __finite_power7 attribute_hidden;
|
extern __typeof (__finite) __finite_power7 attribute_hidden;
|
||||||
+extern __typeof (__finite) __finite_power8 attribute_hidden;
|
|
||||||
|
|
||||||
libc_ifunc (__finite,
|
libc_ifunc (__finite,
|
||||||
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
- ? __finite_power7
|
- ? __finite_power7
|
||||||
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
|
|
||||||
+ ? __finite_power8 :
|
|
||||||
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
+ ? __finite_power7
|
+ ? __finite_power7
|
||||||
: __finite_ppc64);
|
: __finite_ppc64);
|
||||||
@ -337,75 +338,27 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c
|
||||||
@@ -23,10 +23,13 @@
|
@@ -25,8 +25,8 @@ extern __typeof (__finitef) __finitef_pp
|
||||||
extern __typeof (__finitef) __finitef_ppc64 attribute_hidden;
|
|
||||||
/* The double-precision version also works for single-precision. */
|
|
||||||
extern __typeof (__finitef) __finite_power7 attribute_hidden;
|
extern __typeof (__finitef) __finite_power7 attribute_hidden;
|
||||||
+extern __typeof (__finitef) __finite_power8 attribute_hidden;
|
|
||||||
|
|
||||||
libc_ifunc (__finitef,
|
libc_ifunc (__finitef,
|
||||||
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
- ? __finite_power7
|
- ? __finite_power7
|
||||||
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
|
|
||||||
+ ? __finite_power8 :
|
|
||||||
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
+ ? __finite_power7
|
+ ? __finite_power7
|
||||||
: __finitef_ppc64);
|
: __finitef_ppc64);
|
||||||
|
|
||||||
weak_alias (__finitef, finitef)
|
weak_alias (__finitef, finitef)
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S
|
|
||||||
@@ -0,0 +1,33 @@
|
|
||||||
+/* isinf(). PowerPC64/POWER8 version.
|
|
||||||
+ Copyright (C) 2014 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 <sysdep.h>
|
|
||||||
+#include <math_ldbl_opt.h>
|
|
||||||
+
|
|
||||||
+#undef hidden_def
|
|
||||||
+#define hidden_def(name)
|
|
||||||
+#undef weak_alias
|
|
||||||
+#define weak_alias(name, alias)
|
|
||||||
+#undef strong_alias
|
|
||||||
+#define strong_alias(name, alias)
|
|
||||||
+#undef compat_symbol
|
|
||||||
+#define compat_symbol(lib, name, alias, ver)
|
|
||||||
+
|
|
||||||
+#define __isinf __isinf_power8
|
|
||||||
+
|
|
||||||
+#include <sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S>
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
|
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c
|
||||||
@@ -23,10 +23,13 @@
|
@@ -25,8 +25,8 @@ extern __typeof (__isinf) __isinf_ppc64
|
||||||
|
|
||||||
extern __typeof (__isinf) __isinf_ppc64 attribute_hidden;
|
|
||||||
extern __typeof (__isinf) __isinf_power7 attribute_hidden;
|
extern __typeof (__isinf) __isinf_power7 attribute_hidden;
|
||||||
+extern __typeof (__isinf) __isinf_power8 attribute_hidden;
|
|
||||||
|
|
||||||
libc_ifunc (__isinf,
|
libc_ifunc (__isinf,
|
||||||
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
- ? __isinf_power7
|
- ? __isinf_power7
|
||||||
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
|
|
||||||
+ ? __isinf_power8 :
|
|
||||||
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
+ ? __isinf_power7
|
+ ? __isinf_power7
|
||||||
: __isinf_ppc64);
|
: __isinf_ppc64);
|
||||||
@ -415,76 +368,28 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c
|
||||||
@@ -24,10 +24,13 @@
|
@@ -26,8 +26,8 @@ extern __typeof (__isinff) __isinff_ppc6
|
||||||
extern __typeof (__isinff) __isinff_ppc64 attribute_hidden;
|
|
||||||
/* The double-precision version also works for single-precision. */
|
|
||||||
extern __typeof (__isinff) __isinf_power7 attribute_hidden;
|
extern __typeof (__isinff) __isinf_power7 attribute_hidden;
|
||||||
+extern __typeof (__isinff) __isinf_power8 attribute_hidden;
|
|
||||||
|
|
||||||
libc_ifunc (__isinff,
|
libc_ifunc (__isinff,
|
||||||
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
- ? __isinf_power7
|
- ? __isinf_power7
|
||||||
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
|
|
||||||
+ ? __isinf_power8 :
|
|
||||||
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
+ ? __isinf_power7
|
+ ? __isinf_power7
|
||||||
: __isinff_ppc64);
|
: __isinff_ppc64);
|
||||||
|
|
||||||
weak_alias (__isinff, isinff)
|
weak_alias (__isinff, isinff)
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S
|
|
||||||
@@ -0,0 +1,33 @@
|
|
||||||
+/* isnan(). PowerPC64/POWER7 version.
|
|
||||||
+ Copyright (C) 2014 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 <sysdep.h>
|
|
||||||
+#include <math_ldbl_opt.h>
|
|
||||||
+
|
|
||||||
+#undef hidden_def
|
|
||||||
+#define hidden_def(name)
|
|
||||||
+#undef weak_alias
|
|
||||||
+#define weak_alias(name, alias)
|
|
||||||
+#undef strong_alias
|
|
||||||
+#define strong_alias(name, alias)
|
|
||||||
+#undef compat_symbol
|
|
||||||
+#define compat_symbol(lib, name, symbol, ver)
|
|
||||||
+
|
|
||||||
+#define __isnan __isnan_power8
|
|
||||||
+
|
|
||||||
+#include <sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S>
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
|
Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c
|
||||||
@@ -26,16 +26,19 @@ extern __typeof (__isnan) __isnan_power5
|
@@ -28,14 +28,14 @@ extern __typeof (__isnan) __isnan_power6
|
||||||
extern __typeof (__isnan) __isnan_power6 attribute_hidden;
|
|
||||||
extern __typeof (__isnan) __isnan_power6x attribute_hidden;
|
|
||||||
extern __typeof (__isnan) __isnan_power7 attribute_hidden;
|
extern __typeof (__isnan) __isnan_power7 attribute_hidden;
|
||||||
+extern __typeof (__isnan) __isnan_power8 attribute_hidden;
|
|
||||||
|
|
||||||
libc_ifunc (__isnan,
|
libc_ifunc (__isnan,
|
||||||
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
- ? __isnan_power7 :
|
- ? __isnan_power7 :
|
||||||
- (hwcap & PPC_FEATURE_POWER6_EXT)
|
- (hwcap & PPC_FEATURE_POWER6_EXT)
|
||||||
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
|
|
||||||
+ ? __isnan_power8 :
|
|
||||||
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
+ ? __isnan_power7 :
|
+ ? __isnan_power7 :
|
||||||
+ (hwcap & PPC_FEATURE_POWER6_EXT)
|
+ (hwcap & PPC_FEATURE_POWER6_EXT)
|
||||||
@ -504,11 +409,8 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
|
||||||
@@ -25,16 +25,19 @@ extern __typeof (__isnanf) __isnan_power
|
@@ -27,14 +27,14 @@ extern __typeof (__isnanf) __isnan_power
|
||||||
extern __typeof (__isnanf) __isnan_power6 attribute_hidden;
|
|
||||||
extern __typeof (__isnanf) __isnan_power6x attribute_hidden;
|
|
||||||
extern __typeof (__isnanf) __isnan_power7 attribute_hidden;
|
extern __typeof (__isnanf) __isnan_power7 attribute_hidden;
|
||||||
+extern __typeof (__isnanf) __isnan_power8 attribute_hidden;
|
|
||||||
|
|
||||||
libc_ifunc (__isnanf,
|
libc_ifunc (__isnanf,
|
||||||
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
- (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
@ -519,8 +421,6 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c
|
|||||||
- ? __isnan_power6 :
|
- ? __isnan_power6 :
|
||||||
- (hwcap & PPC_FEATURE_POWER5)
|
- (hwcap & PPC_FEATURE_POWER5)
|
||||||
- ? __isnan_power5
|
- ? __isnan_power5
|
||||||
+ (hwcap2 & PPC_FEATURE2_ARCH_2_07)
|
|
||||||
+ ? __isnan_power8 :
|
|
||||||
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
+ (hwcap & PPC_FEATURE_ARCH_2_06)
|
||||||
+ ? __isnan_power7 :
|
+ ? __isnan_power7 :
|
||||||
+ (hwcap & PPC_FEATURE_POWER6_EXT)
|
+ (hwcap & PPC_FEATURE_POWER6_EXT)
|
||||||
@ -714,6 +614,44 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
|
|||||||
+
|
+
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
|
||||||
|
===================================================================
|
||||||
|
--- glibc-2.19.orig/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
|
||||||
|
+++ glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/memset-ppc64.S
|
||||||
|
@@ -18,10 +18,9 @@
|
||||||
|
|
||||||
|
#include <sysdep.h>
|
||||||
|
|
||||||
|
-#if defined SHARED && !defined NOT_IN_libc
|
||||||
|
-
|
||||||
|
/* Copied from bzero.S to prevent the linker from inserting a stub
|
||||||
|
- between bzero and memset. */
|
||||||
|
+ between bzero and memset. NOTE: this code should be positioned
|
||||||
|
+ before ENTRY/END_GEN_TB redefinition. */
|
||||||
|
ENTRY (__bzero_ppc)
|
||||||
|
CALL_MCOUNT 3
|
||||||
|
mr r5,r4
|
||||||
|
@@ -29,6 +28,8 @@ ENTRY (__bzero_ppc)
|
||||||
|
b L(_memset)
|
||||||
|
END_GEN_TB (__bzero_ppc,TB_TOCLESS)
|
||||||
|
|
||||||
|
+
|
||||||
|
+#if defined SHARED && !defined NOT_IN_libc
|
||||||
|
# undef EALIGN
|
||||||
|
# define EALIGN(name, alignt, words) \
|
||||||
|
.section ".text"; \
|
||||||
|
@@ -48,9 +49,9 @@ END_GEN_TB (__bzero_ppc,TB_TOCLESS)
|
||||||
|
# undef libc_hidden_builtin_def
|
||||||
|
# define libc_hidden_builtin_def(name) \
|
||||||
|
.globl __GI_memset; __GI_memset = __memset_ppc
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* Do not implement __bzero at powerpc64/memset.S. */
|
||||||
|
-# define NO_BZERO_IMPL
|
||||||
|
-#endif
|
||||||
|
+#define NO_BZERO_IMPL
|
||||||
|
|
||||||
|
#include <sysdeps/powerpc/powerpc64/memset.S>
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S
|
Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strcspn-power7.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
@ -1291,7 +1229,7 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/multiarch/strspn.c
|
|||||||
+ License along with the GNU C Library; if not, see
|
+ License along with the GNU C Library; if not, see
|
||||||
+ <http://www.gnu.org/licenses/>. */
|
+ <http://www.gnu.org/licenses/>. */
|
||||||
+
|
+
|
||||||
+#if defined SHARED && !defined NOT_IN_libc
|
+#ifndef NOT_IN_libc
|
||||||
+# include <string.h>
|
+# include <string.h>
|
||||||
+# include <shlib-compat.h>
|
+# include <shlib-compat.h>
|
||||||
+# include "init-arch.h"
|
+# include "init-arch.h"
|
||||||
@ -2258,209 +2196,6 @@ Index: glibc-2.19/sysdeps/powerpc/powerpc64/power7/strspn.S
|
|||||||
+ blr /* done */
|
+ blr /* done */
|
||||||
+END(strspn)
|
+END(strspn)
|
||||||
+libc_hidden_builtin_def (strspn)
|
+libc_hidden_builtin_def (strspn)
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S
|
|
||||||
@@ -0,0 +1,56 @@
|
|
||||||
+/* isfinite(). PowerPC64/POWER8 version.
|
|
||||||
+ Copyright (C) 2014 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 <sysdep.h>
|
|
||||||
+#include <math_ldbl_opt.h>
|
|
||||||
+
|
|
||||||
+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */
|
|
||||||
+
|
|
||||||
+/* int [r3] __finite ([fp1] x) */
|
|
||||||
+
|
|
||||||
+EALIGN (__finite, 4, 0)
|
|
||||||
+ CALL_MCOUNT 0
|
|
||||||
+ MFVSRD_R3_V1
|
|
||||||
+ lis r9,0x8010
|
|
||||||
+ clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */
|
|
||||||
+ rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */
|
|
||||||
+ add r3,r3,r9
|
|
||||||
+ rldicl r3,r3,1,63
|
|
||||||
+ blr
|
|
||||||
+END (__finite)
|
|
||||||
+
|
|
||||||
+hidden_def (__finite)
|
|
||||||
+weak_alias (__finite, finite)
|
|
||||||
+
|
|
||||||
+/* It turns out that the 'double' version will also always work for
|
|
||||||
+ single-precision. */
|
|
||||||
+strong_alias (__finite, __finitef)
|
|
||||||
+hidden_def (__finitef)
|
|
||||||
+weak_alias (__finitef, finitef)
|
|
||||||
+
|
|
||||||
+#ifdef IS_IN_libm
|
|
||||||
+# if LONG_DOUBLE_COMPAT (libm, GLIBC_2_0)
|
|
||||||
+compat_symbol (libm, __finite, __finitel, GLIBC_2_0)
|
|
||||||
+compat_symbol (libm, finite, finitel, GLIBC_2_0)
|
|
||||||
+# endif
|
|
||||||
+#else
|
|
||||||
+# if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
|
|
||||||
+compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
|
|
||||||
+compat_symbol (libc, finite, finitel, GLIBC_2_0);
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+/* This function uses the same code as s_finite.S. */
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S
|
|
||||||
@@ -0,0 +1,61 @@
|
|
||||||
+/* isinf(). PowerPC64/POWER8 version.
|
|
||||||
+ Copyright (C) 2014 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 <sysdep.h>
|
|
||||||
+#include <math_ldbl_opt.h>
|
|
||||||
+
|
|
||||||
+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */
|
|
||||||
+
|
|
||||||
+/* int [r3] __isinf([fp1] x) */
|
|
||||||
+
|
|
||||||
+EALIGN (__isinf, 4, 0)
|
|
||||||
+ CALL_MCOUNT 0
|
|
||||||
+ MFVSRD_R3_V1
|
|
||||||
+ lis r9,0x7ff0 /* r9 = 0x7ff0 */
|
|
||||||
+ rldicl r10,r3,0,1 /* r10 = r3 & (0x8000000000000000) */
|
|
||||||
+ sldi r9,r9,32 /* r9 = r9 << 52 */
|
|
||||||
+ cmpd cr7,r10,r9 /* fp1 & 0x7ff0000000000000 ? */
|
|
||||||
+ beq cr7,L(inf)
|
|
||||||
+ li r3,0 /* Not inf */
|
|
||||||
+ blr
|
|
||||||
+L(inf):
|
|
||||||
+ sradi r3,r3,63 /* r3 = r3 >> 63 */
|
|
||||||
+ ori r3,r3,1 /* r3 = r3 | 0x1 */
|
|
||||||
+ blr
|
|
||||||
+END (__isinf)
|
|
||||||
+
|
|
||||||
+hidden_def (__isinf)
|
|
||||||
+weak_alias (__isinf, isinf)
|
|
||||||
+
|
|
||||||
+/* It turns out that the 'double' version will also always work for
|
|
||||||
+ single-precision. */
|
|
||||||
+strong_alias (__isinf, __isinff)
|
|
||||||
+hidden_def (__isinff)
|
|
||||||
+weak_alias (__isinff, isinff)
|
|
||||||
+
|
|
||||||
+#ifdef NO_LONG_DOUBLE
|
|
||||||
+strong_alias (__isinf, __isinfl)
|
|
||||||
+weak_alias (__isinf, isinfl)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifndef IS_IN_libm
|
|
||||||
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
|
|
||||||
+compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
|
|
||||||
+compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+/* This function uses the same code as s_isinf.S. */
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S
|
|
||||||
@@ -0,0 +1,53 @@
|
|
||||||
+/* isnan(). PowerPC64/POWER8 version.
|
|
||||||
+ Copyright (C) 2014 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 <sysdep.h>
|
|
||||||
+#include <math_ldbl_opt.h>
|
|
||||||
+
|
|
||||||
+#define MFVSRD_R3_V1 .byte 0x7c,0x23,0x00,0x66 /* mfvsrd r3,vs1 */
|
|
||||||
+
|
|
||||||
+/* int [r3] __isnan([f1] x) */
|
|
||||||
+
|
|
||||||
+EALIGN (__isnan, 4, 0)
|
|
||||||
+ CALL_MCOUNT 0
|
|
||||||
+ MFVSRD_R3_V1
|
|
||||||
+ lis r9,0x7ff0
|
|
||||||
+ clrldi r3,r3,1 /* r3 = r3 & 0x8000000000000000 */
|
|
||||||
+ rldicr r9,r9,32,31 /* r9 = (r9 << 32) & 0xffffffff */
|
|
||||||
+ subf r3,r3,r9
|
|
||||||
+ rldicl r3,r3,1,63
|
|
||||||
+ blr
|
|
||||||
+END (__isnan)
|
|
||||||
+
|
|
||||||
+/* It turns out that the 'double' version will also always work for
|
|
||||||
+ single-precision. */
|
|
||||||
+strong_alias (__isnan, __isnanf)
|
|
||||||
+hidden_def (__isnanf)
|
|
||||||
+weak_alias (__isnanf, isnanf)
|
|
||||||
+
|
|
||||||
+#ifdef NO_LONG_DOUBLE
|
|
||||||
+strong_alias (__isnan, __isnanl)
|
|
||||||
+weak_alias (__isnan, isnanl)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#ifndef IS_IN_libm
|
|
||||||
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
|
|
||||||
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
|
|
||||||
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
|
|
||||||
+# endif
|
|
||||||
+#endif
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+/* This function uses the same code as s_isnan.S. */
|
|
||||||
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S
|
Index: glibc-2.19/sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
|
Loading…
Reference in New Issue
Block a user