Commit Graph

19164 Commits

Author SHA1 Message Date
Anton Hansson
c1d0bfef47 Merge "Fix non-existing modules check" 2019-06-26 09:44:30 +00:00
Treehugger Robot
7ec8749eb8 Merge "Install shared library dependencies for 64-bit windows" 2019-06-25 23:57:46 +00:00
Anton Hansson
528fdc021f Fix non-existing modules check
This variable was accidentally changed to refer to the
shorthand PRODUCT_XYZ instead of PRODUCTS.<mk>.PRODUCT_XYZ
in a previous mass-migration, but that shorthand didn't
exist for these variables. Add it in.

Also whitelist the offender introduced since it was broken.

Test: lunch generic; m nothing
Change-Id: I29dd73c29796743e770afa0c2ceb4f8583dc6e1e
2019-06-25 21:52:58 +01:00
Tao Bao
c931547560 Stop passing --block and MKBOOTIMG to ota_from_target_files.
- `--block` has been a no-op since Oreo [1] -- ota_from_target_files
  will always build block-based OTAs or A/B OTAs.
- MKBOOTIMG is no longer needed when calling ota_from_target_files, at
  least for the callsite in Makefile. Because target_files.zip has been
  including boot/recovery images since Lollipop [2].

This CL also switches to long options to improve readability.

[1] commit 457cbf6a8a
[2] commit 3c84f56948

Test: TreeHugger
Change-Id: I801bd0525d2529156bbf783698661d90ba24017a
2019-06-25 13:04:06 -07:00
Dan Willemsen
b88f792d25 Install shared library dependencies for 64-bit windows
Test: m host_cross_libandroidicu_64; see libs in out/host/windows-x86/lib64
Change-Id: Ibf816aeb96e70b70cfcb9b58df9605c3af87db39
2019-06-25 12:56:41 -07:00
Tao Bao
ec53f441fa Merge "Clean up the dependencies for user image creation." 2019-06-25 17:57:43 +00:00
Isaac Chen
17a3aa4819 Merge "Add lpunpack to otatools for rebuilding super.img" 2019-06-25 17:19:46 +00:00
Isaac Chen
eec4a7cba4 Add lpunpack to otatools for rebuilding super.img
lpunpack is needed to repackage super.img for mixed-image virtual devices.
For Cuttlefish, it's included in host package. We need to include it in
otatools.zip so Goldfish or other devices can use it to mix their super images.
Necessary SOs are the same as lpmake and have been included in otatools.zip.

Bug: 134461288
Test: $ lunch aosp_x86-userdebug
      $ m otatools-package
      $ unzip -l $OUT/ota* | grep lpunpack
        467824  2008-01-01 00:00   bin/lpunpack

Change-Id: Ie2092f18afb88721b29b1738847a0b781dbcd431
2019-06-25 11:50:58 +08:00
Tao Bao
dba635a3b7 Clean up the dependencies for user image creation.
The dependency on MAKE_EXT4FS (mke2fs) has been covered by the rule for
MKEXTUSERIMG (mkuserimg_mke2fs):
https://android.googlesource.com/platform/system/extras/+/refs/heads/master/ext4_utils/Android.bp

The dependency on mksquashfs and img2simg comes from mksquashfsimage.sh,
which has been moved into mksquashfsimage's building rule.

This CL also fixes the ordering of INTERNAL_USERIMAGES_BINARY_PATHS,
which should come after adding all the binaries to
INTERNAL_USERIMAGES_DEPS.

Test: TreeHugger
Change-Id: I8b30bf87860d9711e88eecca4b76db72f5cd8241
2019-06-24 15:47:47 -07:00
Tao Bao
cf821fc963 Fix an issue in setting up PATH.
`PATH=$(foreach p,$(INTERNAL_USERIMAGES_BINARY_PATHS),$(p):)$$PATH` will
produce a space separated string due to `foreach`, if
$(INTERNAL_USERIMAGES_BINARY_PATHS) has more than one string. We didn't
hit the issue in the past because $(INTERNAL_USERIMAGES_BINARY_PATHS)
had contained only one path in practice.

Test: TreeHugger
Change-Id: I74ef4356668af63d871a81f6bfd4c9324aa1d956
2019-06-24 14:08:36 -07:00
Treehugger Robot
4188cc5c5c Merge "Allow passing --legacy in LOCAL_AAPT_FLAGS" 2019-06-24 17:13:44 +00:00
Colin Cross
18f28c7781 Allow passing --legacy in LOCAL_AAPT_FLAGS
--legacy will soon no longer be passed by default to all aapt2
compiles.  Allow it to be specified in LOCAL_AAPT_FLAGS by passing
it to aapt2 compile when it is present and filtering it out from
the flags passed to aapt2 link.

Bug: 135597368
Test: m java
Change-Id: I92792cf6a0d4c6ecf5e0971523bd0ab76c81345f
2019-06-22 13:03:09 -07:00
Treehugger Robot
4ba3984b4c Merge "Remove experimental pass manager for fuzzer builds." 2019-06-21 00:51:26 +00:00
Dan Shi
3771cff834 Merge "Create individual build artifact for test suite build output" 2019-06-20 20:30:34 +00:00
Dan Shi
51b789e422 Create individual build artifact for test suite build output
This change creates following build artifacts that are currently part of
device-tests.zip and general-tests.zip. The smaller build artifacts are
used to reduce the download size required to run TradeFed suite.
Detailed design can be found in the bug.

From device-tests
device-tests_configs: include all test config files in device-tests, zip
  file is less than 1MB.

From general-tests
general-tests_configs: include all test config files in general-tests,
  zip file is less than 1MB.
general-tests_host-shared-libs: include tools and shared libraries
  required to run host side test, zip file is about 60MB

Bug: 73786521
Test: make device-tests and general-tests, verify output.
Change-Id: I34c9aa3c1c672d5d58eab6de92198a7b8e4a681c
2019-06-20 10:02:36 -07:00
Treehugger Robot
fde688ebc8 Merge "Fixes a typo in a comment." 2019-06-20 04:20:36 +00:00
Dan Willemsen
cb4c357661 Use dexpreopt image deps from Soong
Instead of just depending on the single image file, depend on the entire
image that gets loaded -- the .oat / .vdex files, and the modules that
are part of the image that have their own files.

This is necessary for RBE, where the rule only gets the files that it
depends upon.

Test: treehugger
Test: build a system image with RBE
Change-Id: I93a580b42cf4ef1824ee1397e551c065f083348a
2019-06-18 01:19:04 +00:00
Dan Willemsen
70b934ee64 Depend on all the files from system modules
Test: treehugger
Change-Id: Ie84dda3d05a84658ad9386a3034d861138f25b2c
2019-06-18 01:19:04 +00:00
Mitch Phillips
ee2dcac47a Remove experimental pass manager for fuzzer builds.
Sanitizer coverage is currently broken with the experimental pass
manager. See b/133876586 for more information. The patch is currently
being worked on upstream (https://reviews.llvm.org/D62888), but is not
ready yet. Hence, we disable it here (similar to the LTO bug).

Bug: 133876586
Test: Build anything with SANITIZE_TARGET='fuzzer', verify that it has
'sancov' symbols.

Change-Id: I74d02e52ccbe2a3d96b6b8e30230197b554e60a0
2019-06-17 10:37:55 -07:00
Jaewoong Jung
e6f57e05ec Fixes a typo in a comment.
Test: TreeHugger
Change-Id: Ie124090280eb0c1235e50baa4a869399bb440abb
2019-06-16 21:48:42 -07:00
Patrick Tu
58982618e1 Merge "AIDEGen: Collect the classes.jar of the prebuilt modules into module-info.json" 2019-06-17 02:51:56 +00:00
Dan Shi
fde58bccbc Merge "Update auto-gen test config template with EXTRA_CONFIGS placeholder" 2019-06-14 22:21:39 +00:00
Treehugger Robot
87ebb3013f Merge "Allows skipping building the super images for partial builds." 2019-06-14 21:42:33 +00:00
Treehugger Robot
2e1516dc44 Merge "Start the deprecation of BUILD_HOST_STATIC_LIBRARY" 2019-06-14 20:28:46 +00:00
Treehugger Robot
acfbc544e6 Merge "Fail build when sum of sizes of logical partitions exceeds OEM-set limit" 2019-06-14 20:23:08 +00:00
Daniel Norman
0bf940cace Allows skipping building the super images for partial builds.
Previously, setting PRODUCT_BUILD_SUPER_PARTITION to false for a partial
build (with PRODUCT_USE_DYNAMIC_PARTITIONS == true) would fail to
include necessary keys in misc_info.txt that are required when merging
two partial builds to create a dynamic-partition-enabled mixed build.

This change ensures these necessary keys are included even when
PRODUCT_BUILD_SUPER_PARTITION is false. Setting
PRODUCT_BUILD_SUPER_PARTITION to false causes partial builds to skip
building super.img and super_empty.img, instead relying on these images
to come from the final merged build.

Bug: 134764140
Test: Building & booting a dynamic-partition-enabled mixed build, and
inspecting partial builds' logs / out folder to ensure that
super.img/super_empty.img were not created.

Change-Id: I99431a9a342e9b0617510e250597f3024ef39322
2019-06-14 11:42:45 -07:00
Dan Willemsen
22f69e1094 Start the deprecation of BUILD_HOST_STATIC_LIBRARY
There aren't any common users of this left on AOSP, and only a few
internally.

Test: treehugger
Change-Id: I37277dbf10aa253ef64ca748f82765d16ae1cf80
2019-06-14 09:37:42 -07:00
Hridya Valsaraju
219b6294dc Fail build when sum of sizes of logical partitions exceeds OEM-set limit
BOARD_SUPER_PARTITION_ERROR_LIMIT can be set by OEMs to cause a
build failure when the sum of sizes of logical partitions exceeds the same.
It is set to BOARD_SUPER_PARTITION_SIZE by default.

Bug: 133329143
Test: mmm -j32

Change-Id: Ief85c9ab3e3b9d071cd22b70e13b5c64bb784b9c
2019-06-14 09:34:46 -07:00
Dan Shi
4c55da09db Update auto-gen test config template with EXTRA_CONFIGS placeholder
Bug: 134509111
Test: add "require_root: true" to init_benchmarks and libpower_test
build the modules, confirm the extra target preparer is added in the
test config.

Change-Id: I2fdae79d45fd1e5866ee94d1f0e59df106be2a87
2019-06-13 20:32:22 -07:00
patricktu
379f7f0ef6 AIDEGen: Collect the classes.jar of the prebuilt modules into module-info.json
Current information is not enough if the prebuilt modules are depend on
AAR libs Therefore, AIDEGen has to collect the classes.jar of the
prebuilt modules from build system.

Build module-info.json without this change:
Build time: 1m55.001s
File size: 14,918,354 Bytes

Build module-info.json with this change:
Build time: 1m56.292s
File size: 15,577,031 Bytes

Bug: 132768299
Test: 1. Checkout the internal master branch
      2. Patch this CL
      3. m -j out/target/product/generic_x86_64/module-info.json
      4. Open the module-info.json
      5. For verifying soong_java_prebuilt.mk, check the classes.jar of
         module prebuilt-google-play-* exists.
         e.g.
         "prebuilt-google-play-...": {
              ...
              "classes_jar": [
	      	"out/target/common/obj/JAVA_LIBRARIES/
		 prebuilt-google-..._intermediates/classes.jar"
	      ]
         }
      5. For verifying java_prebuilt_internal.mk, check the classes.jar
         of module ink exists.
         e.g.
	 "ink": {
	     ...
	     "classes_jar": [
	     	"out/target/common/obj/JAVA_LIBRARIES/ink_intermediates/
		 classes.jar"
	     ]
	 }

Change-Id: I09518c92260db47d2686493fa13951f316159d13
2019-06-14 10:47:18 +08:00
Treehugger Robot
491ae5b2d1 Merge changes I2183ac9f,I2c76701c,Ibbe4e11a,I0706faa2,Ic5b7c4fb, ...
* changes:
  Fix dependency on BOARD_AVB_SYSTEM_KEY_PATH
  Fix some java library dependencies
  Depend on NDK libraries
  Call clean-path in more places
  Add missing dependecy on SOONG_ZIP
  Add dependencies on the toolchain (clang, etc)
2019-06-13 17:13:22 +00:00
Treehugger Robot
b7035aef21 Merge "Make kernel modules into normal installed files" 2019-06-13 10:51:23 +00:00
Dan Willemsen
6b72c73a50 Fix dependency on BOARD_AVB_SYSTEM_KEY_PATH
Bug: 130111713
Test: treehugger
Change-Id: I2183ac9f8c45eec178876768dfcc83ae62445293
2019-06-12 21:36:57 +00:00
Dan Willemsen
f14179b3ff Fix some java library dependencies
Bug: 130111713
Test: treehugger
Test: build system image w/RBE
Change-Id: I2c76701c1ad396c1b13f873297785c736fba544d
2019-06-12 21:36:29 +00:00
Dan Willemsen
b441630067 Depend on NDK libraries
Bug: 130111713
Test: treehugger
Test: build system image with RBE
Change-Id: Ibbe4e11a7681c52d2197ce35ae47d4939ca246b6
2019-06-12 21:35:46 +00:00
Dan Willemsen
bbe4e11a76 Call clean-path in more places
When an Android.mk specifies a local path that is outside the current
directory, it uses '..', since we prepend $(LOCAL_PATH)/ to the given
path.

This path ('a/b/../c') gets inserted into command lines and
dependencies. For dependencies, when it gets to Ninja, Ninja calls
CanonicalizePath and removes those references ('a/c'), but the command
line is preserved.

So we've got a command line that references 'a/b', but no dependency on
it. Usually that's not a big problem, but it's an issue if we're trying
to only expose dependencies to the rule, like with RBE only sending the
dependencies to the remote workers. So use our 'clean-path' macro to
collapse the '..' references in Kati so that they don't show up in the
command line either.

Test: treehugger
Test: build a system image with RBE
Change-Id: I0706faa2ac15e9c12c720f43c7bb8171c5efd97c
2019-06-12 21:35:33 +00:00
Dan Willemsen
0706faa2ac Add missing dependecy on SOONG_ZIP
Bug: 130111713
Test: treehugger
Change-Id: Ic5b7c4fbefa83cf002c5f30c1b4646f35e718ca2
2019-06-12 21:35:24 +00:00
Dan Willemsen
c5b7c4fbef Add dependencies on the toolchain (clang, etc)
Historically, we've relied on the path to the clang compiler changing in
order to trigger rebuilds instead of direct dependencies on the compiler
itself. That's somewhat more reliable, since the actual $(CLANG) file is
often a script that doesn't actually change during every update.

In Soong, we've added the dependency anyway, so do it here as well. This
makes it easier for my RBE experiments to identify when we intend to use
clang and to send the entire compiler.

Test: treehugger
Test: build a system image with RBE, find that every command that needed
the compiler gets it.
Change-Id: I3838b5d77884394a8c0f7a1ba133142102602084
2019-06-12 21:34:52 +00:00
Alexander Smundak
f25ffc0a98 Merge "Tune JVM, print full diagnostics on crash." 2019-06-12 15:33:06 +00:00
Treehugger Robot
6aef14d0e9 Merge "Package coverage files as a zip." 2019-06-12 02:00:01 +00:00
Sasha Smundak
a638788c1a Tune JVM, print full diagnostics on crash.
JVM occasionally (0.5% time) crashes on entering a method with SIGSEGV.
It might be due to excessive load on the host machine. Reduce the number
of the compiler threads to 6, and do not start all the GC threads
immediately. If JVM crashes, copy full diagnostics to stderr.

Bug: 132766811
Test: treehugger
Change-Id: Ic1b09e0f2cbcf4c22214eaaeae464899b2b99ef7
2019-06-11 13:29:12 -07:00
Treehugger Robot
56bfae6402 Merge "Add missing dependencies to python scripts" 2019-06-11 03:15:54 +00:00
Treehugger Robot
68c39b5d06 Merge "Convert java proto generation to use srcjars" 2019-06-11 02:51:18 +00:00
Treehugger Robot
e6d5b8321f Merge "Ignore testcases' NOTICE files" 2019-06-11 00:24:31 +00:00
Treehugger Robot
86a3f0c6c0 Merge "fix: wrong dependency from ETC to libc++.so" 2019-06-11 00:24:13 +00:00
Dan Willemsen
c84e4cb917 Add missing dependencies to python scripts
These were found when trying to run remotely on RBE with only the
sources depended upon available for each rule.

Bug: 130111713
Test: treehugger
Change-Id: Id763f8fc7dfbe60445f98604db3422147165f537
2019-06-10 23:58:49 +00:00
Dan Willemsen
84c6c1cfe4 Convert java proto generation to use srcjars
So that we actually represent all files in the build graph.

Test: treehugger
Change-Id: I48e32437fcfd8c0de8cbc87d07934393db557aa4
2019-06-10 16:31:07 -07:00
Oliver Nguyen
e91ab2397f Package coverage files as a zip.
Test: make NATIVE_COVERAGE=true COVERAGE_PATHS="*"
Change-Id: I7ee9253ef47a502a9d29f7e15a4402cbb90e34ae
2019-06-10 15:27:31 -07:00
Xin Li
236438ab1e Merge "DO NOT MERGE - Merge pie-platform-release (PPRL.190605.003) into master" 2019-06-10 19:54:59 +00:00
Treehugger Robot
f1e61651e0 Merge "Print a warning when sum of sizes of logical partitions an OEM-set limit" 2019-06-10 18:17:40 +00:00