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

Commit 1726b517 authored by Spandan Das's avatar Spandan Das Committed by Automerger Merge Worker
Browse files

Merge "Migrate check_elf_file.py to python3" am: 03b846ff am: 222612ec

parents 0d5554d1 222612ec
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -614,7 +614,7 @@ TUNE2FS := $(HOST_OUT_EXECUTABLES)/tune2fs$(HOST_EXECUTABLE_SUFFIX)
JARJAR := $(HOST_OUT_JAVA_LIBRARIES)/jarjar.jar
DATA_BINDING_COMPILER := $(HOST_OUT_JAVA_LIBRARIES)/databinding-compiler.jar
FAT16COPY := build/make/tools/fat16copy.py
CHECK_ELF_FILE := build/make/tools/check_elf_file.py
CHECK_ELF_FILE := $(HOST_OUT_EXECUTABLES)/check_elf_file$(HOST_EXECUTABLE_SUFFIX)
LPMAKE := $(HOST_OUT_EXECUTABLES)/lpmake$(HOST_EXECUTABLE_SUFFIX)
ADD_IMG_TO_TARGET_FILES := $(HOST_OUT_EXECUTABLES)/add_img_to_target_files$(HOST_EXECUTABLE_SUFFIX)
BUILD_IMAGE := $(HOST_OUT_EXECUTABLES)/build_image$(HOST_EXECUTABLE_SUFFIX)
+5 −0
Original line number Diff line number Diff line
@@ -59,3 +59,8 @@ python_binary_host {
  name: "check_radio_versions",
  srcs: ["check_radio_versions.py"],
}

python_binary_host {
  name: "check_elf_file",
  srcs: ["check_elf_file.py"],
}
+3 −7
Original line number Diff line number Diff line
#!/usr/bin/env python
#!/usr/bin/env python3
#
# Copyright (C) 2019 The Android Open Source Project
#
@@ -196,11 +196,7 @@ class ELFParser(object):
  def _read_llvm_readobj(cls, elf_file_path, header, llvm_readobj):
    """Run llvm-readobj and parse the output."""
    cmd = [llvm_readobj, '--dynamic-table', '--dyn-symbols', elf_file_path]
    proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, _ = proc.communicate()
    rc = proc.returncode
    if rc != 0:
      raise subprocess.CalledProcessError(rc, cmd, out)
    out = subprocess.check_output(cmd, text=True)
    lines = out.splitlines()
    return cls._parse_llvm_readobj(elf_file_path, header, lines)

@@ -467,7 +463,7 @@ class Checker(object):
    """Check whether all undefined symbols are resolved to a definition."""
    all_elf_files = [self._file_under_test] + self._shared_libs
    missing_symbols = []
    for sym, imported_vers in self._file_under_test.imported.iteritems():
    for sym, imported_vers in self._file_under_test.imported.items():
      for imported_ver in imported_vers:
        lib = self._find_symbol_from_libs(all_elf_files, sym, imported_ver)
        if not lib: