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()