[clang] f3d4d11 - [clang][cmake] Fix support for dynamic libraries in CLANG_BOLT
via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 3 09:09:58 PST 2025
Author: serge-sans-paille
Date: 2025-03-03T18:05:18+01:00
New Revision: f3d4d1154799b32512b0fed52c9938f76b9264b5
URL: https://github.com/llvm/llvm-project/commit/f3d4d1154799b32512b0fed52c9938f76b9264b5
DIFF: https://github.com/llvm/llvm-project/commit/f3d4d1154799b32512b0fed52c9938f76b9264b5.diff
LOG: [clang][cmake] Fix support for dynamic libraries in CLANG_BOLT
Simpler detection of dynamic library operands as the readelf one seems
to be unreliable (works on my setup, not on buildbots).
This is a follow-up to #127020
Added:
Modified:
clang/utils/perf-training/perf-helper.py
Removed:
################################################################################
diff --git a/clang/utils/perf-training/perf-helper.py b/clang/utils/perf-training/perf-helper.py
index 7a049e71d9826..80c6356d0497c 100644
--- a/clang/utils/perf-training/perf-helper.py
+++ b/clang/utils/perf-training/perf-helper.py
@@ -628,15 +628,14 @@ def bolt_optimize(args):
sys.stdout.write(line)
process.check_returncode()
- output = subprocess.check_output(
- [opts.readelf, "--file-header", input], universal_newlines=True
- )
- if re.search(r"Type:\s*((Shared)|(DYN))", output):
- # force using the instrumented version
+ # Shared library must be preloaded to be covered.
+ if ".so" in input:
preloads.append(instrumented_output)
if preloads:
- print("Patching execution environment for dynamic library")
+ print(
+ f"Patching execution environment for dynamic libraries: {' '.join(preloads)}"
+ )
environ["LD_PRELOAD"] = os.pathsep.join(preloads)
args = [
More information about the cfe-commits
mailing list