diff options
| author | Florian Fischer <florian.fl.fischer@fau.de> | 2019-08-12 11:10:15 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fl.fischer@fau.de> | 2019-08-12 11:10:15 +0200 |
| commit | c6a768c12ce7e83631d08f53937a075c4f76e2d5 (patch) | |
| tree | afb1b8b66d78aba2cab650c897cd3e69b5287ddc /src/benchmark.py | |
| parent | 4fd995ea5a2f9fada2e298bb1b828e510eb2ad29 (diff) | |
| download | allocbench-c6a768c12ce7e83631d08f53937a075c4f76e2d5.tar.gz allocbench-c6a768c12ce7e83631d08f53937a075c4f76e2d5.zip | |
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.
Diffstat (limited to 'src/benchmark.py')
| -rw-r--r-- | src/benchmark.py | 8 |
1 files changed, 7 insertions, 1 deletions
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) |
