aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-11-14 13:48:39 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-11-14 13:48:39 +0000
commitc1b0aadcdfd1b4b56588856cdc3197f4f145677d (patch)
treec40216176f216cce95e072cedc8a34bc7b705be9
parentbf438382bd8ffcc614b01e9a273a577b3ed54f9f (diff)
downloadglibc-c1b0aadcdfd1b4b56588856cdc3197f4f145677d.zip
glibc-c1b0aadcdfd1b4b56588856cdc3197f4f145677d.tar.gz
glibc-c1b0aadcdfd1b4b56588856cdc3197f4f145677d.tar.bz2
Fix build of C mempcpy and stpcpy.
This patch fixes the build of C mempcpy and stpcpy by disabling the redirection to __mempcpy and __stpcpy asm names if NO_MEMPCPY_STPCPY_REDIRECT is defined, and defining that macro in the relevant source files. Tested for powerpc32 that the build is fixed. * include/string.h [NO_MEMPCPY_STPCPY_REDIRECT] (mempcpy): Do not redeclare with asm name. [NO_MEMPCPY_STPCPY_REDIRECT] (stpcpy): Likewise. * string/mempcpy.c (NO_MEMPCPY_STPCPY_REDIRECT): Define before including <string.h>. * string/stpcpy.c (NO_MEMPCPY_STPCPY_REDIRECT): Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c [!NOT_IN_libc] (NO_MEMPCPY_STPCPY_REDIRECT): Likewise. * sysdeps/powerpc/powerpc64/multiarch/mempcpy.c [!NOT_IN_libc] (NO_MEMPCPY_STPCPY_REDIRECT): Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpcpy.c [SHARED && !NOT_IN_libc] (NO_MEMPCPY_STPCPY_REDIRECT): Likewise.
-rw-r--r--ChangeLog15
-rw-r--r--include/string.h3
-rw-r--r--string/mempcpy.c1
-rw-r--r--string/stpcpy.c1
-rw-r--r--sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c1
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/mempcpy.c1
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy.c1
7 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index caf1ce9..8448f28 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2014-11-14 Joseph Myers <joseph@codesourcery.com>
+
+ * include/string.h [NO_MEMPCPY_STPCPY_REDIRECT] (mempcpy): Do not
+ redeclare with asm name.
+ [NO_MEMPCPY_STPCPY_REDIRECT] (stpcpy): Likewise.
+ * string/mempcpy.c (NO_MEMPCPY_STPCPY_REDIRECT): Define before
+ including <string.h>.
+ * string/stpcpy.c (NO_MEMPCPY_STPCPY_REDIRECT): Likewise.
+ * sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
+ [!NOT_IN_libc] (NO_MEMPCPY_STPCPY_REDIRECT): Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
+ [!NOT_IN_libc] (NO_MEMPCPY_STPCPY_REDIRECT): Likewise.
+ * sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
+ [SHARED && !NOT_IN_libc] (NO_MEMPCPY_STPCPY_REDIRECT): Likewise.
+
2014-11-13 Joseph Myers <joseph@codesourcery.com>
* stdlib/strtol.c (__strtol): Use prototype definition.
diff --git a/include/string.h b/include/string.h
index 99cc2d3..172940b 100644
--- a/include/string.h
+++ b/include/string.h
@@ -115,7 +115,8 @@ libc_hidden_builtin_proto (strspn)
libc_hidden_builtin_proto (strstr)
libc_hidden_builtin_proto (ffs)
-#if defined NOT_IN_libc || !defined SHARED
+#if (defined NOT_IN_libc || !defined SHARED) \
+ && !defined NO_MEMPCPY_STPCPY_REDIRECT
/* Redirect calls to __builtin_mempcpy and __builtin_stpcpy to call
__mempcpy and __stpcpy if not inlined. */
extern __typeof (mempcpy) mempcpy __asm__ ("__mempcpy");
diff --git a/string/mempcpy.c b/string/mempcpy.c
index 9749863..aab1bed 100644
--- a/string/mempcpy.c
+++ b/string/mempcpy.c
@@ -19,6 +19,7 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#define NO_MEMPCPY_STPCPY_REDIRECT
#include <string.h>
#undef mempcpy
diff --git a/string/stpcpy.c b/string/stpcpy.c
index fc5ae55..9185acc 100644
--- a/string/stpcpy.c
+++ b/string/stpcpy.c
@@ -19,6 +19,7 @@
# include <config.h>
#endif
+#define NO_MEMPCPY_STPCPY_REDIRECT
#include <string.h>
#undef __stpcpy
diff --git a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
index 38fbcc3..89f4912 100644
--- a/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
+++ b/sysdeps/powerpc/powerpc32/power4/multiarch/mempcpy.c
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#ifndef NOT_IN_libc
+# define NO_MEMPCPY_STPCPY_REDIRECT
# include <string.h>
# include <shlib-compat.h>
# include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
index 38fbcc3..89f4912 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/mempcpy.c
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#ifndef NOT_IN_libc
+# define NO_MEMPCPY_STPCPY_REDIRECT
# include <string.h>
# include <shlib-compat.h>
# include "init-arch.h"
diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
index c7118d5..28153b7 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
+++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy.c
@@ -17,6 +17,7 @@
<http://www.gnu.org/licenses/>. */
#if defined SHARED && !defined NOT_IN_libc
+# define NO_MEMPCPY_STPCPY_REDIRECT
# include <string.h>
# include <shlib-compat.h>
# include "init-arch.h"