systemc, scons: Link systemc tests against the shared gem5 library.
Otherwise, having hundreds of statically linked gem5s takes up a huge amount of space, and all those repeated linkings brings the mightiest workstation to its knees with sufficient parallelism, or will take forever without it. Change-Id: I4c358b1a50c5e2b0027ac72423f887e24c786b19 Reviewed-on: https://gem5-review.googlesource.com/10959 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
This commit is contained in:
@@ -62,10 +62,9 @@ if env['USE_SYSTEMC']:
|
||||
}
|
||||
|
||||
ext_dir = Dir('..').Dir('ext')
|
||||
class SystemCTestBin(UnitTest):
|
||||
class SystemCTestBin(Executable):
|
||||
def __init__(self, test):
|
||||
super(SystemCTestBin, self).__init__(
|
||||
test.target, *test.sources, main=True)
|
||||
super(SystemCTestBin, self).__init__(test.target, *test.sources)
|
||||
|
||||
@classmethod
|
||||
def declare_all(cls, env):
|
||||
@@ -80,6 +79,14 @@ if env['USE_SYSTEMC']:
|
||||
|
||||
super(SystemCTestBin, cls).declare_all(env)
|
||||
|
||||
def declare(self, env):
|
||||
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']
|
||||
return super(SystemCTestBin, self).declare(env, objs)
|
||||
|
||||
tests = []
|
||||
def new_test(dirname, name):
|
||||
test = SystemCTest(dirname, name)
|
||||
|
||||
Reference in New Issue
Block a user