Message ID | 1512041196-14726-1-git-send-email-siddhesh@sourceware.org |
---|---|
State | New |
Headers | show |
Series | aarch64: Avoid hidden symbols for memcpy/memmove into static binaries | expand |
Ping? On Thursday 30 November 2017 04:56 PM, Siddhesh Poyarekar wrote: > The __GI_* symbol aliases for __memcpy_generic are unnecessary since > they're never used. Add them only for libc.so to avoid PLT. > > * sysdeps/aarch64/multiarch/memcpy_generic.S (__GI_memcpy): > Define only for libc.so. > --- > sysdeps/aarch64/multiarch/memcpy_generic.S | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/sysdeps/aarch64/multiarch/memcpy_generic.S b/sysdeps/aarch64/multiarch/memcpy_generic.S > index 041a779..edb2e52 100644 > --- a/sysdeps/aarch64/multiarch/memcpy_generic.S > +++ b/sysdeps/aarch64/multiarch/memcpy_generic.S > @@ -33,9 +33,11 @@ > # undef libc_hidden_builtin_def > # define libc_hidden_builtin_def(name) > > +# ifdef SHARED > /* It doesn't make sense to send libc-internal memcpy calls through a PLT. */ > .globl __GI_memcpy; __GI_memcpy = __memcpy_generic > .globl __GI_memmove; __GI_memmove = __memmove_generic > +# endif > > #endif > >
On 04/12/17 12:44, Siddhesh Poyarekar wrote: > Ping? > > On Thursday 30 November 2017 04:56 PM, Siddhesh Poyarekar wrote: >> The __GI_* symbol aliases for __memcpy_generic are unnecessary since >> they're never used. Add them only for libc.so to avoid PLT. ... >> +# ifdef SHARED >> /* It doesn't make sense to send libc-internal memcpy calls through a PLT. */ >> .globl __GI_memcpy; __GI_memcpy = __memcpy_generic >> .globl __GI_memmove; __GI_memmove = __memmove_generic >> +# endif >> OK to commit. i was thinking that some existing macro from libc-symbols.h would be better, since those already deal with the #ifdef SHARED (and other cases) i think hidden_ver (__memcpy_generic, memcpy) happens to do the right thing, but it's probably an abuse of that macro.. and it seems we already do similar things in other asm files (which means the libc-symbols.h macros are not that useful..).
diff --git a/sysdeps/aarch64/multiarch/memcpy_generic.S b/sysdeps/aarch64/multiarch/memcpy_generic.S index 041a779..edb2e52 100644 --- a/sysdeps/aarch64/multiarch/memcpy_generic.S +++ b/sysdeps/aarch64/multiarch/memcpy_generic.S @@ -33,9 +33,11 @@ # undef libc_hidden_builtin_def # define libc_hidden_builtin_def(name) +# ifdef SHARED /* It doesn't make sense to send libc-internal memcpy calls through a PLT. */ .globl __GI_memcpy; __GI_memcpy = __memcpy_generic .globl __GI_memmove; __GI_memmove = __memmove_generic +# endif #endif