A few more misc improvements that I found while analyzing the
performance of base_rules.mk.
This brings an aosp-master/aosp_crosshatch-userdebug kati run from 33.3s
to 28.6s
Bug: 158488548
Test: build-aosp_crosshatch.ninja is the same before/after
Change-Id: If99c31cc7b5d7133d70eb644c6095f19060b71e5
If used, the results would be inaccurate in any case.
Deleted atest references: http://aosp/1315404http://aosp/1315405
Test: treehugger
Test: atest -c --rebuild-module-info com.google.android.gts.updateengine.UpdateEngineHostTest
Change-Id: I6efbf1f5ff3a533b26d6bbedc14a6fcc1b200391
This reverts commit 6e1fa4452b.
Reason for revert: relanding a reverted changed
Bug: 153073816
Change-Id: I3735866776cf6eb0320c9fb8c6be8ac0c48baa1c
Test: m
This reverts commit f9e67a8980.
Reason for revert: broke some targets
Exempt-From-Owner-Approval: reverting
Change-Id: I10af29b0fcf564dba0c3dbc1951b660b24fc58bb
The first component is the apex name, or a special name "platform"
if the boot jar is a platform jar rather than a part of some apex.
This is a prerequisite change for moving core-icu4j to a separate
com.android.i18n apex.
Old one-column format is still supported, but all unqualified
components of PRODUCT_BOOT_JARS get "platform:" prepended to them
after reading the product makefiles.
Test: aosp_walleye-userdebug boots
Bug: 138994281
Change-Id: I0f79c7d10477880ca65354251a5d1ca0b7ce79ab
A module is marked unavailable for platform when 1) it does not have
"//apex_available:platform" in its apex_available property, or 2)
it depends on another module that is unavailable for platform.
In that case, LOCAL_NOT_AVAILABLE_FOR_PLATFORM is set to true for the
module in the Make world. Later, that flag is used to ensure that there
is no module with the flag is installed to the device.
The reason why this isn't entirely done in Soong is because Soong
doesn't know if a module will be installed to the device or not. To
explain this, let's have an example.
cc_test { name: "mytest", static_libs: ["libfoo"]}
cc_library_static { name: "libfoo", static_libs: ["libbar"]}
cc_library { name: "libbar", apex_available: ["com.android.xxx"]}
Here, libbar is not available for platform, but is used by libfoo which
is available for platform (apex_available defaults to
"//apex_available:platform"). libfoo is again depended on by mytest
which again is available for platform. The use of libbar should be
allowed in the context of test; we don't want to make libbar available
to platform just for the dependency from test because it will allow
non-test uses of the library as well.
Soong by itself can't tell whether libfoo and libbar are used only in the
context of a test. There could be another module depending them, e.g.,
cc_library_shared { name: "mylib", static_libs: ["libfoo"] }
can exist and it might be installed to the device, in which case
we really should trigger an error.
Since Make has the knowledge of what's installed and what's not,
the check should be done there.
Bug: 153073816
Test: m
Change-Id: I14ddf0e5700d0a7bf60e4e41536efbd26ab5ed3d
BUG: 149826779
Test: Build x86, x86_64, armv7 and arm64
make sure x86/64 boot to home screen;
armv7/arm64 can pass disk mounting stage
Change-Id: I258b69bd0cdc4fb0a99b1a04567051e8d32c389a
This exposes any modules built with package-modules.mk to
module-info.json.
Test: refreshmod, inspect module-info.json and find new modules
from platform_testing/build/tasks/*
Bug: 151670189
Change-Id: I8d502382640f4d49ab2c17fcc251e54720844b76
This change collects the shared libraries files used by tests in
device-tests_host_shared-libs.zip. Then the host test can be run in
TradeFed host based on build artifacts.
Bug: 151172861
Test: m -j device-tests
Change-Id: Iac7cfe1310f2c63ace42272d41a54a032bc102bc
vts-core.xml imports some vts only preparer to run un-converted vts
python tests.
Bug: 149249068
Test: unittest
Change-Id: Ibdecb250f78c07d7645be4b140b8cfaeda99d79b
The current package logic is based on general-tests and device-tests,
which have special rules to package test artifacts in a diffrent way.
vts-core suite should follow the generic *ts package rule.
Bug: 149249068
Test: m -j vts-core && vts-core-tradefed
run some vts-core test
Change-Id: Ib6ab7eb0fb4b8c898a0b3617d10be04dc98c2daa
This is to unify boot jars with system server jars:
PRODUCT_SYSTEM_SERVER_JARS and PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS
do not overlap.
Test: aosp_walleye-userdebug boots
Exempt-From-Owner-Approval: cherry-pick.
Bug: 146363577
Change-Id: Ief8994cc34cb6f7951051313dd66a1334a3a73b4
Merged-In: Ief8994cc34cb6f7951051313dd66a1334a3a73b4
(cherry picked from commit 19ed3a0db7)
Vendor snapshot can be captured with "m dist vendor-snapshot". With
vendor snapshot and vndk snapshot, older version of /vendor and newer
version of /system will be able to be built together by setting
BOARD_VNDK_VERSION to past vendor's version.
Only vendor modules under AOSP are to be captured. In detail, modules
under following directories are ignored:
- cts/
- device/
- external/clang/
- external/llvm/
- hardware/, except for:
- interfaces/, libhardware/, libhardware_legacy/, ril/
- vendor/
Bug: 65377115
Test: m dist vendor-snapshot
Change-Id: Ib5859e409f8ab281ca137cae21e9ea08abd8a0b1
The test lists keep getting out of date. Add a per-caller option so that
once they're clean on all builds we can stop them from regressing.
Test: add my_modules_strict := {true,false,,foo} to user
Change-Id: I3e09a8cbe5a07bbbff042b26cea7041c331dde96
There are currently no classes on the bootclasspath that live in the
unnamed package (empty package name). This CL explicitly forbids it.
This has the side effect of guarding against some classes of bugs,
for example R8 has functionality to generate some helper classes in
the unnamed package that should not be on the to bootclasspath
because they would hide corresponding classes in Applications.
Strictly speaking I believe that the "not package_name or " part
of the condition in the touched script is not needed because
LoadWhitelist() already skips empty lines and doesn't add "^$" to
the whitelist regex, but relying on this seems very fragile. If
there ever is a need to have classes in the bootclasspath's
unnamed package in future then we can always change this again.
Bug: 147480264
Test: Treehugger
Change-Id: Ic310dd0779dde133b3a5c3039ea5b70d31331a9b
Jars in APEXes have Make module names <jar_name>.<apex_name>. e.g.
updatable-apex.com.android.media. Previously, we have used <jar_name>
which actually meant the platform variant of the jar. This is not only
incorrect, but also is causing problem as the platform variant is no
longer available when the jar is configured to be available only for the
corresponding APEX (via the apex_available property).
Fixing the problem by correctly using <jar_name>.<apex_name> scheme.
Bug: N/A
Test: m
Change-Id: I6e255ce88c9bd80120b29197fb2637a64010f531
Merged-In: I6e255ce88c9bd80120b29197fb2637a64010f531
Original Commit Message:
"""
Rename modules that are APEX-only
The renamed modules are only available for APEXes, but not for the
platform. Use the <module_name>.<apex_name> syntax to correctly install
the APEX variant of the modules.
"""
Reason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.
Reverted Changes:
I190ce2d10:Use apex_available property
I990e0a67e:Use apex_available property
I0d1295683:Revert "Avoid duplicated classes for boot dex jars...
I5fb725403:Find the jar libraries in APEX from the correct pa...
I322b1efcc:Rename modules that are APEX-only
Ifa2bd0f8f:Use apex_available property
Iac6533177:Use apex_available property
Ie999602c6:Use apex_available property
I2a3d73397:Use apex_available property
Ic91bcbb9a:Use apex_available property
Ia6c324eed:Use apex_available property
I964d0125c:Use apex_available property
Change-Id: I39316f9ef2b0cd6c0a347f6b51d011748d0681aa
JAR libraries in the ART and conscrypt APEXes are no longer built for
the platform. Therefore, the path out/target/common/<name>_intermediates
does not exist. Instead use the path
out/target/common/<libname>.<apexname>_intermediates paths for those
APEX-only jars.
Bug: 128708192
Bug: 133140750
Test: m
Change-Id: I5fb725403ac22198e5ce6d77ca97c5f3392fabfd
Rename artifact to not use -img- which conflicts w/ TF
test filters.
Bug: 125451157
Test: Verified phone flash works with new with-license artifact.
Change-Id: I7dd4eb17a24f1bf36926a83939f69681ff8b26ad
This is needed for vts-core tests require vts specific preparers.
Bug: 142972256
Test: m -j general-tests
Change-Id: Ic2def11ac5f57a923d2bcefe6683e9a5fa66e7c6
Update of build variable to VENDOR_BLOBS_LICENSE
will be done via update to vendor-blob generation scripts.
Bug: 125451157
Test: Verified output in out and dist folders (with local rename).
Change-Id: I94190f0ef95a58464dceca912f8759023095fc7d
- VNDK snapshot now respects stem and suffix.
- ld.config.txt is removed from snapshot as linkerconfig has become default.
- Soong builds entire snapshot, and make just calls dist-for-goals.
Bug: 142589718
Test: build and install snapshot
Test: development/vndk/snapshot/update.py with past version of snapshot
Change-Id: Ib99f1006d3553b1871b86ab168b1706fe47e1afb
vts-core.zip will include all vts-core tests and suite harness
(vts-core-tradefed).
Bug: 141012181
Test: m -j vts-core
Change-Id: Ib13a2bffb4dc9619d2732d65729ecb0246a0b9a0