add --custom-config-file-gem5 option to build gem5 kernels more easily

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2018-12-04 00:00:01 +00:00
parent f03e6ea2eb
commit f8d9514e79
2 changed files with 16 additions and 5 deletions

View File

@@ -3495,7 +3495,7 @@ git -C "$(./getvar linux_source_dir)" fetch https://gem5.googlesource.com/arm/li
git -C "$(./getvar linux_source_dir)" checkout gem5/v4.15 git -C "$(./getvar linux_source_dir)" checkout gem5/v4.15
./build-linux \ ./build-linux \
--arch arm \ --arch arm \
--custom-config-file "$(./getvar linux_source_dir)/arch/arm/configs/gem5_defconfig" \ --custom-config-file-gem5 \
--linux-build-id gem5-v4.15 \ --linux-build-id gem5-v4.15 \
; ;
git -C "$(./getvar linux_source_dir)" checkout - git -C "$(./getvar linux_source_dir)" checkout -
@@ -3571,7 +3571,7 @@ git -C "$(./getvar linux_source_dir)" checkout gem5/v4.15
./build-linux \ ./build-linux \
--arch aarch64 \ --arch aarch64 \
--config-fragment linux_config/display \ --config-fragment linux_config/display \
--custom-config-file "$(./getvar linux_source_dir)/arch/arm64/configs/gem5_defconfig" \ --custom-config-file-gem5 \
--linux-build-id gem5-v4.15 \ --linux-build-id gem5-v4.15 \
; ;
git -C "$(./getvar linux_source_dir)" checkout - git -C "$(./getvar linux_source_dir)" checkout -

View File

@@ -28,6 +28,13 @@ Pass multiple times to use multiple fragment files.
Ignore all default kernel configurations and use this file instead. Ignore all default kernel configurations and use this file instead.
Still uses options explicitly passed with `--config` and Still uses options explicitly passed with `--config` and
`--config-fragment` on top of it. `--config-fragment` on top of it.
'''
)
parser.add_argument(
'--custom-config-file-gem5', default=False, action='store_true',
help='''\
Use the gem5 Linux kernel fork config as the custom config file.
Ignore --custom-config-file.
''' '''
) )
parser.add_argument( parser.add_argument(
@@ -77,10 +84,14 @@ Configure the kernel, but don't build it.
'CC={}'.format(cc), common.Newline, 'CC={}'.format(cc), common.Newline,
'O={}'.format(build_dir), common.Newline, 'O={}'.format(build_dir), common.Newline,
] + verbose ] + verbose
if args.custom_config_file is not None: if args.custom_config_file_gem5:
if not os.path.exists(args.custom_config_file): custom_config_file = os.path.join(common.linux_source_dir, 'arch', common.linux_arch, 'configs', 'gem5_defconfig')
else:
custom_config_file = args.custom_config_file
if custom_config_file is not None:
if not os.path.exists(custom_config_file):
raise Exception('config fragment file does not exist: {}'.format(args.custom_config_file)) raise Exception('config fragment file does not exist: {}'.format(args.custom_config_file))
base_config_file = args.custom_config_file base_config_file = custom_config_file
config_fragments = [] config_fragments = []
else: else:
base_config_file = os.path.join(common.linux_config_dir, 'buildroot-{}'.format(args.arch)) base_config_file = os.path.join(common.linux_config_dir, 'buildroot-{}'.format(args.arch))