Commit Graph

15232 Commits

Author SHA1 Message Date
Isaac Chen ecc09990e3 Merge "Enable vndk_package if BOARD_VNDK_VERSION is set" 2018-04-24 02:08:44 +00:00
Isaac Chen a13b3153c1 Enable vndk_package if BOARD_VNDK_VERSION is set
This is a first attempt to enable build system support to include
vndk_package automatically (if BOARD_VNDK_VERSION is set), so devices
don't need to add it via PRODUCT_PACKAGE manually.

Bug: b/67002788
Test: Booted on the x86 emulator and a physical device and checked
      their /system/lib*/vndk-* directories for vndk_package libraries.
    # The commands below are for the x86 emulator:
    $ lunch aosp_x86_64-userdebug; m -j
Change-Id: Iea927b9535c7ee1b64ca130a4ac54f0fd8b3f758
Merged-In: Iea927b9535c7ee1b64ca130a4ac54f0fd8b3f758
(cherry picked from commit 5364f5a298)
2018-04-24 10:07:10 +08:00
Patrick Tjin 3f5f9934e9 build_image: default extfs reserved size to 0 on RO partitions.
Defaults the reserved blocks for root to 0% on read only partitions
(system, system_other, vendor, oem).  It also adds support for
explicitly specifying the extfs reserved percentage via
BOARD_{SYSTEM,VENDOR,OEM,PRODUCT}IMAGE_EXTFS_RSV_PCT.

This eventually translates down to the -m option for mkfs.

Removing the reserved space can save at least  5% from the default.

  dumpe2fs system:
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)

Bug: 75975085
Test: Build, verify reserved space is changed accordingly
Change-Id: I212d82741908b636db0d658a1c4847bbaadfd5ba
(cherry picked from commit 5ff758799c)
2018-04-22 22:04:21 -07:00
Treehugger Robot 2338a70f90 Merge "build/make: auto generate Test config file for Google Benchmark Test" 2018-04-20 21:16:00 +00:00
Anton Hansson 4ad0be36e3 Merge "Add support for specifying LOCAL_SDK_LIBRARIES for prebuilts." 2018-04-20 08:17:20 +00:00
Colin Cross f4b893165d Merge "Fix echo when copying package-res.apk" 2018-04-20 01:21:49 +00:00
Colin Cross a90f4b297f Fix echo when copying package-res.apk
Bug: 73724997
Test: m checkbuild
Change-Id: Iad9f46e01c40d1993e279c6ea6dd9c60932064c8
2018-04-19 15:28:59 -07:00
Treehugger Robot 4c7d849a1b Merge "Allow tests to be disabled for presubmit check" 2018-04-19 20:43:54 +00:00
Chih-hung Hsieh 00ca2ecdcf Merge "When my_use_clang_lld, link with lld for host." 2018-04-19 17:03:02 +00:00
Anton Hansson f5cefdcefb Add support for specifying LOCAL_SDK_LIBRARIES for prebuilts.
This new variable allows specifying libraries like this:
LOCAL_SDK_VERISON := 25
LOCAL_SDK_LIBRARIES := org.apache.http.legacy,
which would automatically pick up the prebuilt OAHL prebuilt
from prebuilts/sdk/25/public/org.apache.http.legacy.jar

Test: In master with uiautomator.
Bug: 77575476
Change-Id: Id8d92176f5b608c2bcea622b6aed4aa27c32e000
2018-04-19 15:18:55 +01:00
Nelson Li eec9529de8 build/make: auto generate Test config file for Google Benchmark Test
BUG: 74844131
Test: cd bionic/; mm (auto generating the test config in out/)
      atest bionic-benchmarks (full testing in atest)
Change-Id: I0497eed876640893d0b82d4cde384d3608cf4875
2018-04-19 09:16:54 +00:00
Anton Hansson 2944c11b1f Merge "Switch make over to use the new prebuilt modules." 2018-04-19 08:48:29 +00:00
Colin Cross 7c84a01daf Merge "Pass PLATFORM_VERSION_CODENAME to Soong" 2018-04-18 22:22:25 +00:00
Treehugger Robot c904a89c93 Merge "Remove the support for BRILLO_VENDOR_PARTITIONS." 2018-04-18 21:32:35 +00:00
Colin Cross f6d3fff907 Pass PLATFORM_VERSION_CODENAME to Soong
Pass PLATFORM_VERSION_CODENAME as Platform_sdk_codename, and
set Platform_sdk_final if PLATFORM_VERSION_CODENAME is REL.

Bug: 78224641
Test: m checkbuild
Change-Id: Ic082ca756d877ba51f45e89aa2ac267781a8d854
2018-04-18 12:40:16 -07:00
Tao Bao 36d7c5666d Remove the support for BRILLO_VENDOR_PARTITIONS.
It was initially introduced in commit
2e735ca34e, where it packs additional
vendor images into target_files zip in order to generate OTAs. We can
acheive the same goal with INSTALLED_RADIOIMAGE_TARGET, which is the way
being actively used across all targets, including IoT (the former
Brillo) targets.

Bug: 78201540
Test: `m dist` with aosp_marlin-userdebug
Test: Code search shows no active user of BRILLO_VENDOR_PARTITIONS.
Test: `python -m unittest test_add_img_to_target_files`
Change-Id: I8803d5377b5a39304a701cceafb243f9a228347d
2018-04-18 09:50:47 -07:00
Anton Hansson 9235faa9a4 Switch make over to use the new prebuilt modules.
There are a couple more places throughout the tree that use the old
modules, and I will update those next before deleting the old module
definitions.

Bug: 77525052
Test: make droid
Change-Id: I9385ae34cc1646cbd4e249d9e96a0116296f139a
2018-04-18 16:15:05 +01:00
Chih-Hung Hsieh 4955b857c4 When my_use_clang_lld, link with lld for host.
When USE_CLANG_LLD is true, my_use_clang_lld is true,
and *GLOBAL_LLDFLAGS will be used instead of *GLOBAL_LDFLAGS.

Bug: 73768157
Test: make checkbuild
Change-Id: I2598b72e9edde32f8e57df860571fd107c005540
2018-04-17 15:30:24 -07:00
Treehugger Robot d36cfa333a Merge "Don't use export with BUILD_ID" 2018-04-17 21:12:45 +00:00
Dan Shi 639c6ccf7a Allow tests to be disabled for presubmit check
A test can be disabled in two ways:
1. Add the test name to ALL_DISABLED_PRESUBMIT_TESTS variable.
   Integration tests (tests inside TradeFed) can only be disabled in
   this way.
2. In module config, set LOCAL_PRESUBMIT_DISABLED to true. This works
   for tests with build target.

This change allows tests to be skipped in presubmit check to be saved in
a list that's included in test-mappings.zip build artifact.

Bug: 74971025
Test: m dist -j test-mapping
Change-Id: I6e3016b017ce1ade024dc4ded72a10c778b88e7f
2018-04-17 12:07:31 -07:00
Søren Gjesse 0c2a796853 Merge "Keep the collected Proguard configuration" 2018-04-17 07:01:57 +00:00
Treehugger Robot eec144223a Merge "Mark version_defaults as readonly" 2018-04-17 03:05:22 +00:00
Dan Willemsen 1f1e2e4eea Mark version_defaults as readonly
These shouldn't be changed by anyone after this point, and this will
prevent random Android.mk from re-including this file.

Test: m nothing
Test: failed on hikey w/o https://android-review.googlesource.com/662764
Change-Id: I7ba4db3594af5b18b98fafee81b64531a40df396
Merged-In: I7ba4db3594af5b18b98fafee81b64531a40df396
2018-04-17 01:30:08 +00:00
Dan Willemsen b7b7a97c2c Don't use export with BUILD_ID
It's not necessary, and all the tools that read this file have been
updated.

Bug: 73959648
Test: cs for uses
Change-Id: Ic203e83ab437beecf07760660f2b3ac7c67e9ded
Merged-In: Ic203e83ab437beecf07760660f2b3ac7c67e9ded
2018-04-16 23:05:10 +00:00
Treehugger Robot 1cd44482db Merge "Revert "Build: Support for compiled-classes file"" 2018-04-16 16:33:24 +00:00
Søren Gjesse 9fbdd9ec5a Keep the collected Proguard configuration
This will work for both R8 and Proguard

Test: m -j Settings && "manually check .../proguard_coniguration file"
Change-Id: I1da7c3426b3511e2d5ad69852da8cec3245d7e54
2018-04-16 09:16:35 +02:00
Chih-Hung Hsieh d1caff4b2b Fix typo.
Bug: 73768157
Test: make checkbuild
Change-Id: Icf3a142500aa3f9849250ae0a895a61797b95376
2018-04-13 13:15:46 -07:00
Andreas Gampe 35ab4203ef Revert "Build: Support for compiled-classes file"
This reverts commit 96a522037f.

Bug: 76145463
Test: m
Change-Id: I5a368cd01812e16869352ec219eae095df4919c4
2018-04-13 13:08:13 -07:00
Chih-hung Hsieh a72e1518e7 Merge "Add USE_CLANG_LLD and LOCAL_USE_CLANG_LLD" 2018-04-13 19:26:04 +00:00
Mathieu Chartier 65ba0bf59c Merge "Only default LOCAL_DEX_PREOPT_APP_IMAGE if not set" 2018-04-12 22:10:57 +00:00
Chih-Hung Hsieh 32427d6903 Add USE_CLANG_LLD and LOCAL_USE_CLANG_LLD
* Current default is not using lld.
* When USE_CLANG_LLD or LOCAL_USE_CLANG_LLD is true or 1,
  * Use *GLOBAL_LLDFLAGS instead of *GLOBAL_LDFLAGS.
    GLOBAL_LLDFLAGS should call lld and with correct lld flags.
  * set my_pack_module_relocations to false.

Bug: 73768157
Test: make checkbuild
Change-Id: I3e63cf8ae0865d01d2bc1f36e9304f4a5d092cb8
2018-04-12 11:00:06 -07:00
Treehugger Robot f2fc1418d3 Merge "Allow native:vendor to vendor apks" 2018-04-12 17:21:59 +00:00
Mathieu Chartier aaca16f0f7 Only default LOCAL_DEX_PREOPT_APP_IMAGE if not set
Allows modules to specify LOCAL_DEX_PREOPT_APP_IMAGE := false if they
have a profile.

Test: make
Change-Id: Ied7a8099b199904638dabdb09faf879d3216e73d
2018-04-12 17:02:30 +00:00
Treehugger Robot 2e2290cf1a Merge "Add vendor properties blacklist" 2018-04-12 10:08:10 +00:00
Jiyong Park 49a5b9785f Allow native:vendor to vendor apks
Vendor apks should be able to reference native vendor libraries.
Vendor apks have worked around this by building without
LOCAL_SDK_VERSION, which then allowed to use all libs. However,
since vendor apks now needs to be built with SystemSDK, that
workaround can no longer be used.

Bug: 76398918
Test: BOARD_SYSTEMSDK_VERSION=P m -j
Change-Id: Idb13d5db71f4dfd542658483b6a24e7ece18ce26
2018-04-12 17:14:48 +09:00
Ivan Podogov d572632f3d Add vendor properties blacklist
This change allows removing some vendor properties from
(vendor|system/vendor)/build.prop file based on a blacklist.

For WearOS Unified Builds, which can change the product name depending on
the chosen locale, we use runtime-generated value for ro.build.fingerprint,
but since the ro.vendor.build.fingerprint cannot be generated the same way,
we always hit a "Mismatched fingerprints" error.

Bug: 71555551
Test: manual
Change-Id: Ifad793187e930a28fbf9325b03468c7ea86076b7
2018-04-11 23:33:07 +01:00
John Muir 58d96b150e notice_files: Disable NOTICE files for FAKE modules.
Currently the build system will automatically attribute a NOTICE
file with the target of $(BUILD_PHONY_PACKAGE). This shouldn't
be the case.

Disable notice file inclusion for fake targets so that the
/fake_packages/blah_blah-timestamp paths don't show up in
NOTICE.xml.gz.

Bug: 77910458
Test: NOTICE files are not attributed to fake targets.
Change-Id: Ia942cac41b750efbd5a23d896d85ac0820ee8b4e
2018-04-11 13:07:13 -07:00
Anton Hansson 9b72b53a24 Merge "Consolidate the logic for the sdk prebuilt module names." 2018-04-11 09:10:33 +00:00
Treehugger Robot 2754a92f2c Merge "Don't depend on R.txt)" 2018-04-11 04:03:50 +00:00
Colin Cross ac48f41ba5 Don't depend on R.txt)
There is an extra ) in the implicit output path for R.txt, which causes
the rule to rerun every time because of a missing output file.  There
is already an implicit output for R.txt on line 180 (which is why
the incorrect path didn't cause an immediate "No rule to generate R.txt"
error), so just remove the incorrect one.

Bug: 77244156
Test: m checkbuild && m checkbuild
Change-Id: Id960ee211b89a9a5f5104cdcac23bc3124742145
2018-04-10 16:27:53 -07:00
Dan Willemsen eaacf5b285 Add variables for configuring Soong plugins
See the Soong commit for detailed usage.

Bug: 76168832
Test: define some variables, use them
Change-Id: Ia8af5b6ec1cb3f12cbc1fee582a309eebb340b7c
2018-04-10 15:51:53 -07:00
Anton Hansson 400673cf1e Consolidate the logic for the sdk prebuilt module names.
I'm making some changes to it, and found the names are scattered
in various places. Make a macro and re-use the logic instead.

Bug: 77525052
Test: make droid
Change-Id: I0f2da80b8b4d427353509b27ec720d024eee7a6e
2018-04-10 18:53:30 +01:00
Dan Willemsen a4155e8512 Delay eval to save memory use in create-suite-dependencies
Instead of passing the entire contents of
$(COMPATIBILITY.$(suite).FILES) to eval, which may keep that string
around, delay the evaluation of that, and the new files until inside the
eval.

This saves ~2.8GB: 7.4GB -> 4.6GB of ckati max resident memory for a
relatively small internal build. It also saves ~10% of the makefile
loading time (81 -> 73 seconds).

Test: build-aosp_arm.ninja is identical
Change-Id: If45a4796f1bbf6d67dff388ea877a6115a4e06f4
2018-04-09 16:30:06 -07:00
Treehugger Robot 060067e341 Merge "Remove our binary of ccache" 2018-04-06 21:47:38 +00:00
Dan Willemsen ac406f5c68 Allow boards to turn overriding commands into an error
Many boards have warnings like this, saying that we defined a build
rule, but later something else came in and overrode it with something
else:

art/build/Android.gtest.mk:677: warning: overriding commands for target `test-art-target-gtest-cmdline_parser_test'
art/build/Android.gtest.mk:674: warning: ignoring old commands for target `test-art-target-gtest-cmdline_parser_test'

Beyond the obvious problem of replacing the rule with something else,
target-specific variables can be combined as well, leading to some very
strange problems.

Since so many boards still have problems like this, but we don't
currently have any global problems, add a flag so that we can mark
boards as not broken. This should prevent regressions while we clean up
the individual problems.

Once the non-broken devices number significantly more than the broken
devices, we'll switch this default. And once they're all cleaned up this
variable will become obsolete, and these warnings will always be errors.

Bug: 77611511
Test: lunch aosp_arm-eng; m nothing
Test: lunch aosp_marlin-eng; m nothing
Test: build_test on all downstream branches
Change-Id: I43b645658f468c23a5b9ebcfcd9d4516537db540
2018-04-05 17:26:35 -07:00
Treehugger Robot e543e409d2 Merge "Support manifest fragments." 2018-04-05 23:09:14 +00:00
Dan Willemsen 7556703f0d Remove our binary of ccache
Our binary was rather old, and for a variety of reasons we haven't kept
it updated. We've been running into a handful of reliability issues that
would have been fixed with an update, and a few reproducibility /
correctness issues that may or may not be fixed with newer versions.

For local no-change full rebuilds, ccache can still save ~35% of the
build time (but adds a few minutes to initially populate the cache). But
most local uses should be using incremental builds anyways, not clean
rebuilds. Or you're doing builds of different configurations, which
wouldn't be cache hits either, and would make your cache even larger.

At a large scale, we haven't seen a significant performance difference
between having ccache on or off. This may be different if you've got
very good build locality, or a very large cache -- but if you've got
good build locality, it's reasonable to do incremental builds (not for
release builds, and while running `m installclean` in between builds).

So for our cases, we'd prefer the stability and correctness of not using
ccache, but if you still want to use ccache, continue setting USE_CCACHE
and also set CCACHE_EXEC to the path of your ccache executable.

Bug: 32748498
Bug: 72408185
Test: performance testing of USE_CCACHE=false vs true locally
Test: turned off ccache for a collection of targets
Test: CCACHE_EXEC=/usr/bin/ccache USE_CCACHE=true m
Change-Id: I7117fe3107bd98521051ae343038a38f7e855502
2018-04-05 15:25:59 -07:00
Steven Moreland 3629aa77da Support manifest fragments.
LOCAL_VINTF_FRAGMENTS/vintf_fragments are
used to specify what manifest fragments should be installed
by a target.

Test: fragments get installed to the right location
Test: broken fragment gets detected
Test: boot device and verify service is working and manifest is updated
Test: verify OTA package contains fragments
Bug: 66917623
Change-Id: I21abe65a31b8c3d255c8ccd80e102ff3acb23105
2018-04-05 11:26:35 -07:00
Dan Willemsen af2e1f8487 Start moving add_lunch_combo to Make
Start deprecating add_lunch_combo, preferring a list of common choices
in each AndroidProducts.mk file.

This list will be validated so that we don't have typos:

https://android-review.git.corp.google.com/c/device/generic/car/+/619533

Or targets that no longer exist.

Bug: 77599627
Test: lunch
Test: lunch 34
Test: lunch aosp_x86_64-eng
Test: lunch aosp_<tab>
Change-Id: Ie0ddaa94cbd6cee26584f56f1706a8ec1333f87e
2018-04-04 17:14:47 -07:00
Treehugger Robot a77e2acd6b Merge "Fix mini_debug_info stripping when no symbols should be kept." 2018-04-04 04:28:52 +00:00