When trying to build a single 64 bit and 32 bit image, there are
a few executables that are prefer32. When set, this will force all
of those targets to be compiled as 64 bit.
Test: With this option, drmserver/mediaserver are built as 64 bit.
Test: Without this option, drmserver/mediaserver are built as 32 bit.
Change-Id: I84f6be7fe0fa3a9ea86ecc4dd785aaf1825f9925
These were marked as deprecated in late 2020 [1]. Shortly later, there
was an attempt to obsolete them [2] for products shipping with API level
31 or greater, but that was reverted [3] because of internal users.
1: I58c64839cc513ae082cd3ee3c1e108843ea7439e
2: Ic4d1164be611836f6aa697fbf1cb1f1c73a3cd39
3: I7d3556aa0f06684b43f80f09e4c8194c6c44336c
Since these are causing warnings on every build, and there are no more
internal users, just obsolete them entirely. We don't need to rely on
the product shipping api level, since that does not guarantee
source-level compatibility -- and this is an easy fix even if people
have been ignoring the real warnings.
Bug: 235414673
Test: treehugger
Change-Id: If803a33efc38a970247919bf224c12b8c717f955
This change contains a prototype implementation for multitree.
A new file core/tasks/multitree.mk adds a goal named "update-meta",
which searches for "imported" and "exported" Android.bp modules and
writes a json metadata to track dependencies between components.
Bug: 230448564
Test: m
Change-Id: Ie93e3bf130cacb6b6de41acee3bd302f64f1ab95
Override all mainline updateable apexes' min_sdk_version to same version to get a single shared native lib version on DCLA.
Test: Run "vendor/google/build/go/mainline_go_modules_arm.sh" and inspect built apexes
Bug: 212609891
Change-Id: I8edf09ca3c91ee52e9c2138c71d9b155b4448f66
Merged-In: I8edf09ca3c91ee52e9c2138c71d9b155b4448f66
For some modules, it is necessary to access the product name from
Soong. In particular, the use case we have identified is that the
product name needs to be appended to the artifact name in the dist
copy.
Bug: 224561567
Test: Unit Tests and build relevant target/modules
Change-Id: Iaa0bfee8ef0d1201d8af02f7fc9e6ef081175da7
Bug: http://b/194128476
Coverage instrumentation will support continuous mode when this flag is
set.
Test: CLANG_COVERAGE_CONTINUOUS_MODE m and verify continuous mode works.
Change-Id: I187574c600ba10145dfb2c6c23551d235c33103a
Allows allowlisting modules that can temporarily continue to use a
directory as an input while some module types restrict their allowed
inputs.
Test: CI
Change-Id: Ic968a6f6efad45b6c1095dd214813e326d7493c1
So that it can be added to the soong config.
Bug: 220086085
Test: m nothing && inspect soong.variables
Change-Id: I949059b9284b16220e2489010279aeae98b4b7fb
The config variable is used to force the generation of the AIDL
ndk_platform backend which will eventually be removed in favor of the
ndk backend. The switch is needed as an escape hatch for some devices
whose BSP (outsourced and thus hardly modifiable) depends on the
ndk_backend libraries.
Bug: 161456198
Test: m
Merged-In: Iba8633263ae649af783e94b01f5c1b5c6e042948
Change-Id: I8b73a6a1e5169c35daf333316857b3c3b110a0f7
TARGET_BUILD_APPS is supposed to be a list of apps to
build, so having it be a bool was incorrect. Change it
to properly reflect what it is, because the starlark
product configuration relies on soong's interpretation
of variables types.
Bug: 201700692
Test: Presubmits
Change-Id: I00109b57abbcda86077f0465f982f54b4a77a7f0
- PLATFORM_SDK_EXTENSION_VERSION is the sdk extension version of the
tree
- PLATFORM_BASE_SDK_EXTENSION_VERSION is the sdk extension version that
PLATFORM_SDK_VERSION ships with.
Also propagate PLATFORM_SDK_EXTENSION_VERSION to soong to that it can be
used in genrules.
Bug: 195281582
Test: via development/ CL in this topic
Merged-In: Ib078a922e9bd9bc6ae82ab74feaeb743703a64b8
Change-Id: Ib078a922e9bd9bc6ae82ab74feaeb743703a64b8
Support enabling musl in Make builds with USE_HOST_MUSL=true. Only
modules defined in Soong will use musl, but that's almost all host
modules.
Bug: 195988762
Test: m USE_HOST_MUSL=true adb
Change-Id: Ia88f6e20b302d86f2241877b017aebe218d968cf
Note that ART apex boot jars and core-icu4j are exceptions here as they
are not part of ApexBootJars. ART apex boot jars are defined in their
own variable, while core-icu4j is treated as a regular non-updatable
boot jar.
Bug: 191127295
Test: atest CtsClasspathsTestCases
Change-Id: I5f5feb7344941d0154f384e3c06279d49b490768
Regardless of an "updatable" property of individual, list all apex boot
jars in the same variable. This is less confusing for devs, especially
since they shouldn't care about things like boot images.
Bug: 191127295
Test: atest CtsClasspathsTestCases
Change-Id: I0a559db462d1e1f67003ac54d1e27a89110d802a
Merged-In: I0a559db462d1e1f67003ac54d1e27a89110d802a
Bug: 188179858
Test: compare dexpreopt_config.zip files from
1. TARGET_BUILD_UNBUNDLED_IMAGE=true m dexpreopt_config_zip
2. m dexpreopt_config_zip
(note that m clean should run between steps)
Change-Id: I92623b59e4fcac397c7fed3d7ab1070fe5281027
add_json_bool treats non-empty variable as "true" by default (which is
conventional in make). Fix treatment of PRODUCT_COMPRESSED_APEX to
support the value false.
Bug: 185537646
Test: OVERRIDE_PRODUCT_COMPRESSED_APEX=false m nothing && \
grep CompressedApex out/soong/soong.variables
Change-Id: I0562a375be377ab67a1d064e37aff5970c4ac8dd
Starting with Android R launched devices, debugfs cannot be mounted in
production builds. In order to avoid accidental debugfs dependencies
from creeping in during development with userdebug/eng builds, this
patch introduces a build flag that can be set by vendors to enforce
additional debugfs restrictions for userdebug/eng builds. The same flag
will be used to enable sepolicy neverallow statements to prevent new
permissions added for debugfs access.
Bug: 184381659
Test: make with/without PRODUCT_SET_DEBUGFS_RESTRICTIONS
Change-Id: I9aff974da7ddce9bf1a7ec54153b161527b12062
After aosp/1184262 is submitted, PRODUCT_CHECK_ELF_FILES is deprecated
and nobody is using this variable anymore.
Bug: 149715904
Test: Presubmit; Should be noop
Change-Id: Iaf4a6ae1fe4062684a9699b7ef999030ff483e16
add_json_bool converts non-empty string to true, and empty string to
false. But some of boolean variables are meant to be set either "true"
or "false". In that case "false" may lead to a mismatch. This adds
filter to boolean variables which are directly compared to "true", like
ifeq ($(VAR),true)
Bug: 183483152
Test: build
Change-Id: I0dc4a05293a3233ae4958335781a19e6445a3799
It should be "filtered" by "true" because all non-empty values become
true when using add_json_bool.
Test: m selinux_policy on sc-arc
Change-Id: I35d5881d83746230793cf8ced76885607e82334a
PlatformSepolicyVersion and BoardSepolicyVers haven't assigned correctly
so far. Below is the reason why it hasn't been discovered yet.
DeviceConfig.PlatformSepolicyVersion() was added to support mixed
sepolicy build (setting BOARD_SEPOLICY_VERS and building vendor sepolicy
with old plat policy files). Soong compares PlatformSepolicyVersion()
and BoardSepolicyVers(), and used old vendor sources if both are
different. Back then, the only place where such logic played a role was
selinux contexts. Test codes were running as intended: after setting
BOARD_SEPOLICY_VERS the context files were built against old policies.
But there were two mistakes:
1) PlatformSepolicyVersion() was not added to soong_config.mk, so it was
always empty.
2) BOARD_SEPOLICY_VERS was set to default in system/sepolicy/Android.mk,
which was processed after soong_config. So if BOARD_SEPOLICY_VERS was
not set in BoardConfig.mk, BoardSepolicyVers() was empty, not
PLATFORM_SEPOLICY_VERSION.
And there were no issues as Soong only checked equality.
To fix the issue correctly, this commit adds the variable
PlatformSepolicyVersion, and then handles BoardSepolicyVers correctly by
returning PlatformSepolicyVersion if it's empty.
Test: set BOARD_SEPOLICY_VERS and see vendor_file_contexts changes
Change-Id: I4e306ec1f5225094a39f0c8d94f5e7683d70d60e
* changes:
Set BUILD_BROKEN_VENDOR_PROPERTY_NAMESPACE for goldfish
Add BUILD_BROKEN_VENDOR_PROPERTY_NAMESPACE to BoardConfig
Add PRODUCT_SHIPPING_API_LEVEL to productVariables
Use_lmkd_stats_log used to control LMKD_LOG_STATS when compiling lmkd.
However, for newer Android releases, we mandate that lmkd informs statsd of process kills (change id I8cb123b9488fbc6e88863c2f0e75f1422bcd282e)
After aosp/1555318 we compile lmkd with statsd by default, so this setting is a noop.
Change-Id: I91bd08198fe2275fb8aca77ae5ea637df360d416
Test: build
Bug: 177985094
By enabling these hiddenapi CSV files to be prebuilt, it
becomes possible to create a split build that supports
the hiddenapi encode dex step, but doesn't contain all
of the java sources needed to generate the CSV files.
Bug: 175048716
Test: m nothing
Test: new TestHiddenAPISingletonWithPrebuiltCsvFile
Test: local build without prebuilt hiddenapi
Test: local build with prebuilt hiddenapi
Change-Id: Ia38c5016d2aeba54aa537a5ce601898d46330730