This commit fixes bad inward customization vndk calculation.
Before this commit, when an vndk-indirect candidate is using
vndk-fwk-ext, its dependencies will be considered as a candidate of
vndk-indirect.
After this commit, the dependencies will only be pushed into the stack
if such dependencies are known to be intact or inward-customized. If a
vndk-indirect candidate is extending APIs, then the dependencies of its
generic counterpart will be pushed into the stack.
This commit also fixes the ELF resolution so that vndk-core dependencies
will not be resolved to vndk-fwk-ext.
Test: ./tests/test_vndk.py
Change-Id: I0527ef62b70ca4442eb8f69272a8ba9a6388df55
Inward-customized VNDK libraries should be renamed instead of cloned.
This commit fixes the algorithm for inward customization and write a
unittest to check the correctness.
Test: ./tests/test_vndk.py
Change-Id: I0d66a93f679be24d7872d6a104497df24f100232
This commit will rename vndk-core, vndk-fwk-ext, and vndk-vnd-ext
libraries so that the output will match with the post-Treble design
document.
Test: ./tests/test_vndk.py
Change-Id: I528ef380c76d71c743f1937ba94a8b72c00ce785
This commit adds non-AOSP libraries to imported_ext_symbols even when no
symbols are resolved to that specific non-AOSP library. This should fix
some errors related to the missing libraries from generic references.
Test: ./tests/run.py
Change-Id: I7f104737308d4dc0b591266d3408b001325c959e
After this commit, vndk_definition_tool.py will skip the NDK extension
check if generic references are not specified by the user. This fixes
an unexpected AttributeError on NoneType object.
Test: Run ./vndk_definition_tool.py vndk command w/o --generic-refs ...
Change-Id: Ibcd960039c5acc4adabb1a2e2b5965a026e9f23a
Make Messages mirror clang Types better.
Added type size and alignments for independent and complete types.
Added vtable layout for CXXRecordDecls.
Added abi information for variables with global storage.
Added new return status to signify abi extension.
Added checks for access specifier downgrades.
Removed repeated code from header-abi-diff.
Test: header-abi-dumper -o example1.dump tests/input/example1.cpp -I
tests -- -x c++ -std=c++11 -I . -I
~/android/aosp/external/clang/lib/Headers
Change-Id: I21b5a8ef6dff92ecae47a0b1c46342862c5e0ebd
This commit no longer removes all dependencies (including system and
vendor dependencies) when a generic reference library has a dependency
to a library on the vendor partition. After this commit is merged,
vndk_definition_tool.py will only remove the offending dependencies.
Test: Run vndk_definition_tool.py against bullhead build with tweaked
dependencies.
Change-Id: Id6d23112128d9bbfec9e1e4430677a07f20fd193
This commit dumps the symbol usages in the dependency.
Test: Run ./vndk_definition_tool.py deps --symbol ...
Change-Id: I474dd0c0184e6dabd06968f953137384e14862c2
Bionic's FORTIFY implementation expects clang >= r285906, but
header-abi-dumper uses external/clang, which is a clone of clang at
r275480. This causes header-abi-dumper to emit errors in cases where
clang-3688880 doesn't (e.g.
unsigned char c[2];
// error: no matching function, since clang r275480 doesn't like
// unsigned char * -> char * casts
snprintf(c, sizeof(c), "a");).
Bug: 36076947
Test: Ran header-abi-dumper on external/e2fsprogs/lib/blkid/probe.c
(which previously gave us errors). It now only emits a few warnings.
Change-Id: I9460853b7f94aeb154a4d921a852954d82394055
This commit fixes vndk-fwk-ext qand vndk-vnd-ext computation. We should
hash imported_lib, an instance of ELFLinkData, instead of ELF object.
Test: ./tests/test_vndk.py
Change-Id: Idc5123bbf9980b76527b5fa295a1fe01c8f7f44c
This commit adds vndk-cap subcommand. vndk-cap subcommand will compute
the upper bound of the eligible libraries for VNDK definition.
Test: ./tests/test_elf_linker.py
Change-Id: Ie6600c35735de36055b2770836f2e87397221ddd
* changes:
vndk-def: Remove dump_exported_symbols().
vndk-def: Add parse from ELF dump file.
vndk-def: Warn on bad user-specified dependencies.
vndk-def: Split DT_NEEDED and dlopen() into two layers.
This commit removes dump_exported_symbols() and replace the usages with
dump().
Test: ./tests/run.py
Change-Id: Ifed15e606e470c25a3c0a9090b60889e9cb4cb28