Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b83c9d04 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "extract_kernel.py: add support to output compiler information"

parents 2f657188 2c8b8eca
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ COMPRESSION_ALGO = (
# LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
LINUX_BANNER_PREFIX = b'Linux version '
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):
@@ -82,6 +82,14 @@ def dump_version(input_bytes):
  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):
  """
  Dump kernel release, w.x.y-..., from input_bytes. Search for the string
@@ -208,6 +216,13 @@ def main():
                      nargs='?',
                      type=argparse.FileType('wb'),
                      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',
                      help='Decompression tools to use. If not specified, PATH '
                           'is searched.',
@@ -234,6 +249,10 @@ def main():
                      "kernel release in {}".format(args.input.name)):
    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