From da5b477770b651c261297b61848dcccb8de8e394 Mon Sep 17 00:00:00 2001 From: Hsin-Yi Chen Date: Mon, 24 Jun 2019 13:22:12 +0800 Subject: [PATCH] Generate lsdump without sdump This commit changes to be an optional parameter for header-abi-linker. The linker can generate lsdump files for libraries without source files. Test: ./test.py Test: ./create_reference_dumps.py -products aosp_arm64 Bug: 135728451 Change-Id: Ib9fe56591bd476921904118b1bafcdf2e987f8bb --- .../src/linker/header_abi_linker.cpp | 4 ++-- vndk/tools/header-checker/tests/module.py | 10 ++++++++ .../reference_dumps/arm64/libempty.so.lsdump | 23 +++++++++++++++++++ vndk/tools/header-checker/tests/test.py | 5 ++++ 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 vndk/tools/header-checker/tests/reference_dumps/arm64/libempty.so.lsdump diff --git a/vndk/tools/header-checker/src/linker/header_abi_linker.cpp b/vndk/tools/header-checker/src/linker/header_abi_linker.cpp index e9890c16e..49d9cd04e 100644 --- a/vndk/tools/header-checker/src/linker/header_abi_linker.cpp +++ b/vndk/tools/header-checker/src/linker/header_abi_linker.cpp @@ -45,8 +45,8 @@ static llvm::cl::OptionCategory header_linker_category( "header-abi-linker options"); static llvm::cl::list dump_files( - llvm::cl::Positional, llvm::cl::desc(""), llvm::cl::Required, - llvm::cl::cat(header_linker_category), llvm::cl::OneOrMore); + llvm::cl::Positional, llvm::cl::desc(""), llvm::cl::ZeroOrMore, + llvm::cl::cat(header_linker_category)); static llvm::cl::opt linked_dump( "o", llvm::cl::desc(""), llvm::cl::Required, diff --git a/vndk/tools/header-checker/tests/module.py b/vndk/tools/header-checker/tests/module.py index 9397ac19c..d06eb974f 100755 --- a/vndk/tools/header-checker/tests/module.py +++ b/vndk/tools/header-checker/tests/module.py @@ -586,6 +586,16 @@ TEST_MODULES = [ ], cflags=['-DNEW=1'] ), + LsdumpModule( + name='libempty', + arch='arm64', + srcs=[], + version_script='integration/c_and_cpp/map.txt', + export_include_dirs=['integration/c_and_cpp/include'], + linker_flags=[ + '-output-format', 'Json', + ], + ), ] TEST_MODULES = {m.name: m for m in TEST_MODULES} diff --git a/vndk/tools/header-checker/tests/reference_dumps/arm64/libempty.so.lsdump b/vndk/tools/header-checker/tests/reference_dumps/arm64/libempty.so.lsdump new file mode 100644 index 000000000..d7db6ee46 --- /dev/null +++ b/vndk/tools/header-checker/tests/reference_dumps/arm64/libempty.so.lsdump @@ -0,0 +1,23 @@ +{ + "array_types" : [], + "builtin_types" : [], + "elf_functions" : + [ + { + "name" : "CFunction" + }, + { + "name" : "_Z3fooPiS_" + } + ], + "elf_objects" : [], + "enum_types" : [], + "function_types" : [], + "functions" : [], + "global_vars" : [], + "lvalue_reference_types" : [], + "pointer_types" : [], + "qualified_types" : [], + "record_types" : [], + "rvalue_reference_types" : [] +} diff --git a/vndk/tools/header-checker/tests/test.py b/vndk/tools/header-checker/tests/test.py index 57df7d378..142f8fa9e 100755 --- a/vndk/tools/header-checker/tests/test.py +++ b/vndk/tools/header-checker/tests/test.py @@ -347,6 +347,11 @@ class HeaderCheckerTest(unittest.TestCase): module_name, "arm64", 0, ["-input-format-old", "Json", "-input-format-new", "Json"]) + def test_no_source(self): + self.prepare_and_run_abi_diff_all_archs( + "libempty", "libempty", 0, + ["-input-format-old", "Json", "-input-format-new", "Json"]) + if __name__ == '__main__': unittest.main()