From: Adhemerval Zanella Date: Wed, 12 Mar 2014 13:55:50 +0000 (-0500) Subject: PowerPC: Fix bzero definition for static libc for PPC32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a52b3f7e4c4de8705370adda4b390293780dc768;p=thirdparty%2Fglibc.git PowerPC: Fix bzero definition for static libc for PPC32 This patch fixes an issue for powerpc32-fpu static build which fails with an 'bzero' undefined reference. This patch adds bzero ifunc selector for static builds and fixes the '__bzero_ppc' reference to default memset symbol (since static memset build does not provide ifunc selector). Fixes BZ#16689. Backport of dd3946c615184e1957a0cb09352cac72be5d6d5b. --- diff --git a/ChangeLog b/ChangeLog index 93a4ddfa4e1..61b22d62ccd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2014-03-12 Adhemerval Zanella + + [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. + 2014-03-12 Adhemerval Zanella * sysdeps/powerpc/powerpc64/multiarch/strspn.c (strspn): Build IFUNC diff --git a/NEWS b/NEWS index fbd56f6446e..886624a1a19 100644 --- a/NEWS +++ b/NEWS @@ -9,7 +9,7 @@ Version 2.19.1 * The following bugs are resolved with this release: - 16545, 16683. + 16545, 16683, 16689. Version 2.19 diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S index 7a7cca99edd..80a2dc589b1 100644 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S +++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero-ppc32.S @@ -19,8 +19,17 @@ #include +/* 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) diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c index 2a6298a33d4..baaa6b4bcf3 100644 --- a/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c +++ b/sysdeps/powerpc/powerpc32/power4/multiarch/bzero.c @@ -17,7 +17,7 @@ . */ /* Define multiple versions only for definition in libc. */ -#if defined SHARED && !defined NOT_IN_libc +#ifndef NOT_IN_libc # include # include # include "init-arch.h"