From 063f9ba220f434c7f30dd65c4cff17c0c458a7cf Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Wed, 30 Jun 2021 10:24:09 -0300 Subject: 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 Checked on x86_64-linux-gnu, i686-linux-gnu, and aarch64-linux-gnu. Reviewed-by: Florian Weimer --- NEWS | 3 +++ 1 file changed, 3 insertions(+) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 9294a7b..ed8ac0d 100644 --- a/NEWS +++ b/NEWS @@ -230,6 +230,9 @@ Major new features: execute programs that do not have any dynamic dependency (that is, they are statically linked). This feature is Linux-specific. +* The audit libraries will avoid unnecessary slowdown if it is not required + PLT tracking (by not implementing the la_pltenter or la_pltexit callbacks). + Deprecated and removed features, and other changes affecting compatibility: * The function pthread_mutex_consistent_np has been deprecated; programs -- cgit v1.1