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 = [


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to