about summary refs log tree commit diff
path: root/elf/dl-cache.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-06-30 10:24:09 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-12-28 08:40:38 -0300
commit063f9ba220f434c7f30dd65c4cff17c0c458a7cf (patch)
tree00737e23f3b48e8d8dd338f16fc8cb98f0e6c051 /elf/dl-cache.c
parent8c0664e2b861fd3789602cc0b0b1922b0e20cb3a (diff)
downloadglibc-063f9ba220f434c7f30dd65c4cff17c0c458a7cf.tar.gz
glibc-063f9ba220f434c7f30dd65c4cff17c0c458a7cf.tar.xz
glibc-063f9ba220f434c7f30dd65c4cff17c0c458a7cf.zip
elf: Avoid unnecessary slowdown from profiling with audit (BZ#15533)
The rtld-audit interfaces introduces a slowdown due to enabling
profiling instrumentation (as if LD_AUDIT implied LD_PROFILE).
However, instrumenting is only necessary if one of audit libraries
provides PLT callbacks (la_pltenter or la_pltexit symbols).  Otherwise,
the slowdown can be avoided.

The following patch adjusts the logic that enables profiling to iterate
over all audit modules and check if any of those provides a PLT hook.
To keep la_symbind to work even without PLT callbacks, _dl_fixup now
calls the audit callback if the modules implements it.

Co-authored-by: Alexander Monakov <amonakov@ispras.ru>

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

Reviewed-by: Florian Weimer <fweimer@redhat.com>
Diffstat (limited to 'elf/dl-cache.c')
0 files changed, 0 insertions, 0 deletions