This reverts commit fa7cf280ca.
Reason for revert: Build failure is not reproducible.
Forrest build on the same build ID 6033773 and same target
cf_x86_phone-userdebug_coverage finished successfully.
Change-Id: I188623237dfba657fb48966e0a34a975f13d00d2
This reverts commit 3fb6a949a6.
Reason for revert: broken build git_master/cf_x86_phone-userdebug_coverage (likely caused by these changes).
Exempt-From-Owner-Approval: revert.
Change-Id: Ib72fe0395fd084e774d25ee783b7380395f9d9bd
To remove '../' and other strangeness from compiler arguments, which run
into problems with remote execution:
Android.mk: LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/bar/..
foo.c: #include "foo.h"
include/foo.h
In this case, we'll send foo.c and include/foo.h, but include/bar may be
empty, and not exist on the remote server. So while the file is there,
you may not be able to access it.
There's also a byproduct of removing extra '/' and './' components,
which should be harmless.
Fixes: 144109314
Test: diff build-aosp_arm.ninja before/after; scan diffs
Test: treehugger
Change-Id: Id2eceba76fbf9b1524487e82cb5c8903c815e45f
Test: m
Test: The list of updatable system server jars is empty now,
so I tested that the filer works with a manual experiment:
- temporarily add wifi-service to PRODUCT_UPDATABLE_SYSTEM_SERVER_JARS
- m nothing
- fgrep -e 'wifi-service dexpreopt' $ANDROID_BUILD_TOP/out/build-$TARGET_PRODUCT.ninja
- expect empty output (no dexpreopt command is generated)
Change-Id: Ia4206ccc263b535b6e39b54c6e8db28845ff2bf5
This is needed for vts-core tests require vts specific preparers.
Bug: 142972256
Test: m -j general-tests
Change-Id: Ic2def11ac5f57a923d2bcefe6683e9a5fa66e7c6
Allow system_server jars delivered via apex. Regular system_server
jars are located in /system/framework folder. But, jars delivered via
apex are mounted at /apex/<module_name>/javalib. Also, not all the
libraries in /apex/<module_name>/javalib will be a system_server jar,
so adding a mechanism to list out the jar file explicitly within the
apex module.
Bug: 144722612
Bug: 141785760
Test: Compiles (both with empty & non-empty PRODUCT_SYSTEM_SERVER_APEX_JARS
value set)
Change-Id: Ia181ab22fdf2da575bfd532c1cd90a2f54742528
It may be the case that the list of kernel modules to be copied into
various partitions is not known at the time the build is invoked. To
support this configuration, create a set of make variables, each of
which can be set to the path of a zip archive of kernel modules to be
used.
Bug: 144317186
Bug: 144844424
Test: build and verify *.ko in vendor, repackage prebuilt
kernel modules into zip, build and verify *.ko in vendor
Change-Id: Ie6f7e2c72efa11d39be341920dd46e4ed6678fe1
* Rust test modules should have NATIVE_TESTS class,
not EXECUTABLES, to work with atest --host.
Bug: 140938178
Test: make rust projects
Change-Id: I45c84284d894702471ea46faaa599de27ab6be51
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
Use of -Weverything blocks build system changes and toolchain updates
on new warnings. Forbid it in the build system. Developers can
experiment with -Weverything on their module by adding it to their
Android.mk file and building with
m ANDROID_TEMPORARILY_ALLOW_WEVERYTHING=true
Fixes: 143713277
Test: manual
Change-Id: Ifca9ad45301b0d51f18b5ae85cfb9e5b89fbef3f
Use .KATI_NINJA_POOL := none to mark rules that can run in RBE or
goma when they are enabled, which along with passing
--default_pool=local_pool will allow moving remoteable jobs into
the remote pool without relying on hacks in kati.
Fixes: 143938974
Test: inspect pools in build-${TARGET-PRODUCT}.ninja for m USE_RBE=true
Test: inspect pools in build-${TARGET-PRODUCT}.ninja for m USE_GOMA=true
Change-Id: I08615ae1f2eaef9ff0ba253b8aa3d83ab57ebb27
We have all of the 'type' information for properties available during
build time, so let's check this when setting properties in init.
Test: setprop apexd.status bad results in:
host_init_verifier: Command 'setprop apexd.status bad'
(out/soong/.intermediates/system/core/rootdir/init.rc/android_x86_core/init.rc:927)
failed: Property type check failed, value doesn't match expected type
'enum starting ready'
host_init_verifier: Failed to parse init script
'out/soong/.intermediates/system/core/rootdir/init.rc/android_x86_core/init.rc'
with 1 errors
Test: CF builds without that error
Change-Id: Ia1b24ab42e2193e3298021bc86ee2309ca7a381f
Additional context (for Googlers): go/android-fuzzing-shared
This patch adds the Make support for automatically installing sanitized
dependent shared libraries. 'make $module' will find all the shared
library dependencies in soong, and create the rules to install them. We
simply need to add the <install sanitized shared library> rule that's
made by Soong as a dependency of the module's phony.
We also now change 'm fuzz' to not just build the fuzz packages, but to
build all fuzz targets into the respective
$ANDROID_PRODUCT_OUT/data/fuzz and $ANDROID_HOST_OUT/fuzz directories.
Bug: N/A
Test: Build fuzz target with shared libs, note the contents of
$ANDROID_PRODUCT_OUT/data/fuzz/lib and out/soong/fuzz-target-*.zip now
has shared libraries.
Change-Id: I74def02fee663ef788ee25ec0d5106faf474c2a6
There is no reason for these scripts to continue to exist in /, when
they are better suited for /system/etc. There are problems keeping
them at / as well, particularly that they cannot be updated with
overlayfs.
Bug: 131087886
Bug: 140313207
Test: build/boot
Merged-In: I5aa0332e7f0e3fb6840b60e3d099c2b28d38b7ea
Change-Id: I5aa0332e7f0e3fb6840b60e3d099c2b28d38b7ea
Only if PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE is set,
every app and java library in product cannot use hidden APIs anymore.
Bug: 132780927
Test: m
Test: set PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE, and check whether build
error occurs.
Change-Id: Ib6c260a16b9cbb95be70d8db3082a15e151687f1
Don't contaminate the build log.
Test: m check-all-partition-sizes -j (verbose logs stored to file)
Test: m check-all-partition-sizes-nodeps -j (see verbose logs)
Test: manually run the script with[out] -v and with[out] --logfile
Change-Id: I345a340deab3e29bb9cb05d4970a55d8758607a7
Path conflicts could happen when following conditions are met.
1) a java library named "foo" is not installable.
2) a java library named "bar" is installable, and its stem is set to
"foo".
Then the notice file for 1) becomes foo.jar.txt following its
LOCAL_MODULE, while the notice file for 2) becomes foo.jar.txt following
its stem. Since the file for 1) is a synthetic one, the actual name
isn't important. Avoid the conflict by appending a suffix
(_non_installable, but could be anything) to the file name for 1).
There still is a chance for the conflict; if the stem for "bar" is set
to "foo_non_installable". But practically, the chances are very low.
Bug: 139391334
Bug: 143700028
Test: m
Change-Id: Id50b30774bbf65cc180baf963a95ea56fe6eb74f
Use the same procedure to avoid code duplication.
Note that dump-dynamic-partitions-info not only has more information,
but also changes keys:
- from X_size to super_X_group_size
- from X_partition_list to super_X_partition_list
delta_generator is updated to recognize these new keys as well.
Test: build ota package
Test: forrest
Change-Id: I6a973fc113fb80b352822a14991cad027c72cf06
AOSP targets doesn't have INSTALLED_VENDORIMAGE_TARGET defined.
Fix dump-dynamic-partitions-info to filter out vendor
from dynamic partition lists.
Then, check_partition_sizes.py reads info without vendor
in dynamic partition list for AOSP targets.
Test: forrest
Bug: 143734706
Change-Id: I788196d854c1cf3eea218d534599f8bf642120fc
We are bringing up support for ARM Memory Tagging Extension in the platform,
but the required patches have not yet landed in the upstream kernel. This
change adds support for a product variable that products may set to true to
declare support for an experimental userspace interface to MTE. Setting the
variable to true causes a product configuration to be enabled which will
activate code in bionic and scudo that uses the interface.
This variable should not be set to true in shipping products because
the userspace interface has not been finalized and is subject to change.
Once the support patches have landed in the kernel, bionic and scudo will
be changed to use the official interface and the variable will be removed.
Bug: 135772972
Change-Id: Ie3d2619bc09c134e0da073c65805e7ec049687e1