diff options
author | Gabe Black <gabeblack@google.com> | 2018-08-27 20:08:05 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2018-09-26 00:03:24 +0000 |
commit | 542f62aa6f285c51119ce281bd76781b8b6e0776 (patch) | |
tree | fa96719c307fdfe188b11f40def8a549065bfedc /src/systemc/tests | |
parent | ee30b44ad5d8913fb0869f75a1c78d87072e277a (diff) | |
download | gem5-542f62aa6f285c51119ce281bd76781b8b6e0776.tar.xz |
systemc: Change the test binaries to use rpath.
Use rpath to link the gem5 dynamic library into the systemc test
binaries so that they don't have to be run from a particular directory
to resolve all their linking dependencies.
Change-Id: I66b18c23ae6bbf32a959022f8789fc8bdd3a6c6b
Reviewed-on: https://gem5-review.googlesource.com/12270
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc/tests')
-rw-r--r-- | src/systemc/tests/SConscript | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/systemc/tests/SConscript b/src/systemc/tests/SConscript index 086ffee26..74ec0e050 100644 --- a/src/systemc/tests/SConscript +++ b/src/systemc/tests/SConscript @@ -79,14 +79,24 @@ if env['USE_SYSTEMC']: env.Append(CPPPATH=test_dir.Dir('include')) env.Append(CPPPATH=ext_dir) + shared_lib_path = env['SHARED_LIB'][0].abspath + sl_dir, sl_base = os.path.split(shared_lib_path) + env.Append(LIBPATH=[sl_dir], LIBS=[sl_base]) + super(SystemCTestBin, cls).declare_all(env) def declare(self, env): + env = env.Clone() sources = list(self.sources) for f in self.filters: sources = Source.all.apply_filter(f) objs = self.srcs_to_objs(env, sources) - objs = objs + env['SHARED_LIB'] + env['MAIN_OBJS'] + objs = objs + env['MAIN_OBJS'] + relpath = os.path.relpath( + env['SHARED_LIB'][0].dir.abspath, + self.path(env).dir.abspath) + env.Append(LINKFLAGS=Split('-z origin')) + env.Append(RPATH=env.Literal(os.path.join('\\$$ORIGIN', relpath))) return super(SystemCTestBin, self).declare(env, objs) tests = [] |