1234567891011121314151617181920212223242526272829303132333435 |
- #!/usr/bin/env python3
- import imp
- import os
- import shutil
- import sys
- import common
- build = imp.load_source('build', os.path.join(common.root_dir, 'build'))
- run = imp.load_source('run', os.path.join(common.root_dir, 'run'))
- parser = common.get_argparse(
- argparse_args={
- 'description': '''Bisect the Linux kernel on gem5 boots.
- More information at: https://github.com/cirosantilli/linux-kernel-module-cheat#bisection
- '''},
- default_args={
- 'gem5': True,
- 'linux_build_id': 'bisect',
- },
- )
- args = common.setup(parser)
- # We need a clean rebuild because rebuilds at different revisions:
- # - may fail
- # - may not actually rebuild all files, e.g. on header changes
- common.rmrf(common.linux_variant_dir)
- assert build.main(args) == 0
- status = run.main(args, {
- 'eval': 'm5 exit',
- })
- if status == 125 or status == 127:
- status = 1
- sys.exit(status)
|