diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2022-03-15 08:41:43 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2024-04-17 16:12:40 -0300 |
commit | 5e40fc59009c7247b974d161ba50da4c237b66a6 (patch) | |
tree | 22df877a61588061198c5a61c2eda81b651095be /sysdeps/unix | |
parent | 706b3d7a47bb50f3534551f41e39bbaa9a5b9924 (diff) | |
download | glibc-5e40fc59009c7247b974d161ba50da4c237b66a6.zip glibc-5e40fc59009c7247b974d161ba50da4c237b66a6.tar.gz glibc-5e40fc59009c7247b974d161ba50da4c237b66a6.tar.bz2 |
string: Use asm alias instead of symbol redirections for stpcpy and mempcpy
Commit 939da411433 added symbols redirections to handle ISO C
namespace, however some compiler does not support to redeclare the
function prototype. Moving these defintions to exported header
it not a good practice (it exposes a internal implementation and
it would require to add macros to define it only internally).
Instead this patch replaces the symbol redirections by direct asm
aliases, as done to handle libcall generation done by compiler on
some loop optimizations. The only issue is sparc binutils generates
an extra __mempcpy plt not called anywhere in the code, which indicates
a binutils issue (this is added in the localplt.data for now).
Checked on all affected ABIs.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data index b5fc6d9..327276d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data @@ -17,4 +17,7 @@ libc.so: calloc libc.so: free libc.so: malloc libc.so: realloc +# Unreferenced PLT created by the symbols aliases used to redirect +# the compiler generated mempcpy/stpcyp calls done by builtin usage. +libc.so: __mempcpy libm.so: matherr diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data index 15c0f8c..e7ab61d 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data @@ -17,4 +17,7 @@ libc.so: calloc libc.so: free libc.so: malloc libc.so: realloc +# Unreferenced PLT created by the symbols aliases used to redirect +# the compiler generated mempcpy/stpcyp calls done by builtin usage. +libc.so: __mempcpy libm.so: matherr |