Commit Graph

22292 Commits

Author SHA1 Message Date
Colin Cross
c33f240d3c Merge "Forbid -Weverything" 2019-11-13 15:01:48 +00:00
Tom Cherry
4f51fba546 Merge "Move init and ueventd scripts from / to /system/etc" 2019-11-13 14:36:47 +00:00
Ian Kasprzak
92b51b4e8d Merge "Switch from VENDOR_BLOBS_NOTICE to VENDOR_BLOBS_LICENSE."
am: 9651113f02

Change-Id: Ie75c0afa4ea7be473d593066693806c15c40de02
2019-11-12 21:50:48 -08:00
Ian Kasprzak
4305cf2797 Switch from VENDOR_BLOBS_NOTICE to VENDOR_BLOBS_LICENSE.
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
2019-11-12 18:45:44 -08:00
Colin Cross
0d1f54e2e1 Forbid -Weverything
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
2019-11-12 15:56:55 -08:00
Colin Cross
23dcf76a36 Set pools manually for rules that can run in RBE or goma
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
2019-11-12 13:59:49 -08:00
Jaewoong Jung
a631404a9b Merge "Add RENDERSCRIPT_BITCODE to misc_prebuilt_internal whitelist."
am: 490efb2c14

Change-Id: Id1bc35c280f43cd013c764a98a17254f93451258
2019-11-12 08:13:41 -08:00
Jaewoong Jung
73096796e7 Add RENDERSCRIPT_BITCODE to misc_prebuilt_internal whitelist.
Fixes: 143091822
Test: TreeHugger
Change-Id: Ic2fd42f6dae0130af060114b651a139dc3bebf20
2019-11-11 15:21:06 -08:00
Jaewoong Jung
1c274567c2 Merge "Add RENDERSCRIPT_BITCODE to misc prebuilt whitelist."
am: 834b91f20e

Change-Id: If6ccc6cc7f7c11d7ea0f884e72a37de94a4ee114
2019-11-11 12:55:24 -08:00
Jaewoong Jung
3f2850e51a Add RENDERSCRIPT_BITCODE to misc prebuilt whitelist.
Test: TreeHugger
Fixes: 143091822
Change-Id: Iad763d4bfc9bc30f48a2ef786150cd510e55c8d1
2019-11-11 09:30:38 -08:00
Jeongik Cha
cd22a52276 Merge "Enforce hidden apis usage in product(make)"
am: ad73624924

Change-Id: Ibbeb72d7fb1f0bd19818ac87dad88e527dbc8b06
2019-11-11 09:06:12 -08:00
Ian Kasprzak
9a5a603b33 Merge "Add "with-license" rule to generate public AOSP phone image."
am: 44b20aca98

Change-Id: I9fb73e67587731d720c95f5e5af0cce56fbc8b21
2019-11-11 09:05:44 -08:00
Mitch Phillips
6462bbf0ba Merge "Make backend for shared library fuzzing."
am: eed4e1324e

Change-Id: I92c6b52404570892124b7de71f11cbe109907534
2019-11-11 09:02:32 -08:00
Treehugger Robot
ad73624924 Merge "Enforce hidden apis usage in product(make)" 2019-11-11 02:05:16 +00:00
Treehugger Robot
44b20aca98 Merge "Add "with-license" rule to generate public AOSP phone image." 2019-11-10 01:11:04 +00:00
Ian Kasprzak
9601e6e0f8 Add "with-license" rule to generate public AOSP phone image.
Bug: 125451157
Test: Verified output in out and dist folders

Additional verification:
- Without the VENDOR_BLOBS_NOTICE build fails
- Output shell artifact displays license as expected
- Shell artifact permissions are correct (ug executable)
- Shell artifact unzips inner zip after license agreement
- Unzipping shell artifact only unzips license.txt file

Change-Id: If1004bd61d873c592c8541a13724eb575f59cddf
2019-11-09 14:21:45 -08:00
Tom Cherry
2e92cfb701 Check property type in host_init_verifier
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
2019-11-08 17:58:31 -08:00
Treehugger Robot
eed4e1324e Merge "Make backend for shared library fuzzing." 2019-11-08 21:35:08 +00:00
Colin Cross
607dabf75b Merge "Fix turbine classpath arguments in Make"
am: 9c28a4a15c

Change-Id: I53fbdd3ed3bc1f363c5cca56c1cea9516d362cff
2019-11-08 07:23:16 -08:00
Colin Cross
9c28a4a15c Merge "Fix turbine classpath arguments in Make" 2019-11-08 15:07:44 +00:00
Mitch Phillips
3adbcb31ea Make backend for shared library fuzzing.
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
2019-11-07 15:39:34 -08:00
Yifan Hong
a2d2b3e7d3 Merge "dynamic_partitions_info.txt: use dump-dynamic-partitions-info"
am: 9e61bf053f

Change-Id: If49f7feb04004caf9272fd9c1d0ecd3d90cff8fa
2019-11-07 12:59:15 -08:00
Treehugger Robot
9e61bf053f Merge "dynamic_partitions_info.txt: use dump-dynamic-partitions-info" 2019-11-07 20:49:45 +00:00
Tom Cherry
89eea96fe1 Move init and ueventd scripts from / to /system/etc
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
2019-11-07 11:28:56 -08:00
Jaewoong Jung
2e007a7b04 Merge "Enable overrides for ETC modules"
am: 0c9d914eef

Change-Id: Ieb7dab1bf707b5f02068898baf5a9bffa3622df7
2019-11-06 18:39:54 -08:00
Jaewoong Jung
7c7dfcdf54 Enable overrides for ETC modules
Bug: 143975137
Test: TreeHugger
Change-Id: I8290d06726d8aabe265022cd84ec2ea97eff7acf
2019-11-06 14:08:59 -08:00
Jeongik Cha
7452979a9e Enforce hidden apis usage in product(make)
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
2019-11-06 19:41:47 +09:00
Yifan Hong
309109351e Move check partition size logs to a file
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
2019-11-05 14:06:27 -08:00
Yifan Hong
7441a6bbe2 Merge changes from topic "dap_size_check_python"
am: bfcfa8c18f

Change-Id: Ibad4c2c60de81a61abda4ef9bb4c1cf133cc5ee7
2019-11-05 10:15:18 -08:00
Yifan Hong
bfcfa8c18f Merge changes from topic "dap_size_check_python"
* changes:
  Skip checking vendor partition size on AOSP targets
  Reland "Move partition size checks to python script"
2019-11-05 17:53:39 +00:00
Inseob Kim
8817894034 Merge "Fix and generate vndk snapshot entirely in Soong"
am: db49de8560

Change-Id: I7c160d3937be07eb14989f774a8a62a3e8a49a6f
2019-11-04 20:12:48 -08:00
Treehugger Robot
db49de8560 Merge "Fix and generate vndk snapshot entirely in Soong" 2019-11-05 03:48:51 +00:00
Colin Cross
38c5b43bb3 Merge "Use system modules for turbine in Make"
am: dd386dc9ac

Change-Id: I07d373a5161e760b9910eb98d8f4dd05cbdb7159
2019-11-04 11:17:49 -08:00
Colin Cross
dd386dc9ac Merge "Use system modules for turbine in Make" 2019-11-04 18:54:32 +00:00
Ulyana Trafimovich
fba1b6ae33 Merge "Disable dexpreopt on targets that do not include default ART config."
am: 6dc79ada3d

Change-Id: Iff64081fba52c767fa7a0a03fd1b424eebbce577
2019-11-04 04:19:58 -08:00
Anton Hansson
331fb4f7d6 Merge "Ensure current product use PRODUCT_* vars directly"
am: 871d39c40e

Change-Id: I2ac946500a07f8ee464d32d9a8fd9a558febdf1f
2019-11-04 04:12:14 -08:00
Jiyong Park
9c792a81ea Merge "Avoid path conflicts for the notice files"
am: 479cc84706

Change-Id: I194cf736ca9e1a653f06d52f767f93788808b53b
2019-11-04 04:08:24 -08:00
Ulyana Trafimovich
6dc79ada3d Merge "Disable dexpreopt on targets that do not include default ART config." 2019-11-04 12:04:04 +00:00
Anton Hansson
871d39c40e Merge "Ensure current product use PRODUCT_* vars directly" 2019-11-04 10:35:48 +00:00
Jiyong Park
479cc84706 Merge "Avoid path conflicts for the notice files" 2019-11-04 09:46:42 +00:00
Jiyong Park
e12c862013 Avoid path conflicts for the notice files
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
2019-11-04 10:30:34 +09:00
Peter Collingbourne
212c2696b7 Merge "Add support for $(TARGET_EXPERIMENTAL_MTE) in product configs."
am: 227ad08281

Change-Id: I2ca611f2c933509bef3756171ab319d449ad06d0
2019-11-01 19:13:51 -07:00
Peter Collingbourne
227ad08281 Merge "Add support for $(TARGET_EXPERIMENTAL_MTE) in product configs." 2019-11-02 02:00:22 +00:00
Yifan Hong
cb8e2755ff dynamic_partitions_info.txt: use dump-dynamic-partitions-info
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
2019-11-01 17:27:02 -07:00
Yifan Hong
60bfcc4fac Skip checking vendor partition size on AOSP targets
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
2019-11-01 17:04:27 -07:00
Peter Collingbourne
784db1a741 Add support for $(TARGET_EXPERIMENTAL_MTE) in product configs.
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
2019-11-01 15:33:52 -07:00
Colin Cross
665ebbe471 Fix turbine classpath arguments in Make
We were passing "--classpath foo.jar --classpath bar.jar" to turbine,
it now wants (and may always have expected?)
"--classpath foo.jar bar.jar".

This is equivalent to Ib7e0ca64a34e236110f7b785d6a0fb51ed75567e in
Soong.

Test: m java
Change-Id: I061ebf302a215c66b1923056716b60bf0160d9bc
2019-11-01 13:35:17 -07:00
Colin Cross
f0add55066 Use system modules for turbine in Make
turbine supports taking system modules on the command line,
now that we target Java language level 1.9 and use system modules
by default switch turbine to match javac.

This is equivalent to Ieee07502151da0d5693bb8929213d495c039106b
in Soong.

Test: m java
Change-Id: Ib91c6f57b316f48f1ab819e4e1d2dc2e0ee42988
2019-11-01 13:34:46 -07:00
Yifan Hong
3a7c2ef7cc Reland "Move partition size checks to python script"
This reverts commit 0141e45b96.

Reason for revert: Fixed in follow-up CL
Test: forrest
Bug: 143734706

Change-Id: I007acf228d4fb4d6a16ae9089e3f04cf33a567bb
2019-11-01 11:41:26 -07:00
Ulya Trafimovich
5877cec1fa Disable dexpreopt on targets that do not include default ART config.
Dexpreopt build commands should only be generated on targets that
include build/make/target/product/runtime_libart.mk, which sets the
necessary variables such as PRODUCT_SYSTEM_DEFAULT_PROPERTIES that
contain default values passed to dex2oat. This file also sets a
variable PRODUCT_USES_DEFAULT_ART_CONFIG that is used in
build/make/core/dex_preopt.mk to decide if boot images should be
installed.

On some targets build/make/target/product/runtime_libart.mk is not
included. Prior to this patch, on such targets invalid dexpreopt
commands were generated, but not used, so they did not cause any
visible build failures. The invalid commands can be grepped as:

  lunch qemu_trusty_arm64-userdebug && m nothing \
    && fgrep -e '-Xms ' $ANDROID_BUILD_TOP/out/soong/build.ninja

In this case '-Xms ' is an ill-formed option passed to dex2oat (the
option expects one argument, but none is passed).

This patch makes the DisablePreopt variable passed from make to
soong more strict: it not only requires WITH_DEXPREOPT, but also
PRODUCT_USES_DEFAULT_ART_CONFIG. This means that dexpreopt commands
will not be generated on targets that do not include
build/make/target/product/runtime_libart.mk.

Test: lunch aosp_walleye-userdebug && m \
    && find $ANDROID_BUILD_TOP/out -name 'boot.art'
    # expect to find files in /out/target/product/walleye/system/framework/$ARCH/

Test: lunch qemu_trusty_arm64-userdebug && m \
    && fgrep -e '-Xms ' $ANDROID_BUILD_TOP/out/soong/build.ninja
    # expect empty output

Change-Id: I3d765ed0dd8b38236b8bdd5c6202bb1d3f45f904
2019-11-01 18:20:35 +00:00