Generate lsdump without sdump
This commit changes <dump-files> 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
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 e9890c1..49d9cd0 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 @@
"header-abi-linker options");
static llvm::cl::list<std::string> dump_files(
- llvm::cl::Positional, llvm::cl::desc("<dump-files>"), llvm::cl::Required,
- llvm::cl::cat(header_linker_category), llvm::cl::OneOrMore);
+ llvm::cl::Positional, llvm::cl::desc("<dump-files>"), llvm::cl::ZeroOrMore,
+ llvm::cl::cat(header_linker_category));
static llvm::cl::opt<std::string> linked_dump(
"o", llvm::cl::desc("<linked dump>"), llvm::cl::Required,
diff --git a/vndk/tools/header-checker/tests/module.py b/vndk/tools/header-checker/tests/module.py
index 9397ac1..d06eb97 100755
--- a/vndk/tools/header-checker/tests/module.py
+++ b/vndk/tools/header-checker/tests/module.py
@@ -586,6 +586,16 @@
],
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 0000000..d7db6ee
--- /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 57df7d3..142f8fa 100755
--- a/vndk/tools/header-checker/tests/test.py
+++ b/vndk/tools/header-checker/tests/test.py
@@ -347,6 +347,11 @@
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()