From bc71c2e6d76e3b44d692904d78d814e094bf8661 Mon Sep 17 00:00:00 2001 From: Konrad Sztyber Date: Thu, 2 Sep 2021 13:55:04 +0200 Subject: [PATCH] scripts/trace: add build/lib to LD_LIBRARY_PATH before starting It makes it more convinient for a user to start the script, as it's no longer necessary to update the library path manually. Signed-off-by: Konrad Sztyber Change-Id: I0dbeb54cad2585a50162c91f48c5ef199fa133b9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9440 Tested-by: SPDK CI Jenkins Community-CI: Broadcom CI Reviewed-by: Aleksey Marchuk Reviewed-by: Tomasz Zawadzki Reviewed-by: Krzysztof Karas --- scripts/bpf/trace.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scripts/bpf/trace.py b/scripts/bpf/trace.py index 062a1aa38..95e903ae6 100755 --- a/scripts/bpf/trace.py +++ b/scripts/bpf/trace.py @@ -591,4 +591,14 @@ def main(argv): if __name__ == '__main__': - main(sys.argv[1:]) + # In order for the changes to LD_LIBRARY_PATH to be visible to the loader, + # they need to be applied before starting a process, so we need to + # re-execute the script after updating it. + if os.environ.get('SPDK_BPF_TRACE_PY') is None: + rootdir = f'{os.path.dirname(__file__)}/../..' + os.environ['LD_LIBRARY_PATH'] = ':'.join([os.environ.get('LD_LIBRARY_PATH', ''), + f'{rootdir}/build/lib']) + os.environ['SPDK_BPF_TRACE_PY'] = '1' + os.execv(sys.argv[0], sys.argv) + else: + main(sys.argv[1:])