From c6a768c12ce7e83631d08f53937a075c4f76e2d5 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Mon, 12 Aug 2019 11:10:15 +0200 Subject: use LD_LIBRARY_PATH for glibc instead of calling its loader Calling the loader fails on non ELF executables. Exec, formerly run_cmd, now takes two options: -l LD_LIBRARY_PATH, -p LD_PRELOAD. -p sets LD_PRELOAD and -l LD_LIBRARY_PATH before executing the rest of argv. glibc no longer uses cmd_prefix in favor of LD_LIBRARY_PATH. --- src/benchmark.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/benchmark.py') diff --git a/src/benchmark.py b/src/benchmark.py index fa99c65..c869061 100644 --- a/src/benchmark.py +++ b/src/benchmark.py @@ -293,6 +293,10 @@ class Benchmark (object): env["LD_PRELOAD"] += " " + "build/print_status_on_exit.so" env["LD_PRELOAD"] += " " + alloc["LD_PRELOAD"] + if "LD_LIBRARY_PATH" in alloc: + env["LD_LIBRARY_PATH"] = env.get("LD_LIBRARY_PATH", "") + env["LD_LIBRARY_PATH"] += ":" + alloc["LD_LIBRARY_PATH"] + self.start_servers(alloc_name=alloc_name, alloc=alloc, env=env) # Preallocator hook @@ -322,7 +326,9 @@ class Benchmark (object): argv.extend(prefix_argv) argv.extend(measure_argv) - argv.extend(["build/run_cmd", env["LD_PRELOAD"]]) + argv.extend(["build/exec", "-p", env["LD_PRELOAD"]]) + if alloc["LD_LIBRARY_PATH"] != "": + argv.extend(["-l", env["LD_LIBRARY_PATH"]]) argv.extend(cmd_argv) -- cgit v1.2.3