diff mbox series

aarch64: Accept PLT calls to __getauxval within libc.so

Message ID 87h7wlzbji.fsf@mid.deneb.enyo.de
State New
Headers show
Series aarch64: Accept PLT calls to __getauxval within libc.so | expand

Commit Message

Florian Weimer May 12, 2020, 10:34 a.m. UTC
When using outline atomics (-moutline-atomics, the default for ARMv8-A
starting with GCC 10), libgcc contains an ELF constructor which calls
__getauxval.  This code is built outside of glibc, so none of its
internal PLT avoidance schemes can be applied to it.  This change
suppresses the elf/check-localplt failure.

-----
 sysdeps/unix/sysv/linux/aarch64/localplt.data | 3 +++
 1 file changed, 3 insertions(+)

Comments

Szabolcs Nagy May 12, 2020, 10:46 a.m. UTC | #1
The 05/12/2020 12:34, Florian Weimer wrote:
> When using outline atomics (-moutline-atomics, the default for ARMv8-A
> starting with GCC 10), libgcc contains an ELF constructor which calls
> __getauxval.  This code is built outside of glibc, so none of its
> internal PLT avoidance schemes can be applied to it.  This change
> suppresses the elf/check-localplt failure.

This is ok thanks.

> 
> -----
>  sysdeps/unix/sysv/linux/aarch64/localplt.data | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/sysdeps/unix/sysv/linux/aarch64/localplt.data b/sysdeps/unix/sysv/linux/aarch64/localplt.data
> index 56f362d3a7..2c14b652ef 100644
> --- a/sysdeps/unix/sysv/linux/aarch64/localplt.data
> +++ b/sysdeps/unix/sysv/linux/aarch64/localplt.data
> @@ -7,6 +7,9 @@ libc.so: malloc
>  libc.so: memalign
>  libc.so: realloc
>  libm.so: matherr
> +# If outline atomics are used, libgcc (built outside of glibc) may
> +# call __getauxval using the PLT.
> +libc.so: __getauxval ?
>  # The dynamic loader needs __tls_get_addr for TLS.
>  ld.so: __tls_get_addr
>  # The TLS-enabled version of these functions is interposed from libc.so.

--
diff mbox series

Patch

diff --git a/sysdeps/unix/sysv/linux/aarch64/localplt.data b/sysdeps/unix/sysv/linux/aarch64/localplt.data
index 56f362d3a7..2c14b652ef 100644
--- a/sysdeps/unix/sysv/linux/aarch64/localplt.data
+++ b/sysdeps/unix/sysv/linux/aarch64/localplt.data
@@ -7,6 +7,9 @@  libc.so: malloc
 libc.so: memalign
 libc.so: realloc
 libm.so: matherr
+# If outline atomics are used, libgcc (built outside of glibc) may
+# call __getauxval using the PLT.
+libc.so: __getauxval ?
 # The dynamic loader needs __tls_get_addr for TLS.
 ld.so: __tls_get_addr
 # The TLS-enabled version of these functions is interposed from libc.so.