History log of /build/soong/cc/gen_stub_libs.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f36886cf5b5fb6e8f60d90120a5b00e387f6f34f 03-Apr-2017 Dan Willemsen <dwillemsen@google.com> Support a `vndk` tag in gen_stub_libs.py

This hides a particular symbol from the NDK stubs, while allowing the
symbol to be exposed to the VNDK through the LLNDK stubs. This doesn't
introduce any sort of versioning yet, this will need to change when we
add a new symbol to a new version of the VNDK.

Test: test_gen_stub_libs.py
Test: With my LL-NDK patches, inspecting the generated map files
Merged-In: Iee86aafda7985d6d7a016d0d5ff951505634913b
Change-Id: Iee86aafda7985d6d7a016d0d5ff951505634913b
/build/soong/cc/gen_stub_libs.py
ae452ccb7f61405917a4eb3eb82a2f28f9e0de14 03-Jan-2017 Dan Albert <danalbert@google.com> Support versioned=%d at the section level.

Test: nose2
Bug: https://github.com/android-ndk/ndk/issues/265
Change-Id: I4c22cb8069f41861613ecf01f7e1adbe1d3118a9
/build/soong/cc/gen_stub_libs.py
fd86e9ee214331898521c9f8c63b836e34993669 08-Nov-2016 Dan Albert <danalbert@google.com> Generate "current" API level.

Support for using this coming in an upcoming patch.

Test: nose2
readelf to check the following:
* bsd_signal unversioned before current
* bsd_signal versioned in current
* catclose missing before current
* catclose present and versioned in current
Bug: None
Change-Id: I861862161426d3ec5b530e3156d3a8ae96fed468
/build/soong/cc/gen_stub_libs.py
300cb2fe8721130f9f90cf3941cba8b9c10a71f1 04-Nov-2016 Dan Albert <danalbert@google.com> Support a "platform-only" version tag.

We tried to support this by version name convention (foo_PLATFORM and
foo_PRIVATE), but not everything follows those conventions. libm has
a LIBC_DEPRECATED, which is a bit to generic to apply this convention
to.

Support a "platform-only" tag which omits the tagged version in the
NDK.

Test: nose2
Bug: None
Change-Id: Iba34628ea02a813d22c8b32d10e54064f17ac6df
/build/soong/cc/gen_stub_libs.py
8bdccb94292475c9785370c82db69649aca2bb98 29-Jul-2016 Dan Albert <danalbert@google.com> Add a real parser for the version scripts.

Bionic's version scripts are unfortunately complicated enough that the
naive processing I was doing before is not going to be sufficient.
Add a real parser/generator with a bunch of tests to fix this.

Test: cc/test_gen_stub_libs.py && make ndk
Change-Id: I0f73b41ade1e6cf4e31bf70ba43a743429ce770b
/build/soong/cc/gen_stub_libs.py
c42458e2ff8e888cf8b5cd98ec419ad342bc11bd 29-Jul-2016 Dan Albert <danalbert@google.com> Add tag for "versioned=API".

This adds the `versioned=API` tag. This should be a very uncommonly
needed tag, and is really only needed to fix versioning mistakes that
are already out in the wild.

For example, some of libc's __aeabi_* functions were originally placed
in the private version, but that was incorrect. They are now in
LIBC_N, but when building against any version prior to N we need the
symbol to be unversioned (otherwise it won't resolve on M where it is
private).

Test: make ndk
Change-Id: I0cd2f80cf4b32356356914cf7ff4119e67f15032
/build/soong/cc/gen_stub_libs.py
08532b6779281c3a5f4d4166914a26b047cd3459 29-Jul-2016 Dan Albert <danalbert@google.com> Allow more symbol file tags at top level.

A version block might need to be omitted for reasons beyond just
"future". Support all the same tags we do at symbol scope.

Test: `make ndk` with libc/libm migration patches.
Change-Id: I21f54c67079dae10fee1e5e08bcd01f8810e7a67
/build/soong/cc/gen_stub_libs.py
a85042a040e10e912a3bcd282e5cc75030b26a0b 29-Jul-2016 Dan Albert <danalbert@google.com> Add a new tag to NDK symbol files: future.

Symbols that have been added to a library but should not be exposed
in any of the current NDK API levels should be tagged with "future".
These will be suppressed from the NDK libraries.

Once all this is in better shape we'll have `sdk: "current"`. Symbols
tagged with "future" will be available for that.

Note that this tag can be applied directly to a version. Aside from
being more ergonomic than tagging an entire section, this also solved
the problem of gen_stub_libs.py emitting an empty global section
(which is not valid syntax) in the case where every symbol is
"future". Tag the version instead and it will be omitted.

Test: `make ndk` with libc/libm migration patches.
Change-Id: I41f6e4939c406f695ab5725f360ec6554ad8ab31
/build/soong/cc/gen_stub_libs.py
914449fca8c749588e28dfdfafc3226aa407c47e 18-Jun-2016 Dan Albert <danalbert@google.com> Generate NDK sysroots from the platform build.

The list of migrated libraries is currently empty. Libraries will be
migrated as follow up patches.

Test: Migrated libc to this system and everything still builds.
build.ninja shows libraries being built and used and headers are
collected for the sysroot.
Bug: http://b/27533932
Change-Id: Iaba00543c1390f432befe0eed768ed3fbb8a9b96
/build/soong/cc/gen_stub_libs.py