When setting target out path at root(/product, /system_ext), either file
system type or prebuilt image must be set. If not, we'd rather raise an
error.
Without raising an error, the artifacts in these directory are not
included in any image.
And also, extract these logics into function, and check product, odm, system_ext
For now, exempt vendor image because of some targets with prebuilt
vendor image.
Bug: 137169253
Test: set TARGET_COPY_OUT_PRODUCT := product
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE :=
BOARD_PREBUILT_PRODUCTIMAGE :=
and then check if it causes an error.
Test: set TARGET_COPY_OUT_PRODUCT := system/product
BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 or
BOARD_PREBUILT_PRODUCTIMAGE := someimage.img
and then check if it causes an error.
Change-Id: Ibf0f7838111075ba3649e198e5649aa7e8e29d7c
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
Use apex_available property to prevent modules that are only for the ART
apex from being used outside of the APEX.
Bug: 128708192
Bug: 133140750
Bug: 129006418
Test: m
Test: m libnativeloader doesn't install anything. (because it doesn't
have "//apex_available:platform".
Test: Add "libnativeloader" to shared_libs of "libvndksupport" which is
installed to /system/lib. Then the build fails with following error:
error: system/core/libvndksupport/Android.bp:3:1: module
"libvndksupport" variant "android_arm_armv8-a_core_shared": depends on
//art/libnativeloader:libnativeloader which is not visible to this
module
Change-Id: I964d0125cfedb454a60c098bf1a1797201d5dd40
Also, prefer
-Wl,--execute-only
rather than
-Wl,-execute-only
Bug: 139945549
Bug: 146144180
Test: m
Change-Id: I4a07978c7a84a0a7e841b9e059305b0f443d0e95
Suggested-by: Ryan Prichard <rprichard@google.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
So that soong_ui can remove obsolete headers that have been removed.
Test: cat out/target/product/crosshatch/.copied_headers_list
Test: cat out/target/product/generic/.copied_headers_list
Change-Id: I7df8029c1f2ed630d35c357f94e5dfb668e5824f
Id938aa35e87c9c69769a3184dfea06fd02299688 removed the initial
assignment to common_proguard_flags, which both makes it grow as
each module is parsed and also turns it into a lazily evaluated
variable. That causes the flags passed to R8 to be the flags
computed for the current module multiplied by the number of previously
parsed modules.
Fixes: 146150575
Test: m checkbuild
Change-Id: I87c9625496f482896be6867124f2f12ff662cd57
For GSI targets, this variable is set true, and Soong will install both
"flattened" and "unflattened" APEXes together in /system_ext and /system
respectively.
Bug: 137802149
Test: lunch aosp_arm64-userdebug && m
resulting apex images under /system/apex
and flattened apexes under /system/system_ext/apex
Change-Id: Ib72d1b9dbd59727942da39323ee7e60ac6e14882
Bug: 143513520
Test: `make vbmetaimage-nodeps` then checks the value of
PRIVATE_AVB_VBMETA_SIGNING_ARGS appears in ./out/verbose.log.gz
Change-Id: I2eac2b2d319a46f3c3ecb56df8c6b56925a4d596
java-lib-header-files (turbine) differ from java-lib-files (actual metalava
output) in how the private constructors are showing up in these jars.
in classes.jar android/telephony/AccessNetworkConstants.class
package android.telephony;
public final class AccessNetworkConstants {
private AccessNetworkConstants() {
throw new RuntimeException("Stub!");
}
}
in classes-header.jar android/telephony/AccessNetworkConstants.class
package android.telephony;
public final class AccessNetworkConstants {
}
As you can see, turbine seems to skip adding the private constructor,
which means that it becomes public.
Bug: 145933077
Test: m out/target/common/obj/api.xml
out/target/common/obj/api.xml -> no longer has public constructor
for AccessNetworkConstants
Change-Id: Ie1763783667b41b9892c9c47e6b362d7962caf14
This commit enables prebuilt ELF checks on ALL targets.
If this commit breaks your target, you may triage the breakage by adding
the following setting to your `BoardConfig.mk`:
BUILD_BROKEN_PREBUILT_ELF_FILES := true
And then fix the problem with the instructions:
https://source.android.com/devices/architecture/vndk/abi-use-check
Bug: 141176116
Bug: 145925470
Test: for t in ${ALL_TARGETS}; do lunch $t; make check-elf-files; done
Change-Id: I62e0269074afe1d685cb63d5f8953a2acf03f03e
In ag/7020561, after branching of qt-dev, the BUILD_ID was changed to
"QT" and the change was tagged as "DO NOT MERGE" to prevent it flowing
into master. However, because the -plus-aosp branches was using the
same API level and "DO NOT MERGE" will not be respected there, it would
eventually be merged to stage-aosp-master and promoted to AOSP master.
Address this by using AOSP.MASTER which will cause a merge conflict when
the merge happens.
Bug: 145935472
Change-Id: Iaa17a2c29f1f3cf28f28761a18b0d480b0253fac
Merged-In: I5c28225d61996cb719ae384d7b0828776e84f8d5