extract_kernel.py: add support to output compiler information
Test: tested with android-mainline gki kernel from https://android.googlesource.com/kernel/prebuilts/mainline/arm64/ Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org> Change-Id: Ibf3eeb3679b233cd0d54501d385f442e0c0c34ec
This commit is contained in:
@@ -40,7 +40,7 @@ COMPRESSION_ALGO = (
|
|||||||
# LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
|
# LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
|
||||||
LINUX_BANNER_PREFIX = b'Linux version '
|
LINUX_BANNER_PREFIX = b'Linux version '
|
||||||
LINUX_BANNER_REGEX = LINUX_BANNER_PREFIX + \
|
LINUX_BANNER_REGEX = LINUX_BANNER_PREFIX + \
|
||||||
r'(?P<release>(?P<version>[0-9]+[.][0-9]+[.][0-9]+).*) \(.*@.*\) \(.*\) .*\n'
|
r'(?P<release>(?P<version>[0-9]+[.][0-9]+[.][0-9]+).*) \(.*@.*\) \((?P<compiler>.*)\) .*\n'
|
||||||
|
|
||||||
|
|
||||||
def get_from_release(input_bytes, start_idx, key):
|
def get_from_release(input_bytes, start_idx, key):
|
||||||
@@ -82,6 +82,14 @@ def dump_version(input_bytes):
|
|||||||
return dump_from_release(input_bytes, "version")
|
return dump_from_release(input_bytes, "version")
|
||||||
|
|
||||||
|
|
||||||
|
def dump_compiler(input_bytes):
|
||||||
|
"""
|
||||||
|
Dump kernel version, w.x.y, from input_bytes. Search for the string
|
||||||
|
"Linux version " and do pattern matching after it. See LINUX_BANNER_REGEX.
|
||||||
|
"""
|
||||||
|
return dump_from_release(input_bytes, "compiler")
|
||||||
|
|
||||||
|
|
||||||
def dump_release(input_bytes):
|
def dump_release(input_bytes):
|
||||||
"""
|
"""
|
||||||
Dump kernel release, w.x.y-..., from input_bytes. Search for the string
|
Dump kernel release, w.x.y-..., from input_bytes. Search for the string
|
||||||
@@ -208,6 +216,13 @@ def main():
|
|||||||
nargs='?',
|
nargs='?',
|
||||||
type=argparse.FileType('wb'),
|
type=argparse.FileType('wb'),
|
||||||
const=sys.stdout)
|
const=sys.stdout)
|
||||||
|
parser.add_argument('--output-compiler',
|
||||||
|
help='If specified, write the compiler information. Use stdout if no file '
|
||||||
|
'is specified.',
|
||||||
|
metavar='FILE',
|
||||||
|
nargs='?',
|
||||||
|
type=argparse.FileType('wb'),
|
||||||
|
const=sys.stdout)
|
||||||
parser.add_argument('--tools',
|
parser.add_argument('--tools',
|
||||||
help='Decompression tools to use. If not specified, PATH '
|
help='Decompression tools to use. If not specified, PATH '
|
||||||
'is searched.',
|
'is searched.',
|
||||||
@@ -234,6 +249,10 @@ def main():
|
|||||||
"kernel release in {}".format(args.input.name)):
|
"kernel release in {}".format(args.input.name)):
|
||||||
ret = 1
|
ret = 1
|
||||||
|
|
||||||
|
if not dump_to_file(args.output_compiler, dump_compiler, input_bytes,
|
||||||
|
"kernel compiler in {}".format(args.input.name)):
|
||||||
|
ret = 1
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user