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):
|
def _get_make_cmd(self):
|
||||||
allowed_toolchains = ['buildroot']
|
allowed_toolchains = ['buildroot']
|
||||||
if self.env['arch'] == 'x86_64':
|
|
||||||
arch = 'x86'
|
|
||||||
else:
|
|
||||||
arch = self.env['arch']
|
|
||||||
return [
|
return [
|
||||||
'make', LF,
|
'scons', LF,
|
||||||
|
'-C', self.env['gem5_m5_source_dir'], LF,
|
||||||
'-j', str(self.env['nproc']), 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,
|
'CROSS_COMPILE={}'.format(self.env['toolchain_prefix_dash']), LF,
|
||||||
'LD={}'.format(self.env['ld_path']), LF,
|
self.env['gem5_m5_source_dir_build'], LF
|
||||||
'PWD={}'.format(self.env['gem5_m5_source_dir']), LF,
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
@@ -37,18 +31,16 @@ See: https://cirosantilli.com/linux-kernel-module-cheat#gem5-m5-executable
|
|||||||
self.clean()
|
self.clean()
|
||||||
self.sh.run_cmd(
|
self.sh.run_cmd(
|
||||||
self._get_make_cmd(),
|
self._get_make_cmd(),
|
||||||
cwd=self.env['gem5_m5_source_dir'],
|
|
||||||
)
|
)
|
||||||
os.makedirs(self.env['out_rootfs_overlay_bin_dir'], exist_ok=True)
|
os.makedirs(self.env['out_rootfs_overlay_bin_dir'], exist_ok=True)
|
||||||
self.sh.cp(
|
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']
|
self.env['out_rootfs_overlay_bin_dir']
|
||||||
)
|
)
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
self.sh.run_cmd(
|
self.sh.run_cmd(
|
||||||
self._get_make_cmd() + ['clean', LF],
|
self._get_make_cmd() + ['--clean', LF],
|
||||||
cwd=self.env['gem5_m5_source_dir'],
|
|
||||||
)
|
)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@@ -915,6 +915,11 @@ Incompatible archs are skipped.
|
|||||||
else:
|
else:
|
||||||
env['gem5_source_dir'] = env['gem5_default_source_dir']
|
env['gem5_source_dir'] = env['gem5_default_source_dir']
|
||||||
env['gem5_m5_source_dir'] = join(env['gem5_source_dir'], 'util', 'm5')
|
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_config_dir'] = join(env['gem5_source_dir'], 'configs')
|
||||||
env['gem5_se_file'] = join(env['gem5_config_dir'], 'example', 'se.py')
|
env['gem5_se_file'] = join(env['gem5_config_dir'], 'example', 'se.py')
|
||||||
env['gem5_fs_file'] = join(env['gem5_config_dir'], 'example', 'fs.py')
|
env['gem5_fs_file'] = join(env['gem5_config_dir'], 'example', 'fs.py')
|
||||||
|
|||||||
Reference in New Issue
Block a user