Fix arguments passed to llvm-readobj

Upstream llvm-readobj no longer accepts single dash prefix for long
options. Changed to double dash.

Also let the script to raise exception if rc is non-zero, to avoid
getting confusing error later in the program.

Test: build
Bug: 197230471
Change-Id: I364f51322904431d430549f79af58f455f47e028
This commit is contained in:
Yi Kong 2021-09-10 20:56:11 +08:00
parent 48662b25fc
commit 8b50dea627

View File

@ -195,10 +195,12 @@ class ELFParser(object):
@classmethod
def _read_llvm_readobj(cls, elf_file_path, header, llvm_readobj):
"""Run llvm-readobj and parse the output."""
proc = subprocess.Popen(
[llvm_readobj, '-dynamic-table', '-dyn-symbols', elf_file_path],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
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)
lines = out.splitlines()
return cls._parse_llvm_readobj(elf_file_path, header, lines)