mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
Update build-m5 to the new scons build system
Fix https://github.com/cirosantilli/linux-kernel-module-cheat/issues/128
This commit is contained in:
18
build-m5
18
build-m5
@@ -16,18 +16,12 @@ See: https://cirosantilli.com/linux-kernel-module-cheat#gem5-m5-executable
|
||||
|
||||
def _get_make_cmd(self):
|
||||
allowed_toolchains = ['buildroot']
|
||||
if self.env['arch'] == 'x86_64':
|
||||
arch = 'x86'
|
||||
else:
|
||||
arch = self.env['arch']
|
||||
return [
|
||||
'make', LF,
|
||||
'scons', LF,
|
||||
'-C', self.env['gem5_m5_source_dir'], LF,
|
||||
'-j', str(self.env['nproc']), LF,
|
||||
'-f', 'Makefile.{}'.format(arch), LF,
|
||||
'CC={}'.format(self.env['gcc_path']), LF,
|
||||
'CROSS_COMPILE={}'.format(self.env['toolchain_prefix_dash']), LF,
|
||||
'LD={}'.format(self.env['ld_path']), LF,
|
||||
'PWD={}'.format(self.env['gem5_m5_source_dir']), LF,
|
||||
self.env['gem5_m5_source_dir_build'], LF
|
||||
]
|
||||
|
||||
def build(self):
|
||||
@@ -37,18 +31,16 @@ See: https://cirosantilli.com/linux-kernel-module-cheat#gem5-m5-executable
|
||||
self.clean()
|
||||
self.sh.run_cmd(
|
||||
self._get_make_cmd(),
|
||||
cwd=self.env['gem5_m5_source_dir'],
|
||||
)
|
||||
os.makedirs(self.env['out_rootfs_overlay_bin_dir'], exist_ok=True)
|
||||
self.sh.cp(
|
||||
os.path.join(self.env['gem5_m5_source_dir'], 'm5'),
|
||||
self.env['gem5_m5_source_dir_build'],
|
||||
self.env['out_rootfs_overlay_bin_dir']
|
||||
)
|
||||
|
||||
def clean(self):
|
||||
self.sh.run_cmd(
|
||||
self._get_make_cmd() + ['clean', LF],
|
||||
cwd=self.env['gem5_m5_source_dir'],
|
||||
self._get_make_cmd() + ['--clean', LF],
|
||||
)
|
||||
return None
|
||||
|
||||
|
||||
@@ -915,6 +915,11 @@ Incompatible archs are skipped.
|
||||
else:
|
||||
env['gem5_source_dir'] = env['gem5_default_source_dir']
|
||||
env['gem5_m5_source_dir'] = join(env['gem5_source_dir'], 'util', 'm5')
|
||||
if self.env['arch'] == 'x86_64':
|
||||
env['gem5_m5_source_dir_build_arch'] = 'x86'
|
||||
else:
|
||||
env['gem5_m5_source_dir_build_arch'] = env['arch']
|
||||
env['gem5_m5_source_dir_build'] = join(env['gem5_m5_source_dir'], 'build', env['gem5_m5_source_dir_build_arch'], 'out', 'm5')
|
||||
env['gem5_config_dir'] = join(env['gem5_source_dir'], 'configs')
|
||||
env['gem5_se_file'] = join(env['gem5_config_dir'], 'example', 'se.py')
|
||||
env['gem5_fs_file'] = join(env['gem5_config_dir'], 'example', 'fs.py')
|
||||
|
||||
Reference in New Issue
Block a user