summaryrefslogtreecommitdiff
path: root/tools/check_elf_file.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/check_elf_file.py')
-rwxr-xr-xtools/check_elf_file.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/tools/check_elf_file.py b/tools/check_elf_file.py
index ee8efd502a..1ff8e65e7a 100755
--- a/tools/check_elf_file.py
+++ b/tools/check_elf_file.py
@@ -397,7 +397,7 @@ class Checker(object):
sys.exit(2)
- def check_dt_needed(self):
+ def check_dt_needed(self, system_shared_lib_names):
"""Check whether all DT_NEEDED entries are specified in the build
system."""
@@ -417,6 +417,11 @@ class Checker(object):
dt_needed = sorted(set(self._file_under_test.dt_needed))
modules = [re.sub('\\.so$', '', lib) for lib in dt_needed]
+ # Remove system shared libraries from the suggestion since they are added
+ # by default.
+ modules = [name for name in modules
+ if name not in system_shared_lib_names]
+
self._note()
self._note('Fix suggestions:')
self._note(
@@ -502,6 +507,11 @@ def _parse_args():
parser.add_argument('--shared-lib', action='append', default=[],
help='Path to shared library dependencies')
+ # System Shared library names
+ parser.add_argument('--system-shared-lib', action='append', default=[],
+ help='System shared libraries to be hidden from fix '
+ 'suggestions')
+
# Check options
parser.add_argument('--skip-bad-elf-magic', action='store_true',
help='Ignore the input file without the ELF magic word')
@@ -535,7 +545,7 @@ def main():
if args.soname:
checker.check_dt_soname(args.soname)
- checker.check_dt_needed()
+ checker.check_dt_needed(args.system_shared_lib)
if not args.allow_undefined_symbols:
checker.check_symbols()