about summary refs log tree commit diff
path: root/include
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 /include
parentbf438382bd8ffcc614b01e9a273a577b3ed54f9f (diff)
downloadglibc-c1b0aadcdfd1b4b56588856cdc3197f4f145677d.tar.gz
glibc-c1b0aadcdfd1b4b56588856cdc3197f4f145677d.tar.xz
glibc-c1b0aadcdfd1b4b56588856cdc3197f4f145677d.zip
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.
Diffstat (limited to 'include')
-rw-r--r--include/string.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/string.h b/include/string.h
index 99cc2d3f59..172940b759 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");