1234567891011121314151617181920212223242526272829303132333435 |
- #!/usr/bin/env python3
- import imp
- import os
- import shutil
- import sys
- import common
- build_linux = imp.load_source('build-linux', os.path.join(kwargs['root_dir'], 'build_linux'))
- run = imp.load_source('run', os.path.join(kwargs['root_dir'], 'run'))
- parser = self.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={
- 'emulators': ['gem5'],
- 'linux_build_id': 'bisect',
- },
- )
- args = self.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
- self.rmrf(kwargs['linux_build_dir'])
- build_linux.LinuxComponent().do_build(args)
- status = run.main(args, {
- 'eval': 'm5 exit',
- })
- if status == 125 or status == 127:
- status = 1
- sys.exit(status)
|