From: Adhemerval Zanella Date: Tue, 8 Apr 2014 22:25:14 +0000 (-0500) Subject: PowerPC: Fix --disable-multi-arch builds X-Git-Tag: glibc-2.20~646 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de21c33c068c8e39afb5711613a7c083c11ce6a1;p=thirdparty%2Fglibc.git PowerPC: Fix --disable-multi-arch builds This patch fixes some powerpc32 and powerpc64 builds with --disable-multi-arch option along with different --with-cpu=powerN. It cleanups the Implies directories by removing the multiarch folder for non multiarch config and also fixing two assembly implementations: powerpc64/power7/strncat.S that is calling the wrong strlen; and power8/fpu/s_isnan.S that misses the hidden_def and weak_alias directives. --- diff --git a/ChangeLog b/ChangeLog index ccfb7e618bd..7e1c54ca95e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2014-04-09 Adhemerval Zanella + + * sysdeps/powerpc/powerpc32/power6x/fpu/Implies: New file. + * sysdeps/powerpc/powerpc64/power6x/fpu/Implies: new file. + * sysdeps/powerpc/powerpc64/power6x/multiarch/Implies: New file. + * sysdeps/powerpc/powerpc64/power5+/fpu/Implies: Remove multiarch + imply folder. + * sysdeps/powerpc/powerpc64/power5/fpu/Implies: Likewise. + * sysdeps/powerpc/powerpc64/power7/fpu/Implies: Likewise. + * sysdeps/powerpc/powerpc64/power8/fpu/Implies: Likewise. + * sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies: Adjust + correct imply path. + * sysdeps/powerpc/powerpc64/power7/strncat.S (STRLEN): Define correct + strlen symbol for non multi-arch builds. + * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S (__isnan): Add + missing hidden_def and weak_alias. + 2014-04-08 Carlos O'Donell * manual/ipc.texi (sem_close): AC-unsafe because of aculock. diff --git a/sysdeps/powerpc/powerpc32/power6x/fpu/Implies b/sysdeps/powerpc/powerpc32/power6x/fpu/Implies new file mode 100644 index 00000000000..d53ce2573c7 --- /dev/null +++ b/sysdeps/powerpc/powerpc32/power6x/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc32/power6/fpu diff --git a/sysdeps/powerpc/powerpc64/power5+/fpu/Implies b/sysdeps/powerpc/powerpc64/power5+/fpu/Implies index c0e67848e20..f00c50fb497 100644 --- a/sysdeps/powerpc/powerpc64/power5+/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power5+/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power5/fpu/multiarch +powerpc/powerpc64/power5/fpu diff --git a/sysdeps/powerpc/powerpc64/power5/fpu/Implies b/sysdeps/powerpc/powerpc64/power5/fpu/Implies index 3740d050a67..6b8c23efa63 100644 --- a/sysdeps/powerpc/powerpc64/power5/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power5/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power4/fpu/multiarch +powerpc/powerpc64/power4/fpu/ diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/Implies b/sysdeps/powerpc/powerpc64/power6x/fpu/Implies new file mode 100644 index 00000000000..30fa17646ef --- /dev/null +++ b/sysdeps/powerpc/powerpc64/power6x/fpu/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/power6/fpu diff --git a/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies index f54ff23500b..410d289a6d7 100644 --- a/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies +++ b/sysdeps/powerpc/powerpc64/power6x/fpu/multiarch/Implies @@ -1 +1 @@ -sysdeps/powerpc/powerpc64/power6/fpu/multiarch +powerpc/powerpc64/power6/fpu/multiarch diff --git a/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies b/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies new file mode 100644 index 00000000000..bf5d6171a5b --- /dev/null +++ b/sysdeps/powerpc/powerpc64/power6x/multiarch/Implies @@ -0,0 +1 @@ +powerpc/powerpc64/power6/multiarch diff --git a/sysdeps/powerpc/powerpc64/power7/fpu/Implies b/sysdeps/powerpc/powerpc64/power7/fpu/Implies index 410d289a6d7..30fa17646ef 100644 --- a/sysdeps/powerpc/powerpc64/power7/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power7/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power6/fpu/multiarch +powerpc/powerpc64/power6/fpu diff --git a/sysdeps/powerpc/powerpc64/power7/strncat.S b/sysdeps/powerpc/powerpc64/power7/strncat.S index 1a1a95e0300..e7e36a4de49 100644 --- a/sysdeps/powerpc/powerpc64/power7/strncat.S +++ b/sysdeps/powerpc/powerpc64/power7/strncat.S @@ -38,7 +38,9 @@ #endif #ifndef STRLEN -# define STRLEN __strlen_ppc +/* For builds with no IFUNC support, local calls should be made to internal + GLIBC symbol (created by libc_hidden_builtin_def). */ +# define STRLEN __GI_strlen #endif #define FRAMESIZE (FRAME_MIN_SIZE+32) diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/Implies b/sysdeps/powerpc/powerpc64/power8/fpu/Implies index 7fd86fdf872..1187cdfb0a2 100644 --- a/sysdeps/powerpc/powerpc64/power8/fpu/Implies +++ b/sysdeps/powerpc/powerpc64/power8/fpu/Implies @@ -1 +1 @@ -powerpc/powerpc64/power7/fpu/multiarch +powerpc/powerpc64/power7/fpu/ diff --git a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S b/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S index b03c896acf4..cf119e5c98b 100644 --- a/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S +++ b/sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S @@ -39,6 +39,9 @@ EALIGN (__isnan, 4, 0) blr END (__isnan) +hidden_def (__isnan) +weak_alias (__isnan, isnan) + /* It turns out that the 'double' version will also always work for single-precision. */ strong_alias (__isnan, __isnanf)