aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-03-28 22:26:38 -0700
committerDavid S. Miller <davem@davemloft.net>2012-03-28 22:26:38 -0700
commite5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac (patch)
tree6bddb6fb2b344fb2a934b8674a2f002d63b79cd7
parent88570753eca62402d2c52a64a59330a650f3d0a9 (diff)
downloadglibc-e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac.zip
glibc-e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac.tar.gz
glibc-e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac.tar.bz2
Do not elide the libc hidden def of sparc's memset/memcpy when multiarching.
* sysdeps/sparc/sparc64/multiarch/memcpy.S: Provide a hidden def to the IFUNC routine in the libc case. * sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
-rw-r--r--ChangeLog4
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memcpy.S10
-rw-r--r--sysdeps/sparc/sparc64/multiarch/memset.S10
3 files changed, 14 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 506babf..555c395 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2012-03-28 David S. Miller <davem@davemloft.net>
+ * sysdeps/sparc/sparc64/multiarch/memcpy.S: Provide a hidden def to
+ the IFUNC routine in the libc case.
+ * sysdeps/sparc/sparc64/multiarch/memcpy.S: Likewise.
+
* sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memset.c: New file.
* sysdeps/sparc/sparc32/sparcv9/multiarch/rtld-memcpy.c: New file.
* sysdeps/sparc/sparc32/sparcv9/rtld-memset.c: New file.
diff --git a/sysdeps/sparc/sparc64/multiarch/memcpy.S b/sysdeps/sparc/sparc64/multiarch/memcpy.S
index 36c4886..0f3751e 100644
--- a/sysdeps/sparc/sparc64/multiarch/memcpy.S
+++ b/sysdeps/sparc/sparc64/multiarch/memcpy.S
@@ -1,5 +1,5 @@
/* Multiple versions of memcpy
- Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
Contributed by David S. Miller (davem@davemloft.net)
This file is part of the GNU C Library.
@@ -72,10 +72,10 @@ ENTRY(memcpy)
mov %o1, %o0
END(memcpy)
-# undef libc_hidden_builtin_def
-/* IFUNC doesn't work with the hidden functions in a shared library. */
-# define libc_hidden_builtin_def(name) \
- .globl __GI_memcpy; __GI_memcpy = __memcpy_ultra1
+libc_hidden_builtin_def (memcpy)
+
+#undef libc_hidden_builtin_def
+#define libc_hidden_builtin_def(name)
#define memcpy __memcpy_ultra1
diff --git a/sysdeps/sparc/sparc64/multiarch/memset.S b/sysdeps/sparc/sparc64/multiarch/memset.S
index c717f0c..26cc669 100644
--- a/sysdeps/sparc/sparc64/multiarch/memset.S
+++ b/sysdeps/sparc/sparc64/multiarch/memset.S
@@ -1,5 +1,5 @@
/* Multiple versions of memset and bzero
- Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
Contributed by David S. Miller (davem@davemloft.net)
This file is part of the GNU C Library.
@@ -88,10 +88,10 @@ weak_alias (__bzero, bzero)
# undef weak_alias
# define weak_alias(a, b)
-# undef libc_hidden_builtin_def
-/* IFUNC doesn't work with the hidden functions in a shared library. */
-# define libc_hidden_builtin_def(name) \
- .globl __GI_memset; __GI_memset = __memset_ultra1
+libc_hidden_builtin_def (memset)
+
+#undef libc_hidden_builtin_def
+#define libc_hidden_builtin_def(name)
#define memset __memset_ultra1
#define __bzero __bzero_ultra1