about summary refs log tree commit diff
path: root/elf/tst-dlopen-nodelete-reloc-mod1.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-01-24 10:46:17 -0300
committerCarlos O'Donell <carlos@redhat.com>2022-03-29 17:02:31 -0400
commit1d1466e7c45a557e2426c650d6fab3c1b80162ec (patch)
tree3d27d3ebcb691afcd2b05a3e6a37099c4b2176d5 /elf/tst-dlopen-nodelete-reloc-mod1.c
parente798a21fef1571bde6a3db549c68e33a5d781a3e (diff)
downloadglibc-1d1466e7c45a557e2426c650d6fab3c1b80162ec.tar.gz
glibc-1d1466e7c45a557e2426c650d6fab3c1b80162ec.tar.xz
glibc-1d1466e7c45a557e2426c650d6fab3c1b80162ec.zip
elf: Issue la_symbind for bind-now (BZ #23734)
The audit symbind callback is not called for binaries built with
-Wl,-z,now or when LD_BIND_NOW=1 is used, nor the PLT tracking callbacks
(plt_enter and plt_exit) since this would change the expected
program semantics (where no PLT is expected) and would have performance
implications (such as for BZ#15533).

LAV_CURRENT is also bumped to indicate the audit ABI change (where
la_symbind flags are set by the loader to indicate no possible PLT
trace).

To handle powerpc64 ELFv1 function descriptor, _dl_audit_symbind
requires to know whether bind-now is used so the symbol value is
updated to function text segment instead of the OPD (for lazy binding
this is done by PPC64_LOAD_FUNCPTR on _dl_runtime_resolve).

Checked on x86_64-linux-gnu, i686-linux-gnu, aarch64-linux-gnu,
powerpc64-linux-gnu.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit 32612615c58b394c3eb09f020f31310797ad3854)

Resolved conflicts:
	NEWS
Diffstat (limited to 'elf/tst-dlopen-nodelete-reloc-mod1.c')
0 files changed, 0 insertions, 0 deletions