Unset and forward user's LD_LIBRARY_PATH in cocotb
- If LD_LIBRARY_PATH is set in the environment, it overrides our path
from extra_env which we use to help Verilator find the VPI libraries,
so remove it from the environment.
- Add the LD_LIBRARY_PATH (if any) that was in the env already to our
new LD_LIBRARY_PATH -- should avoid breakage on systems with fun
configs.
Change-Id: Icdf712034db7c2e37c9c8f3d9bdee731f10091db
diff --git a/external/0006-Separate-build-from-test-for-Verilator.patch b/external/0006-Separate-build-from-test-for-Verilator.patch
index cfc36c4..85ba457 100644
--- a/external/0006-Separate-build-from-test-for-Verilator.patch
+++ b/external/0006-Separate-build-from-test-for-Verilator.patch
@@ -1,4 +1,4 @@
-From 30c00282d60839706f72e21aa5903f6443286af2 Mon Sep 17 00:00:00 2001
+From 4e7de9e20892973b46be2fb9761a670cf0509003 Mon Sep 17 00:00:00 2001
From: Alex Van Damme <atv@google.com>
Date: Thu, 10 Jul 2025 16:03:33 -0700
Subject: [PATCH 6/6] Separate build from test for Verilator
@@ -6,8 +6,8 @@
---
cocotb/BUILD.bazel | 2 +-
cocotb/cocotb.bzl | 9 ++++++++-
- cocotb/cocotb_wrapper.py | 16 +++++++++++++++-
- 3 files changed, 24 insertions(+), 3 deletions(-)
+ cocotb/cocotb_wrapper.py | 17 ++++++++++++++++-
+ 3 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/cocotb/BUILD.bazel b/cocotb/BUILD.bazel
index ed8a3a0..72b19fb 100644
@@ -55,7 +55,7 @@
doc = "Verilog parameters or VHDL generics",
default = {},
diff --git a/cocotb/cocotb_wrapper.py b/cocotb/cocotb_wrapper.py
-index ce392a9..fce1b6e 100644
+index ce392a9..1703e4f 100644
--- a/cocotb/cocotb_wrapper.py
+++ b/cocotb/cocotb_wrapper.py
@@ -165,6 +165,11 @@ def cocotb_argument_parser():
@@ -70,7 +70,7 @@
return parser
-@@ -188,7 +193,16 @@ if __name__ == "__main__":
+@@ -188,7 +193,17 @@ if __name__ == "__main__":
cocotb_tools.runner.MAX_PARALLEL_BUILD_JOBS = 32
runner = get_runner(args.sim)
@@ -82,7 +82,8 @@
+ r = runfiles.Create()
+ sim_build = os.path.dirname(r.Rlocation(f"kelvin_hw/{args.model}"))
+ test_flags['build_dir'] = sim_build
-+ test_flags['extra_env']['LD_LIBRARY_PATH'] = r.Rlocation("kelvin_hw/external/kelvin_pip_deps_cocotb/cocotb/libs")
++ test_flags['extra_env']['LD_LIBRARY_PATH'] = "{}:{}".format(r.Rlocation("kelvin_hw/external/kelvin_pip_deps_cocotb/cocotb/libs"), os.environ.get("LD_LIBRARY_PATH", ""))
++ os.environ.pop('LD_LIBRARY_PATH', None)
+ else:
+ runner.build(**build_flags)
results_xml = runner.test(**test_flags)