Commit Graph

21967 Commits

Author SHA1 Message Date
Chih-Hung Hsieh 0d51f2fe2f Add rust_device_test_config_template.xml
* Derived from native_test_config_template.xml

Bug: 140938178
Test: make rust projects
Change-Id: I5bfeb0a578cb0fcf134eb9b524a6d3e5b6eeafcc
2019-12-02 17:44:47 +00:00
Dan Shi 06c957dde2 Merge "Add vts-core-tradefed.jar to general-tests.zip" 2019-11-30 04:47:54 +00:00
Kris Alder fe283c99e6 Merge "rename 'make fuzz' to 'make haiku'" 2019-11-27 17:29:00 +00:00
Ulyana Trafimovich 28ef4100ac Merge "Revert^2 "Do not dexpreopt system server jars from updatable modules."" 2019-11-27 12:45:34 +00:00
Ulyana Trafimovich 213a7d86d5 Revert^2 "Do not dexpreopt system server jars from updatable modules."
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
2019-11-27 12:29:42 +00:00
Kris Alder 8c8c2b96f2 rename 'make fuzz' to 'make haiku'
Bug: 145147479
Test: ran 'make haiku' locally, verified results match
Change-Id: I56b9bcfabe7dee705008e711d7c7d85421643e42
2019-11-26 12:03:39 -08:00
Ulyana Trafimovich fa7cf280ca Revert "Do not dexpreopt system server jars from updatable modules."
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
2019-11-26 13:06:13 +00:00
Dan Willemsen c9a657c907 Clean include directory paths
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
2019-11-25 20:39:22 -08:00
Yifan Hong 874a5aa95e Merge "Move check partition size logs to a file" 2019-11-26 00:32:52 +00:00
Ulya Trafimovich 3fb6a949a6 Do not dexpreopt system server jars from updatable modules.
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
2019-11-25 16:36:52 +00:00
Dan Shi bafb1d7289 Add vts-core-tradefed.jar to general-tests.zip
This is needed for vts-core tests require vts specific preparers.

Bug: 142972256
Test: m -j general-tests
Change-Id: Ic2def11ac5f57a923d2bcefe6683e9a5fa66e7c6
2019-11-23 12:16:11 -08:00
Roshan Pius d6e239fc35 base_system.mk: Support system_server jars from apexes
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
2019-11-22 12:48:09 -08:00
Treehugger Robot 4a0832210c Merge "Copy additional test apk outputs to suite dirs." 2019-11-21 23:20:16 +00:00
Jaewoong Jung 8bc6908feb Copy additional test apk outputs to suite dirs.
Bug: 143902486
Test: m CtsIsolatedSplitApp
Change-Id: I13900ac2c8bb886987362dd380818ab5df2f23c6
2019-11-21 10:36:28 -08:00
Treehugger Robot cedced8471 Merge "add BOARD_*_KERNEL_MODULE_ARCHIVE support" 2019-11-20 22:57:39 +00:00
Steve Muckle 810a0ba56f add BOARD_*_KERNEL_MODULE_ARCHIVE support
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
2019-11-20 10:46:13 -08:00
Chih-Hung Hsieh ef17769720 Set NATIVE_TESTS executable like EXECUTABLES
* Rust test modules should have NATIVE_TESTS class,
  not EXECUTABLES, to work with atest --host.

Bug: 140938178
Test: make rust projects
Change-Id: I45c84284d894702471ea46faaa599de27ab6be51
2019-11-15 14:10:09 -08:00
Colin Cross 9d789145fa Merge "Set pools manually for rules that can run in RBE or goma" 2019-11-15 18:19:33 +00:00
Chih-Hung Hsieh 43abe9590f Add rust_host_test_config_template.xml
* Derived from python_binary_host_test_config_template.xml

Bug: 140938178
Test: make rust projects
Change-Id: I050e310c25952d7ca7af25ca2803f98817e465c8
2019-11-14 09:57:13 -08:00
Tom Cherry 3c697d59fb Merge "Check property type in host_init_verifier" 2019-11-13 18:41:17 +00:00
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 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 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 3f2850e51a Add RENDERSCRIPT_BITCODE to misc prebuilt whitelist.
Test: TreeHugger
Fixes: 143091822
Change-Id: Iad763d4bfc9bc30f48a2ef786150cd510e55c8d1
2019-11-11 09:30:38 -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 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
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 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 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
Treehugger Robot db49de8560 Merge "Fix and generate vndk snapshot entirely in Soong" 2019-11-05 03:48:51 +00:00
Colin Cross dd386dc9ac Merge "Use system modules for turbine in Make" 2019-11-04 18:54:32 +00: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 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