VNDK snapshot updater reads license text files. To avoid unexpected
text files to be read, explicitly set the encoding type and ignore
if failed to read.
Bug: 288846788
Test: add binary to read and see if it is ignored
Change-Id: I7e3d0bbdc6c692ef7dbc6d8bf9d53c67003d0f90
This commit fixes the bug that causes the ABI tools to produce invalid
output but return success.
Bug: 288168134
Test: development/vndk/tools/header-checker/tests/test.py
Change-Id: Ifa94667e9d38eff65e943a1d277dd2c7b5493fe5
VNDK snapshot zip file includes license information in json files.
Instead of parsing the license text files, read the information from
the json files.
VNDK snapshot v33 and older do not include this information and must
parse the license text files as before.
Bug: 277317599
Test: generate snapshots with/without json information && m nothing
Change-Id: Ibdbc571c9effe6c17f5d82a7a0894ad2d800711f
- Add the commands to write Android.bp, create reference dumps, and
find the generated dumps.
- Remove "persistent-" from the repo command as it's internal only.
Test: None
Bug: 227282691
Change-Id: I07dc947c0436e2a0e7e5b3a4f812800bd7df2720
EnumFieldIR has member functions that determine whether the enum value
is signed. The JSON dumper uses the functions to distinguish between
negative values and values >= (1 << 63).
Bug: 277299761
Test: ./test.py
Change-Id: If5f3a33aaf5f53f39019fdd10dde366d48a50340
This commit restores lib/libc++.so.1 and lib/libclang-cpp.so.16 which
are indirect dependencies of clang tools.
Bug: 218706358
Test: out/soong/dist/bin/versioner -h
Change-Id: I3b9414645dc5b56d322d21e082feca260519d053
The status of the filtered out fields is either kNoDiff or
kIndirectDiff. It does not affect the diff report, but makes
ModuleMerger determine redefined types more accurately.
Test: ./test.py ; update the prebuilt clang tools and build
Bug: 255702405
Change-Id: Ia94225d25e00597affa8b1e01a7c9de592bf5b05
Before this commit, the function returns
(kDirectDiff, RecordFieldDiffIR *) or (kIndirectDiff/kNoDiff, nullptr).
The commit changes the return value to a DiffStatus. The caller decides
whether to create a RecordFieldDiffIR by the DiffStatus.
Test: ./test.py
Bug: 255702405
Change-Id: If2bfd5bca78e9d924be34ad5c522db9b91382cde
- Rewrite the diff algorithm to handle multiple fields located at the
same offset in a class, struct or union.
- Allow renaming a field if its (offset, type) pair is unique.
Bug: 255702405
Test: ./test.py
Change-Id: I79ebe9a827822b0f89d95952fa7d8c30499ca680
This commit implements the function that compares array size, alignment,
and element type.
Test: ./test.py ; update prebuilts/clang-tools and build
Bug: 255702405
Change-Id: I4f25d22f060cfda04bbd88b9c2521461b95e6829
Also remove -std=c++14 flag. Because clang 16 uses c++17
by default. And some headers don't compile with c++14.
Bug: 253033919
Test: run build-prebuilts.sh
Change-Id: Ia76c227831ed62a9de190fb1d816f23d7c92fad2
The ABI tools do not diff the array length. They cannot distinguish
between arrays of unknown bound (e.g., int foo[]) and arrays of zero
length (e.g., int bar[0]). To implement array diff, this commit adds
"is_of_unknown_bound" field to the ABI dumps. It defaults to false so
that it can be omitted for common cases.
Test: ./test.py ; update prebuilts/clang-tools and build
Bug: 255702405
Change-Id: I5db163eb62e95fa01377ef7202e70cc2a0e89524
If a type ID is persent in local_to_global_type_id_map,
ModuleMerger functions should report that was_newly_added_ = false.
Test: ./test.py ; update prebuilts/clang-tools and build
Bug: 255702405
Change-Id: I0fbe68ebbc6b8df3ea4ae36a017d0bb61bc7d553
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
`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
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
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