diff options
author | David S. Miller <davem@davemloft.net> | 2012-03-28 22:26:38 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-28 22:26:38 -0700 |
commit | e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac (patch) | |
tree | 6bddb6fb2b344fb2a934b8674a2f002d63b79cd7 | |
parent | 88570753eca62402d2c52a64a59330a650f3d0a9 (diff) | |
download | glibc-e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac.tar.gz glibc-e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac.tar.xz glibc-e5aa83e16d02bc8f1b1a352f83e12f3f14c4d4ac.zip |
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-- | ChangeLog | 4 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/memcpy.S | 10 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/multiarch/memset.S | 10 |
3 files changed, 14 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index 506babf559..555c3957f9 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 36c488672d..0f3751e5e7 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 c717f0c9a5..26cc669d6f 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 |