This commit moves the functions that determine struct extensions from
ir_diff_representation.cpp to abi_diff_helpers.cpp. The functions
are called before IRDiffDumper so that the IR and the dumper do not
include the diff logic.
Test: ./test.py
Bug: 259148872
Change-Id: I93aaa3028bf6a30312f0b0e5b1ef5f6ae1041f21
The cargo2android.json config file now supports the key "variants" with
a list of entries containing keys and build name suffix. Each entry
will produce a different library (or binary). Keys supplied for each
variant will overwrite any existing ones specified in the config file.
See an example of the protobuf crate on aosp/2368788.
Test: None
Change-Id: Iaca67c7f22718c27b3cb118d9794f1ff01d31c84
`header-abi-diff --allow-extensions` allows function parameters to be
more qualified, and return types to be less qualified. The ABI tools
follows the qualifier conversion rules in C++.
The ABI tool only allows extending the qualifiers of the functions that
have corresponding symbols. The qualifiers of the other types, such as
function pointers, class members, and global variables, must be
identical between the old and new ABIs.
Test: ./test.py
Bug: 259148872
Change-Id: I227f6ed774cc88009713acce955e35f1c3cff1ca
DiffStatus is a class that exposes constants and member functions.
AbiDiffHelper calls the member functions to determine how to report the
diff. The actual value of a DiffStatus object is encapsulated so that
developers can define new status without changing existing logic.
Test: ./test.py
Bug: 259148872
Change-Id: I2c3be62046aa01d68c84690cb158f8fc7a5b474b
The binary for bazel moved from tools/bazel to build/bazel/bin/bazel.
Test: run update_crate_tests.py in a Rust crate. Verify results.
Change-Id: I2e586b59876bfd7146cd92efc90055828bf60eac
Adding or removing the dump files cause soong to regenerate the
ninja files, which takes a few minutes for every product.
create_reference_dumps.py makes "findlsdumps" and the lsdumps paths.
These targets do not trigger ABI diff. Thus it is not necessary to
remove the reference dumps before building new dumps.
Test: ./create_reference_dumps.py
Bug: 255702405
Change-Id: I4f4a43476d7a9c46d41ef237b846547ed41c7c04
Can't figure out how to get the tests to work when built by soong, so
just removing for now.
This reverts commit d97284de03.
Test: that was the problem
Change-Id: I4bb8c3a81f529fabbc1663b48f93f153db23aa5d
Builds and copies the current NDK ABI definitions to
prebuilts/abi-dumps/ndk.
Test: mypy ndk
Test: pylint ndk
Test: pytest
Test: ./update_ndk_abi.sh && m ndk
Bug: http://b/156513478
Change-Id: Idf850c7a2a7b02d096943c24989bc12de692af13
Bug: 261529166
Ignore failures when sending the flush signal. Some processes may have
exited after we run `adb shell ps` but before we could send the flush signal.
Test: Successful run of coverage metrics using acov-llvm (as documented in go/android-native-coverage-local-workflow
Change-Id: I2fc0f71bf5f6d810b4124e28d7dd69ebfc2579b3
Signed-off-by: Shaju Mathew <shaju@google.com>
Since the helper function can compare the opaque types' unique IDs, it
is not necessary to return opaque_diff and compare the reference types'
names.
Test: ./test.py
Bug: 255702405
Change-Id: I1264b0f4d0db178a3dc2202a265c5ccb38df7dc2
multi_update.py runs the update.py for all branches at once.
It makes vndk snapshot update much easy.
Bug: 260021945
Test: development/vndk/snapshot/multi_update.py --all -vv
Change-Id: Iaeadf75c8e05f54bcda2c577aba58f483e99ca00
create_reference_dumps.py recognizes VENDOR and PRODUCT tags in
lsdump_paths.txt. The dumps tagged with VENDOR, PRODUCT, VNDK-ext, or
VNDK-SP-ext cannot be created in the AOSP directories in
prebuilts/abi-dumps. The user who wants to generate dumps for vendor
libraries must specify -ref-dump-dir.
Test: ./create_reference_dumps.py -libs libutils
Test: ./create_reference_dumps.py -libs libutils -ref-dump-dir ./test-abi-dumps
Bug: 227282691
Change-Id: Iecf695d23d7a2e5a67859954c905fa9d1481b8ae