about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gabriel@inconstante.eti.br>2019-03-02 16:57:13 -0300
committerGabriel F. T. Gomes <gabriel@inconstante.eti.br>2019-03-05 11:33:19 -0300
commit590675c079d743ecf6fee9f561e46c94633a91ef (patch)
treec893faa913d46c1fee20b329e35967861451e75d
parentde71ee7b3c61dd26b78599da492b1168b31e70b6 (diff)
downloadglibc-590675c079d743ecf6fee9f561e46c94633a91ef.tar.gz
glibc-590675c079d743ecf6fee9f561e46c94633a91ef.tar.xz
glibc-590675c079d743ecf6fee9f561e46c94633a91ef.zip
powerpc: Fix build of wcscpy with --disable-multi-arch
Since the commit

commit 81a14439417552324ec6ca71f65ddf8e7cdd51c7
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue Feb 5 17:35:12 2019 -0200

    wcsmbs: optimize wcscat

powerpc64 and powerpc64le builds fail when configured with
--disable-multi-arch and --with-cpu=power6 (or newer), due to an
undefined reference to __GI___wcscpy.  This patch fixes this on
sysdeps/powerpc/powerpc64/power6/wcscpy.c, which is only used when
multi-arch is disabled.

This patch does nothing for the failures on 32-bits powerpc builds,
because the file is under the powerpc64 subdirectory, however, powerpc
builds were already failing with --disable-multi-arch, with multiple
error messages, even before the aforementioned commit.

Tested for powerpc, powerpc64, and powerpc64le with multi-arch enabled
(all pass) and disabled (powerpc still fails as explained above).
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/powerpc/powerpc64/power6/wcscpy.c3
2 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8e276dea86..3a70b618ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-03-05  Gabriel F. T. Gomes  <gabriel@inconstante.eti.br>
+
+	* sysdeps/powerpc/powerpc64/power6/wcscpy.c (WCSCPY): Define to
+	__wcscpy, then use libc_hidden_def and weak_alias to bind it to
+	__GI___wcscpy and wcscpy.
+
 2019-03-04  Florian Weimer  <fweimer@redhat.com>
 
 	* sysdeps/generic/ldsodefs.h (_dl_sysdep_open_zero_fill): Remove
diff --git a/sysdeps/powerpc/powerpc64/power6/wcscpy.c b/sysdeps/powerpc/powerpc64/power6/wcscpy.c
index 722c8f995b..59cfb28832 100644
--- a/sysdeps/powerpc/powerpc64/power6/wcscpy.c
+++ b/sysdeps/powerpc/powerpc64/power6/wcscpy.c
@@ -1 +1,4 @@
+#define WCSCPY __wcscpy
 #include <sysdeps/powerpc/power6/wcscpy.c>
+libc_hidden_def (__wcscpy)
+weak_alias (__wcscpy, wcscpy)