|
|
||
|---|---|---|
| .. | ||
| Documentation | ||
| android | ||
| src | ||
| tests | ||
| utils | ||
| Android.bp | ||
| MODULE_LICENSE_APACHE2 | ||
| OWNERS | ||
| README.md | ||
README.md
VNDK Header Checker
The VNDK header checker consists of 3 tools: header-abi-dumper, header-abi-linker, and header-abi-diff. The first two commands generate ABI dumps for shared libraries. The third command compares the ABI dumps with the reference ABI dumps in prebuilts/abi-dumps. If there are no ABI dumps under prebuilts/abi-dumps, follow the instructions in Create Reference ABI Dumps to create one.
Header ABI Dumper
header-abi-dumper dumps the ABIs (including classes, functions, variables,
etc) defined in a C/C++ source file.
The -I command line option controls the scope of ABIs that must be dumped.
If -I <path-to-export-include-dir> is specified, the generated ABI dump will
only include the classes, the functions, and the variables that are defined in
the header files under the exported include directories.
Usage
header-abi-dumper -o <dump-file> <source_file> \
-I <export-include-dir-1> \
-I <export-include-dir-2> \
... \
-- \
<cflags>
For more command line options, run header-abi-dumper --help.
Header ABI Linker
header-abi-linker links several ABI dumps produced by header-abi-dumper.
This tool combines all the ABI information present in the input ABI dump files
and prunes the irrelevant ABI dumps.
Usage
header-abi-linker -o <linked-abi-dump> \
<abi-dump1> <abi-dump2> <abi-dump3> ... \
-so <path to so file> \
-v <path to version script>
For more command line options, run header-abi-linker --help.
Header ABI Diff
header-abi-diff compares two header ABI dumps produced by
header-abi-dumper. It produces a report outlining all the differences
between the ABIs exposed by the two dumps.
Usage
header-abi-diff -old <old-abi-dump> -new <new-abi-dump> -o <report>
For more command line options, run header-abi-diff --help.
Return Value
0: Compatible1: Changes to APIs unreferenced by symbols in the.dynsymtable4: Compatible extension8: Incompatible16: ELF incompatible (Some symbols in the.dynsymtable, not exported by public headers, were removed.)
Create Reference ABI Dumps
utils/create_reference_dumps.py may be used to create reference ABI dumps.
#For VNDK libraries
For example, the command below creates reference ABI dumps for all VNDK shared libraries on arm, arm64, x86, and x86_64 architectures:
$ python3 create_reference_dumps.py
To create reference ABI dumps for a specific library, run the command below:
$ python3 create_reference_dumps.py -l libfoo
This will create reference dumps for libfoo, assuming libfoo is a VNDK
library.
For LLNDK libraries
$ python3 create_reference_dumps.py -l libfoo --llndk
This will create reference dumps for libfoo, assuming libfoo is an LLNDK
library.
For more command line options, run utils/create_reference_dumps.py --help.