about summary refs log tree commit diff
path: root/bits
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-04-12 13:32:59 -0400
commit056fc1c0e367b9682d89f60fd5c249f80074ff30 (patch)
tree1f91e73d098f135998f753bd0a6553c54c36162f /bits
parentefb21b5fb27fbad447d9f242436fb591870f0045 (diff)
downloadglibc-056fc1c0e367b9682d89f60fd5c249f80074ff30.tar.gz
glibc-056fc1c0e367b9682d89f60fd5c249f80074ff30.tar.xz
glibc-056fc1c0e367b9682d89f60fd5c249f80074ff30.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 - Manual merge.
Diffstat (limited to 'bits')
-rw-r--r--bits/link_lavcurrent.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/bits/link_lavcurrent.h b/bits/link_lavcurrent.h
index 44fbea1e80..c48835d12b 100644
--- a/bits/link_lavcurrent.h
+++ b/bits/link_lavcurrent.h
@@ -22,4 +22,4 @@
 #endif
 
 /* Version numbers for la_version handshake interface.  */
-#define LAV_CURRENT	1
+#define LAV_CURRENT	2