Commit Graph

1443 Commits

Author SHA1 Message Date
Treehugger Robot 3dbbfde296 Merge changes I80341c2e,I0935f611,Ia805cb47
* changes:
  Deprecate ADDITIONAL_DEFAULT_PROPERTIES
  Move most of the sysprop generation rules to sysprop.mk
  Add PLATFORM_VERSION_LAST_STABLE
2020-05-20 03:49:26 +00:00
Yo Chiang 06d81cc30a Merge "Refactor bitness resolving logic of product-installed-files" am: 502606f8ce am: 395e91dba5
Change-Id: Ia2b98f97cf06b7c0854e9f0aebd8c6389297b84e
2020-05-19 03:46:15 +00:00
Jiyong Park 80f164c0b3 Deprecate ADDITIONAL_DEFAULT_PROPERTIES
As we merge default.prop into build.prop, we don't need to distinguish
ADDITIONAL_DEFAULT_PROPERTIES and ADDITIONAL_BUILD_PROPERTIES. Deprecate
the former in favor of the latter.

Bug: 117892318
Test: m
Change-Id: I80341c2e05d70821396202dc9e94104625ebf024
2020-05-18 21:44:52 +09:00
Yo Chiang 5e85bfe3a3 Resolve module bitness for PRODUCT_PACKAGES
PRODUCT_PACKAGES contains "simple module name" and "bitness suffix".
Call `resolve-bitness-for-modules` to resolve module bitness before
using PRODUCT_PACKAGES.

Bug: 155869107
Test: TH presubmit build_test
Test: check the value of event_log_tags_src
Change-Id: I95fcd833990b3401892c2f7859c83acd90f9e920
2020-05-14 04:07:56 +00:00
Yo Chiang b85a140c3c Refactor bitness resolving logic of product-installed-files
* Add get-modules-for-2nd-arch helper function

Add a generic function to retrieve second arch variant module names for
TARGET, HOST and HOST_CROSS modules.
It uses ALL_MODULES.<module>.FOR_2ND_ARCH to make sure that we are
really returning second arch variant module names.
Unlike `get-32-bit-modules` this function doesn't sort its output so it
potentially saves us a tiny bit of makefile parsing time.

* Add resolve-bitness-for-modules

Factor out the common bitness-resolving logic of
`product-installed-files` and `host-installed-files` to a helper
function.
When resolving HOST_CROSS modules, the primary arch is 32-bit and
secondary arch is 64-bit.

Bug: 155869107
Test: TH
Test: check the value of product_target_FILES and product_host_FILES
Change-Id: I0fdea2e8c55e5b8edf960dbf5e17bb789abb0bf8
2020-05-13 20:42:07 +08:00
Treehugger Robot b50843c57f Merge changes I17671ca2,I4e6d9d93,Ia43cbbd0 am: 8bd7c4f3cc am: ccb927b9c4
Change-Id: Iffdd112cdabe367b74c9855d77e0760574e49eef
2020-04-29 02:13:58 +00:00
Dan Willemsen 17315c2eda Remove empty rules for check_elf_files.timestamp
If we don't have any new dependencies, or we never set up the
check_elf_files.timestamp rule, don't create an empty one now.

There were >7000 of these unused and empty rules in my AOSP
aosp_cf_x86_phone build.

This was initially brought to my attention by the new checks in
https://github.com/google/kati/pull/189

Test: diff out/build-aosp_cf_x86_phone.ninja, only removed phony rules
Change-Id: Ia43cbbd04df4a01d2182b14e3ccbe5d5ecbcabad
2020-04-28 14:56:06 -07:00
Treehugger Robot 9147c6ca1f Merge "Restore $(SOONG_OUT_DIR)/ndk/% in static_whitelist_patterns" am: 7b66a61d9b am: 627e62e1a6
Change-Id: Ifc750410707f35ccf4822b42ec0e3ab3b3111d9b
2020-04-27 11:11:33 +00:00
Jeongik Cha 82fead38a4 Restore $(SOONG_OUT_DIR)/ndk/% in static_whitelist_patterns
$(SOONG_OUT_DIR)/ndk/% needs to be whistlisted in release branch
(ag/11251273)
Accordingly, restore it in aosp as well.

Bug: 148993225
Test: m nothing
Change-Id: I7503c007c3e786b0cab26ea1422f0d4ba5a40662
2020-04-27 04:44:58 +00:00
Treehugger Robot 4d5a3d8655 Merge "Clean up static_whitelist_patterns" am: 691d385147 am: 75ff753569
Change-Id: If011c50e830855fb7b71bbf7729d7c429beb8137
2020-04-24 12:25:21 +00:00
Treehugger Robot 691d385147 Merge "Clean up static_whitelist_patterns" 2020-04-24 12:03:21 +00:00
Treehugger Robot 737bcbd04b Merge "Extend static_whitelist_patterns" am: 4aa437f3ab am: 43e1e38bd1
Change-Id: Ia150a51a515d6b04407d3714a8961a81f848968f
2020-04-24 08:39:59 +00:00
Treehugger Robot 4aa437f3ab Merge "Extend static_whitelist_patterns" 2020-04-24 08:02:33 +00:00
Jeongik Cha ab50b8fa85 Extend static_whitelist_patterns
product-installed-files generates more default artifacts than
$(call module-installed-files,$(call auto-included-modules)),
and it causes problems when we try to apply this mechanism to other
partition

So use product-installed-files with an empty parameter as static
whitelist

Test: apply require-artifacts-in-path to other partition(or path),
      and then, m nothing
Test: add system module outside mainline_system.mk, and check if there is error.

Bug: 148993225
Change-Id: Ie110f20ff833229b23a777ff1decb32f84b9cef7
2020-04-24 05:08:02 +00:00
Jeongik Cha 4472819166 Clean up static_whitelist_patterns
$(HOST_OUT)/% and $(SOONG_OUT_DIR)/ndk/% are not necessary anymore.

Bug: b/148993225
Test: m nothing
Change-Id: If2551283ebb6c516c029d1c04aebe25661bc6a1a
2020-04-24 14:05:49 +09:00
Dan Willemsen f08587c925 Remove AUX support am: 58634e1482 am: c4fb07d615
Change-Id: Ic54cef973b4573886a562690fe0d3c8b35816f4a
2020-04-21 23:11:48 +00:00
Dan Willemsen 58634e1482 Remove AUX support
This was deprecated in R, which has now branched, and there aren't any
users on master.

Test: build-aosp_crosshatch.ninja is the same (except for the removal of the empty auxiliary target)
Test: treehugger
Change-Id: I306156ab7f91cd4a2258554b4215766c99cd12d1
2020-04-18 21:00:18 -07:00
Dan Shi 00490906ad Merge "Include shared host liraries in test suite zip" am: 3c4326f32f am: 34ca4231d5
Change-Id: Ifeb0f611ca81ac13016f3372f4c0c435b2c5884c
2020-04-14 23:56:36 +00:00
Dan Shi 6a619b8d85 Include shared host liraries in test suite zip
Bug: 151194160
Test: m -j vts && \
  ls out/host/linux-x86/vts/android-vts/testcases/lib64/
Change-Id: I7ebc4bf392d4c0f27478607846974631390097f8
2020-04-13 09:29:16 -07:00
Anton Hansson 41623558b1 Merge "Add api xml files for new api surfaces" into rvc-dev am: 3d22657e15
Change-Id: Ica6859d777d1e4d3e1e599a797af4aafc7544c2e
2020-04-02 11:30:52 +00:00
Anton Hansson 7dbf7dcb7b Add api xml files for new api surfaces
The coverage infra ingests these xml files to track
api coverage of APIs. Create files equivalent to the
existing files for the new API surfaces defined in R.

Bug: 152949797
Test: m dist && du -hs out/dist/*.xml
Change-Id: Id1914c34d1e9527964251b328179d20613a2d712
2020-04-01 14:36:28 +01:00
Orion Hodson 70fcf897c5 Update dex2oat filter
verify-at-runtime is deprecated in favor of extract. Update to
stop deprecation warnings during OTAs.

Exempt-From-Owner-Approval: cherry-pick from rvc-dev

Bug: 149794809
Test: manual OTA
Change-Id: I9b8365a1fba5fd18420661a3e6ada77f3609bcc7
Merged-In: I9b8365a1fba5fd18420661a3e6ada77f3609bcc7
(cherry picked from commit db651d5913)
2020-03-30 13:03:47 +00:00
Orion Hodson 864dc9c1af Merge "Update dex2oat filter" into rvc-dev am: cc464a4cdb
Change-Id: I2b770dc13ccff7711247d9f90a25522647c9915d
2020-03-26 20:03:46 +00:00
Orion Hodson db651d5913 Update dex2oat filter
verify-at-runtime is deprecated in favor of extract. Update to
stop deprecation warnings during OTAs.

Bug: 149794809
Test: manual OTA
Change-Id: I9b8365a1fba5fd18420661a3e6ada77f3609bcc7
2020-03-26 15:04:29 +00:00
Yifan Hong 18f3e2d04b Merge "Build DEVICE manifests and fragments for each SKU" into rvc-dev 2020-03-11 18:44:36 +00:00
Automerger Merge Worker 9d28e91481 Merge "Build DEVICE manifests and fragments for each SKU" am: 136764d714 am: 35c1a627f6
Change-Id: I6d7847ad342625dc6962764ad38b97cadc1efc92
2020-03-10 21:22:42 +00:00
Roopesh Nataraja 202d4c8db4 Build DEVICE manifests and fragments for each SKU
Single vendor can support multiple skus with different
capabilities. Add support to define and build sku
based device manifests.

Specify DEVICE manifests in BoardConfig.mk as below.

  # installed to /vendor/etc/vintf/manifest_{sku}.xml
  DEVICE_MANIFEST_SKUS := sku1 sku2 sku3

  DEVICE_MANIFEST_SKU1_FILE := device/foo/bar/manifest_sku1.xml
  DEVICE_MANIFEST_SKU2_FILE := device/foo/bar/manifest_sku2.xml
  DEVICE_MANIFEST_SKU3_FILE := device/foo/bar/manifest_sku3.xml

Bug: 148601741

Change-Id: Id57d4ad21b0d3edf8d60d07446b6b806c1df20ab
Merged-In: Id57d4ad21b0d3edf8d60d07446b6b806c1df20ab
2020-03-10 12:22:31 -07:00
Roopesh Nataraja 11e776fc32 Build DEVICE manifests and fragments for each SKU
Single vendor can support multiple skus with different
capabilities. Add support to define and build sku
based device manifests.

Specify DEVICE manifests in BoardConfig.mk as below.

  # installed to /vendor/etc/vintf/manifest_{sku}.xml
  DEVICE_MANIFEST_SKUS := sku1 sku2 sku3

  DEVICE_MANIFEST_SKU1_FILE := device/foo/bar/manifest_sku1.xml
  DEVICE_MANIFEST_SKU2_FILE := device/foo/bar/manifest_sku2.xml
  DEVICE_MANIFEST_SKU3_FILE := device/foo/bar/manifest_sku3.xml

Bug: 148601741

Change-Id: Id57d4ad21b0d3edf8d60d07446b6b806c1df20ab
2020-03-09 15:09:08 -07:00
Automerger Merge Worker 759ce2b3b8 Merge "Don't touch .installable_files for non-FULL_BUILD" am: 573f458718 am: 718193f9b2
Change-Id: I8e106a0ee581eaec783ec79230fb7e94770f45bd
2020-03-06 00:36:53 +00:00
Bill Peckham 011255996c Don't touch .installable_files for non-FULL_BUILD
If we're not doing a full build, leave
$(PRODUCT_OUT)/.installable_files* alone rather
than truncating it. This prevents the clean logic
in Soong from removing everthing that we're trying
to use to build an image using the snod, vnod, etc.
goals.

Bug: 149460609
Test: make droid, make vnod, verify vendor.img
Change-Id: I612e32621b8045d085829507f22f6385b859f0c2
Merged-In: I612e32621b8045d085829507f22f6385b859f0c2
2020-03-05 11:20:33 -08:00
Bill Peckham 573f458718 Merge "Don't touch .installable_files for non-FULL_BUILD" 2020-03-05 18:49:48 +00:00
Bill Peckham 7c3aa02ca3 Don't touch .installable_files for non-FULL_BUILD
If we're not doing a full build, leave
$(PRODUCT_OUT)/.installable_files* alone rather
than truncating it. This prevents the clean logic
in Soong from removing everthing that we're trying
to use to build an image using the snod, vnod, etc.
goals.

Bug: 149460609
Test: make droid, make vnod, verify vendor.img
Change-Id: I612e32621b8045d085829507f22f6385b859f0c2
2020-03-04 15:12:52 -08:00
Automerger Merge Worker f5504ac259 Merge "Move build number file to out/soong" am: 47b08fbab5 am: 87f76601de
Change-Id: I268b7f7d214b140adef9cddd7161815ed9e54cea
2020-02-28 20:44:46 +00:00
Automerger Merge Worker 87f76601de Merge "Move build number file to out/soong" am: 47b08fbab5
Change-Id: I8561be9fcabc54526fbf5efa48ef32b08f025b96
2020-02-28 20:32:26 +00:00
Colin Cross d68a88402f Move build number file to out/soong
Move the build number file to out/soong so Soong can treat it
as an output path, and pass the name of the file to Soong instead
of the command to read it.

Test: m checkbuild
Change-Id: I9e1aecf33d11fe4fde34cd57cc9b1f1ad49b0424
2020-02-25 00:06:46 +00:00
Automerger Merge Worker dfa3d23969 Merge "Adding vendor_boot-debug.img" am: 31d4a5aed7 am: e1570cb99d am: a20bb6522a
Change-Id: Ic5ec4776d4daa91a1423b65d96e34026756ae9ad
2020-02-20 04:44:58 +00:00
Automerger Merge Worker e1570cb99d Merge "Adding vendor_boot-debug.img" am: 31d4a5aed7
Change-Id: I48f3ded6c5c63aa9a828a529880f0cdb2918f8e2
2020-02-20 04:12:10 +00:00
Bowgo Tsai 6a68367e6e Adding vendor_boot-debug.img
Commit I30137c3caef91805d9143d404e5e4d06c0fccc30 adds boot-debug.img
to allow adb root with an user build GSI image.

  https://source.android.com/compatibility/vts/vts-on-gsi

Another commit I5b005097b73f59857c3a2f92d693b3e67ee8424e adds
vendor_boot.img to pair with a generic kernel image, the GKI boot.img.

To allow adb root for devices using a GKI, vendor_boot-debug.img is
introduced. The image combination used in VTS will be:

    Old devices without GKI:
      GSI system.img + boot-debug.img + vendor.img, etc.

    New devices with GKI:
      GSI system.img + GKI boot.img + vendor_boot-debug.img + vendor.img, etc.

Note that boot-debug.img still can be used on new devices for
non-compliance scenario.

Bug: 147849477
Test: lunch aosp_cf_x86_64_phone-userdebug; make vendorbootimage_debug
Test: `make dist`, checks that both vendor_boot-debug.img and
      vendor-ramdisk-debug.cpio.gz are in $OUT/ and out/dist.
Test: `make dist`, checks that installed-files-vendor-ramdisk-debug.{json,txt} are
       in $OUT/ and out/dist.
Change-Id: I66b662d8b1e5c619ed7bb81e40233fe9df363b27
2020-02-18 13:46:17 +08:00
Automerger Merge Worker 2f7d750a4e Merge "Remove unused no_vendor_variant_vndk_check target" am: 526551f013 am: 64d0b72f81 am: ad916eda39
Change-Id: Icbe22459d1cf5cbf45eae7d2e4561e5a55b52faa
2020-01-29 07:31:15 +00:00
Vic Yang 64d0b72f81 Merge "Remove unused no_vendor_variant_vndk_check target"
am: 526551f013

Change-Id: Id13c047df6da98ce0ab23b625c1578c2db2d3571
2020-01-28 23:04:41 -08:00
Vic Yang 3ec918d342 Remove unused no_vendor_variant_vndk_check target
This was missed when we moved from a single target for checking all
VNDK libraries to using timestamp files for checking individual VNDK
libraries.

Test: Build success.
Change-Id: I3be19f6755b24fff2446449a9dbc84db9a20ea41
2020-01-28 21:01:38 -08:00
Automerger Merge Worker 49f0e0283c Merge "Fix building docs as part of checkbuild" am: 35e12a7020 am: a8008259f9 am: 0550ae99a4
Change-Id: I1844b23cc9e31c8ea4f5d521cb621e824afc3c53
2020-01-28 23:07:48 +00:00
Colin Cross a8008259f9 Merge "Fix building docs as part of checkbuild"
am: 35e12a7020

Change-Id: I6d3e445979e8d390841d24c01cbf37f8d6a20445
2020-01-28 14:46:48 -08:00
Colin Cross 43e74295e0 Fix building docs as part of checkbuild
s/module_to_check/modules_to_check/

Bug: 118815658
Test: m checkbuild
Change-Id: I53e10747ed404509fd11adb72e641c702e27655b
2020-01-27 11:36:07 -08:00
TreeHugger Robot 2f0743483b Merge "DO NOT MERGE - Merge qt-qpr1-dev-plus-aosp-without-vendor (6129114) into stage-aosp-master" into stage-aosp-master 2020-01-16 18:29:25 +00:00
Automerger Merge Worker 1df6d79a0b Merge "device_(manifest|matrix).xml -> vendor_*" am: 2e4f20f540 am: fe1bb53543 am: 9a33bc10bc
Change-Id: I355ece2b39df76de7b82ba65805ea7cf561b7f75
2020-01-16 04:32:31 +00:00
Automerger Merge Worker 9a33bc10bc Merge "device_(manifest|matrix).xml -> vendor_*" am: 2e4f20f540 am: fe1bb53543
Change-Id: I07c65054fe5a569b557b10fb885c0efe735841a3
2020-01-16 04:23:03 +00:00
Yifan Hong 51be69f063 device_(manifest|matrix).xml -> vendor_*
Building device_manifest.xml or device_compatibility_matrix.xml only
builds vendor manifest / matrices, but not all device manifest /
matrices (e.g. vintf_fragments, ODM manifest, etc.). Make the name more
accurate.

Test: m check-vintf-all

Change-Id: Ib017507c421355263d53a9e5b357f169c77da36d
2020-01-14 14:24:51 -08:00
Automerger Merge Worker bf4f7acb17 Merge "jacoco-report-classes-all.jar includes jar from other partitions" am: 3801c82e33 am: bf9e4cdd81 am: cccefb9901
Change-Id: I3b3f60fd7f81972c99198859b04fba76c6b336b8
2020-01-09 01:17:28 +00:00
Automerger Merge Worker cccefb9901 Merge "jacoco-report-classes-all.jar includes jar from other partitions" am: 3801c82e33 am: bf9e4cdd81
Change-Id: I6adf59d2188289165034d7374fe50ad1f32dda54
2020-01-09 01:05:03 +00:00
Jiyong Park bee946e8eb jacoco-report-classes-all.jar includes jar from other partitions
jacoco-report-classes-all.jar now depends on all installed files
including apks in /apex. Previously, it depended only on files under
system.img and as a result jacoco for other partitions were missing.

Bug: 147296855
Test: m

Change-Id: I755de1205ebc43c197af36a13cca5f4b49e275e8
2020-01-08 14:41:45 +09:00
Automerger Merge Worker 2c3d9c0171 Merge "Export list of "installable" files to soong_ui" am: 99202ec0a6 am: 8e080ccefe am: 3bbef8f744
Change-Id: I9c92904edc1da963a4711d523d565bfe3434229a
2020-01-04 05:46:02 +00:00
Automerger Merge Worker 3bbef8f744 Merge "Export list of "installable" files to soong_ui" am: 99202ec0a6 am: 8e080ccefe
Change-Id: I0dd6e68b91057d93f41c47da80749c7dbcb80aea
2020-01-04 05:34:11 +00:00
Dan Willemsen dec6e8e056 Export list of "installable" files to soong_ui
These are a (partial) list of files that we'd install with a default
build. The idea is that if something is removed from this list, soong_ui
can remove it from the installed location before running ninja.

It's okay if there are things missing from this list, it's not intended
to be a 100% solution replacing installclean / CleanSpec.mk, just
something that handles 80% of the cases without user involvement.

In particular, if something is removed from PRODUCT_PACKAGES, we'll
remove it from disk, but not necessarily rebuild the image files. That's
the same as most use cases of CleanSpec.mk today, and often some other
change will trigger the necessary images to be rebuilt.

We should be able to fix that by changing all of the image creation
rules to depend on the (partial) list of files they care about, or by
fixing ninja to rebuild things when their list of dependencies change.
(Other tools run into this same problem)

The list of test files is also included so that we can remove obsolete
tests from their "installed" locations within test suites and the
testcases folders.

Test: remove a module from PRODUCT_PACKAGES, see the print and file removed
Test: change the name of a cts test, see the old one removed from cts
Change-Id: I67f270a6713369099ca523aaf991ee3beb815c0a
2020-01-03 19:19:11 -08:00
TreeHugger Robot 1abdc0a391 Merge "Re-enable link type checking" 2020-01-02 18:04:20 +00:00
Automerger Merge Worker 726f056d22 Merge "Define ro.product.vndk.version" am: e8139b905d am: a126b69335 am: 4bce5b4f4b
Change-Id: I4069c767e082a961ee456f2fd0f01a6c922c2f3b
2019-12-25 09:32:21 +00:00
Automerger Merge Worker 4bce5b4f4b Merge "Define ro.product.vndk.version" am: e8139b905d am: a126b69335
Change-Id: If7676e80733b8a4a6b4e958a20f8e9d9e3fcf322
2019-12-25 09:15:53 +00:00
Justin Yun 04e5a40f2c Define ro.product.vndk.version
Use ro.product.vndk.version to show the VNDK version that the product
partition is using.
When PRODUCT_PRODUCT_VNDK_VERSION is set, add ro.product.vndk.version
in /product/build.prop.
If PRODUCT_PRODUCT_VNDK_VERSION is "current", ro.product.vndk.version
will have the VNDK version in PLATFORM_VNDK_VERSION. Otherwise, it
will have the value defined in PRODUCT_PRODUCT_VNDK_VERSION.

Bug: 144534640
Test: Check if /product/build.prop has "ro.product.vndk.version"
Change-Id: If5e7e3a6c155de45f88f68700f16175656896afe
2019-12-24 07:20:43 +00:00
Automerger Merge Worker 20e8d991d2 Merge "Only dist recovery_ramdisk if BOARD_USES_RECOVERY_AS_BOOT" am: 9de27595ec am: de2634bdf0 am: 3648df452f
Change-Id: I55f1d00a8bafd87b06336749de4e3a21c43bd307
2019-12-24 00:26:15 +00:00
Automerger Merge Worker 3648df452f Merge "Only dist recovery_ramdisk if BOARD_USES_RECOVERY_AS_BOOT" am: 9de27595ec am: de2634bdf0
Change-Id: I9a2d2b6be6992423ae1f8b2117af616dd5b74cce
2019-12-24 00:14:27 +00:00
Daniel Mentz 5a8feb5422 Only dist recovery_ramdisk if BOARD_USES_RECOVERY_AS_BOOT
Bug: 146798070
Change-Id: I9e9d313b8ca097b4930fc2c99800772c6bdcbb9e
2019-12-23 14:08:31 -08:00
Automerger Merge Worker ff7c844f4b Merge "Dist ramdisk-recovery.img and misc_info.txt" am: b581214e65 am: aa64af5c71 am: 3ff4bb8205
Change-Id: I23e989b93cccf809dac3fcf0d5c64598543234eb
2019-12-23 19:05:44 +00:00
Automerger Merge Worker 3ff4bb8205 Merge "Dist ramdisk-recovery.img and misc_info.txt" am: b581214e65 am: aa64af5c71
Change-Id: I3002e62d53c4d21d3dcc26269583782048a1a047
2019-12-23 18:53:38 +00:00
Daniel Mentz 4d6017d519 Dist ramdisk-recovery.img and misc_info.txt
Dist ramdisk-recovery.img and misc_info.txt. This is useful for
re-creating boot.img without having to download a huge target_files zip
file.

Change-Id: I2e1c1d547c95ca3433f89c68428c0c98fa4d19cd
2019-12-23 18:35:17 +00:00
Automerger Merge Worker 5a074943e8 Merge changes from topic "runtime_apex_available" am: 982da2812f am: 2320db6261 am: 069bb10478
Change-Id: I7526e2356d3d7f0c01644600c2e89f43c83ac6f5
2019-12-23 05:20:44 +00:00
Automerger Merge Worker 069bb10478 Merge changes from topic "runtime_apex_available" am: 982da2812f am: 2320db6261
Change-Id: I99a596b5c6d0393d6976c7231b49a4ef3b67b4cf
2019-12-23 05:06:42 +00:00
Jiyong Park 22195346dd apex-libs-absence checks are removed
The check is implemented in Soong via the apex_available property.
For a module that should be in the APEX named "foo" and shouldn't be in
any other APEX and also in the platform (the non-updatable part), the
property can be set to "foo" (without "//apex_available:platform")
to express the restriction and then Soong will enforce it.

Bug: 128708192
Test: m
Change-Id: Ia1aaaacd685f466447b61deae2849cb0aa83def3
2019-12-23 03:41:59 +00:00
Jiyong Park be77c453a7 Remove bionic libs from APEX_MODULE_LIBS check
The test was to ensure that bionic libs are not installed to the
non-updatable part of the platform (e.g. system/lib). However, for
bionic libs, we actually have been installing them for bootstrapping.
Specifically, they are installed to /system/lib/bootstrap, not
/system/lib. The test has passed just because it didn't look into
/system/lib/bootstrap. Removing the unnecessary check.

Bug: 128708192
Bug: 133140750
Test: m
Test: m out/target/prduct/$(TARGET_DEVICE)/system/lib/libc.so doesn't
work
Change-Id: I93cbd74972cdd2daea45612136d5133fa49ab76a
2019-12-22 12:25:48 +09:00
Automerger Merge Worker d37e7a8dfa Merge "Use apex_available property" am: 8029967a99 am: d030761781 am: b84f1489a2
Change-Id: Iea55e4d5e2aa796a485253f95d5dd9496461e1af
2019-12-20 07:17:39 +00:00
Automerger Merge Worker b84f1489a2 Merge "Use apex_available property" am: 8029967a99 am: d030761781
Change-Id: I980478ff17779ac10f1dbbce26eedb7e69b8c9d1
2019-12-20 07:05:46 +00:00
Jiyong Park be2aed5529 Use apex_available property
Use apex_available property to prevent modules that are only for the
NN apex from being used outside of the APEX.

Bug: 128708192
Bug: 133140750
Test: m
Change-Id: I57fe857d99088ef08e065dd2a3fc5a9389b6eb0f
2019-12-20 13:18:27 +09:00
Jiyong Park a4226d1942 Use apex_available property
Use apex_available property to prevent modules that are only for the
conscrypt apex from being used outside of the APEX.

Bug: 128708192
Bug: 133140750
Test: m
Change-Id: I08ca6cd8e5e4a254d9dd62695ee3ed317503d874
2019-12-20 13:13:50 +09:00
Automerger Merge Worker 0777057f99 Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR am: f8b8c647e4 am: fc07c41a9e am: 2b6fdb3dab
Change-Id: I074ce6dedf034a2ce9c51796906926778b1b0007
2019-12-20 02:29:00 +00:00
Automerger Merge Worker 2b6fdb3dab Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR am: f8b8c647e4 am: fc07c41a9e
Change-Id: I87209392968251e9c7131be858fc1b580ee60e30
2019-12-20 01:42:59 +00:00
Jiyong Park f8b8c647e4 Revert submission 1194828-revert-1191937-art_apex_available-DWXQGTKMAR
Reason for revert: relanding with fix
Reverted Changes:
Ic4119368c:Revert submission 1191937-art_apex_available
Ia084976bb:Revert submission 1191937-art_apex_available
Iada86226d:Revert submission 1191937-art_apex_available
Ic76735eac:Revert submission 1191937-art_apex_available
I1eb30e355:Revert submission 1191937-art_apex_available
Icaf95d260:Revert submission 1191937-art_apex_available
Ie8bace4be:Revert submission 1191937-art_apex_available
I8961702cf:Revert submission 1191937-art_apex_available
I39316f9ef:Revert submission 1191937-art_apex_available
I522a7e83b:Revert submission 1191937-art_apex_available
I8b9424976:Revert submission 1191937-art_apex_available
I48b998629:Revert submission 1191937-art_apex_available

Change-Id: I8b4eed03c76153e2469f7b3e2e33c6e20e6e0409
2019-12-19 18:16:34 +09:00
Automerger Merge Worker 11dd188f29 Merge changes from topic "revert-1191937-art_apex_available-DWXQGTKMAR" am: 7378ff158c am: 61042b72cf am: 8e8f3dcb6d
Change-Id: Ifb922d62612b3cf0b5a8022e0573c302ef1dcc4e
2019-12-19 02:00:39 +00:00
Automerger Merge Worker 8e8f3dcb6d Merge changes from topic "revert-1191937-art_apex_available-DWXQGTKMAR" am: 7378ff158c am: 61042b72cf
Change-Id: Ia021d65f88d87230ba6b0341cea7debd34bc649b
2019-12-19 01:47:45 +00:00
Joseph Murphy 7378ff158c Merge changes from topic "revert-1191937-art_apex_available-DWXQGTKMAR"
* changes:
  Revert submission 1191937-art_apex_available
  Revert submission 1191937-art_apex_available
2019-12-19 01:20:03 +00:00
Joseph Murphy 92e1a0bea0 Revert submission 1191937-art_apex_available
Original Commit Message:
"""
Rename modules that are APEX-only

The renamed modules are only available for APEXes, but not for the
platform. Use the <module_name>.<apex_name> syntax to correctly install
the APEX variant of the modules.
"""

Reason for revert: Build Cop - Breaks about 15 AOSP targets, with high confidence due to these changes being the only non-robot changes in those builds.

Reverted Changes:
I190ce2d10:Use apex_available property
I990e0a67e:Use apex_available property
I0d1295683:Revert "Avoid duplicated classes for boot dex jars...
I5fb725403:Find the jar libraries in APEX from the correct pa...
I322b1efcc:Rename modules that are APEX-only
Ifa2bd0f8f:Use apex_available property
Iac6533177:Use apex_available property
Ie999602c6:Use apex_available property
I2a3d73397:Use apex_available property
Ic91bcbb9a:Use apex_available property
Ia6c324eed:Use apex_available property
I964d0125c:Use apex_available property

Change-Id: I8961702cfb414ebec55014f57e0be3347b34cea9
2019-12-19 01:06:41 +00:00
Automerger Merge Worker 1fd36bc5e4 Merge changes from topic "art_apex_available" am: e09efa6473 am: 750862ab53 am: 628aedb95f
Change-Id: Ie354472c15c37e7d363b3d5779d42105b143804f
2019-12-19 00:59:00 +00:00
Automerger Merge Worker 628aedb95f Merge changes from topic "art_apex_available" am: e09efa6473 am: 750862ab53
Change-Id: I403313672b8d375e4a6254a62393f6e4d4890c4d
2019-12-19 00:42:02 +00:00
Jiyong Park e09efa6473 Merge changes from topic "art_apex_available"
* changes:
  Find the jar libraries in APEX from the correct path
  Use apex_available property
2019-12-19 00:21:43 +00:00
Automerger Merge Worker d254460190 Merge "Add libdl_android.so to the system partition absence check." am: 4d5458d1f0 am: 5db15db9cc am: a219cab736
Change-Id: I2fca16aa0207827d4636b95acf3bfd9563b31401
2019-12-17 13:35:23 +00:00
Automerger Merge Worker a219cab736 Merge "Add libdl_android.so to the system partition absence check." am: 4d5458d1f0 am: 5db15db9cc
Change-Id: If437adf2de2ceab88ac20d44513c6d786eb79eee
2019-12-17 13:21:03 +00:00
Jiyong Park 0d7bd6be90 Use apex_available property
Use apex_available property to prevent modules that are only for the ART
apex from being used outside of the APEX.

Bug: 128708192
Bug: 133140750
Bug: 129006418
Test: m
Test: m libnativeloader doesn't install anything. (because it doesn't
have "//apex_available:platform".
Test: Add "libnativeloader" to shared_libs of "libvndksupport" which is
installed to /system/lib. Then the build fails with following error:

  error: system/core/libvndksupport/Android.bp:3:1: module
  "libvndksupport" variant "android_arm_armv8-a_core_shared": depends on
  //art/libnativeloader:libnativeloader which is not visible to this
  module

Change-Id: I964d0125cfedb454a60c098bf1a1797201d5dd40
2019-12-17 21:16:20 +09:00
Martin Stjernholm 42ae1c8c8f Add libdl_android.so to the system partition absence check.
Test: m
Bug: 144343305
Change-Id: Ie3a9698d4d369a68ce2baffbab448af63ead4410
2019-12-16 21:43:45 +00:00
Automerger Merge Worker edf413c451 Merge changes from topic "gsi-with-flattened-apexes" am: b3bff1d203 am: 66ee21cedd am: 5feb2e79a3
Change-Id: I244be08d252e1da0eee055a451d748cf0cabca87
2019-12-13 22:13:49 +00:00
Automerger Merge Worker 5feb2e79a3 Merge changes from topic "gsi-with-flattened-apexes" am: b3bff1d203 am: 66ee21cedd
Change-Id: I5a1c446abab9e0e8dec7dca027bc757f8b34d14b
2019-12-13 21:56:16 +00:00
Jooyung Han 9efe534ef1 Add PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES
For GSI targets, this variable is set true, and Soong will install both
"flattened" and "unflattened" APEXes together in /system_ext and /system
respectively.

Bug: 137802149
Test: lunch aosp_arm64-userdebug && m
  resulting apex images under /system/apex
  and flattened apexes under /system/system_ext/apex

Change-Id: Ib72d1b9dbd59727942da39323ee7e60ac6e14882
2019-12-12 02:04:43 +09:00
Aurimas Liutikas e7bed1b505 Merge "Move to using full java-lib-files from stubs." am: ac3bf4e3a9 am: 09171641a3
am: d68d821009

Change-Id: Iea3b9411febc6233e02e02147c9b886b7798ac1e
2019-12-09 20:59:56 -08:00
Aurimas Liutikas d68d821009 Merge "Move to using full java-lib-files from stubs." am: ac3bf4e3a9
am: 09171641a3

Change-Id: I9ccdddf26512cd211e670e9461e0be1245f9a056
2019-12-09 20:57:54 -08:00
Aurimas Liutikas 743c9c3b6b Move to using full java-lib-files from stubs.
java-lib-header-files (turbine) differ from java-lib-files (actual metalava
output) in how the private constructors are showing up in these jars.

in classes.jar android/telephony/AccessNetworkConstants.class
package android.telephony;

public final class AccessNetworkConstants {
    private AccessNetworkConstants() {
        throw new RuntimeException("Stub!");
    }
}

in classes-header.jar android/telephony/AccessNetworkConstants.class
package android.telephony;

public final class AccessNetworkConstants {
}

As you can see, turbine seems to skip adding the private constructor,
which means that it becomes public.

Bug: 145933077
Test: m out/target/common/obj/api.xml
      out/target/common/obj/api.xml -> no longer has public constructor
      for AccessNetworkConstants

Change-Id: Ie1763783667b41b9892c9c47e6b362d7962caf14
2019-12-09 16:36:15 -08:00
Jaewoong Jung cc61d50e2f Merge "Enable overrides for ETC modules" am: 0c9d914eef am: 2e007a7b04
am: 093994a48e

Change-Id: Ic87d5893599ec10d9c0241c370e43a967e04b1b2
2019-11-06 19:12:49 -08:00
Jaewoong Jung 093994a48e Merge "Enable overrides for ETC modules" am: 0c9d914eef
am: 2e007a7b04

Change-Id: I3e2c21402a9fa20ba2b6115e5daa77ef6d97e9da
2019-11-06 18:45:55 -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
Anton Hansson d5b66471b6 Merge "Ensure current product use PRODUCT_* vars directly" am: 871d39c40e am: 331fb4f7d6
am: 1def48dd5e

Change-Id: I4a5f13a9161b8da766077452a3309a5dffab629c
2019-11-04 04:23:34 -08:00
Anton Hansson 1def48dd5e Merge "Ensure current product use PRODUCT_* vars directly" am: 871d39c40e
am: 331fb4f7d6

Change-Id: Ibc79392e7760082bef5ae4406c210572e52f92a9
2019-11-04 04:17:51 -08:00
Anton Hansson 871d39c40e Merge "Ensure current product use PRODUCT_* vars directly" 2019-11-04 10:35:48 +00:00
Dan Willemsen 09e57929f1 Re-enable link type checking
When I removed the actions that ran the python link type checker, I
forgot that the Make version hadn't been enabled yet. Enable the Make
version.

Bug: 143748700
Test: treehugger (particularly, build_test on the downstream branches)
Change-Id: I293b3be5ca7828c9d7148e13d88b0f0bba54d964
2019-11-02 21:38:50 -07:00
Roland Levillain a9000395a4 Merge "Implement APEX JAR (Java library) absence checks for Core Libraries." am: 374213db0d am: ba88c3be5c
am: d5281547cc

Change-Id: I785a8e65bf96ef2933c06bcf0a56689f58b1eda0
2019-10-31 15:02:21 -07:00
Roland Levillain d5281547cc Merge "Implement APEX JAR (Java library) absence checks for Core Libraries." am: 374213db0d
am: ba88c3be5c

Change-Id: I39709701f2ce1e2d4b5cf631822f29d78958bae9
2019-10-31 14:24:33 -07:00
Roland Levillain b353eda0c0 Implement APEX JAR (Java library) absence checks for Core Libraries.
Refactor existing native library checks to share common logics.

Test: Check that `m installclean && m systemimage` succeeds
Test: Check that `m installclean && m libart && m systemimage` fails
Test: Check that `m installclean && m core-oj && m systemimage` fails
Test: Check that `m installclean && m conscrypt && m systemimage` fails
Test: Check that `m installclean && m libart core-oj conscrypt && m systemimage` fails
Test: Check that
        `export OVERRIDE_TARGET_FLATTEN_APEX=true \
         && m installclean \
         && m systemimage`
      succeeds
Bug: 142944799
Bug: 128708192
Bug: 113374338
Change-Id: I703a837c6bb138af73eeb95fc08e1a87af2d8ad7
2019-10-31 16:09:02 +00:00
Roland Levillain 275adbd65d Merge "Reland "Remove Core Library JARs from `/system/framework`."" am: 3596fc60c8 am: 6dc4d94f1f
am: a3f6fa20aa

Change-Id: I67a86287a3bdc4cc61712ee9e40a0db52f2c8b75
2019-10-31 06:34:11 -07:00
Roland Levillain a3f6fa20aa Merge "Reland "Remove Core Library JARs from `/system/framework`."" am: 3596fc60c8
am: 6dc4d94f1f

Change-Id: I798e74483ad1cf7d85c218e6b184f93f68b04129
2019-10-31 06:28:17 -07:00
Roland Levillain c7c4a766f0 Reland "Remove Core Library JARs from `/system/framework`."
These JARs are part of the ART APEX, and are now located in
`/apex/com.android.art/javalib`. Remove the supernumerary copies in
`/system/framework` and save ~11 MiB on the system partition.

This change no longer breaks coverage builds, as module
`jacocoagent` has been removed from `TARGET_CORE_JARS` in CL
https://android-review.googlesource.com/c/platform/build/+/1151464.

This reverts commit 7c39368927.

Test: Device boot test
Test: Check that:
        export EMMA_INSTRUMENT=true
        && unset EMMA_INSTRUMENT_STATIC
        && m installclean
        && m systemimage
      generates a system image that contains these files:
        /system/framework/apex-jacocoagent.vdex
        /system/framework/boot-jacocoagent.vdex
        /system/framework/jacocoagent.jar
        /system/framework/<arch>/apex-jacocoagent.art
        /system/framework/<arch>/apex-jacocoagent.oat
        /system/framework/<arch>/apex-jacocoagent.vdex
        /system/framework/<arch>/boot-jacocoagent.art
        /system/framework/<arch>/boot-jacocoagent.oat
        /system/framework/<arch>/boot-jacocoagent.vdex
Test: Run test ATP test avd/avd_boot_health_check on build target
      cf_x86_phone-userdebug_coverage
Bug: 142944799
Bug: 143304991
Change-Id: Ifdb2331c5dcb992adbfd6c5a3983d8b9b13d16b2
2019-10-30 16:25:19 +00:00
Anton Hansson cca8cdb993 Ensure current product use PRODUCT_* vars directly
Disallow use of the long-form PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_*
after the short-form has been assigned, to ensure modifications are
made to the right variable.

Macros that need to work with multiple products get a convenience
macro that is redefined at the right moment.

Test: compare_target_files
Test: build_test
Change-Id: Ib0e57b1bc51b1f308296a150b9b7590a0bb5c313
2019-10-30 14:29:42 +00:00
Roland Levillain e6a11e7351 Merge "Revert "Remove Core Library JARs from `/system/framework`."" am: 5ec356acff am: 8e3afe7ca4 am: c895f20422
am: 0c486ca724

Change-Id: Icbffd8dda7d41fe2e9a140cc70e340558fa83356
2019-10-28 11:21:40 -07:00
Roland Levillain 0c486ca724 Merge "Revert "Remove Core Library JARs from `/system/framework`."" am: 5ec356acff am: 8e3afe7ca4
am: c895f20422

Change-Id: Iaeefdb61df3e33e56030a0a9e45068630e337fe7
2019-10-28 11:14:38 -07:00
Roland Levillain 7c39368927 Revert "Remove Core Library JARs from `/system/framework`."
This reverts commit 3ec9ff6b72.

Reason for revert: This change breaks coverage builds (b/143304991)

Change-Id: Ia1a41ea75d1539efeb33b7cdea84516e402b6e00
Test: Device boot test
Test: Check that:
        export EMMA_INSTRUMENT=true
        && unset EMMA_INSTRUMENT_STATIC
        && m installclean
        && m systemimage
      generates a system image that contains these files:
        /system/framework/apex-jacocoagent.vdex
        /system/framework/boot-jacocoagent.vdex
        /system/framework/jacocoagent.jar
        /system/framework/<arch>/apex-jacocoagent.art
        /system/framework/<arch>/apex-jacocoagent.oat
        /system/framework/<arch>/apex-jacocoagent.vdex
        /system/framework/<arch>/boot-jacocoagent.art
        /system/framework/<arch>/boot-jacocoagent.oat
        /system/framework/<arch>/boot-jacocoagent.vdex
Test: Test: Run test ATP test avd/avd_boot_health_check on build target
      cf_x86_phone-userdebug_coverage
Bug: 142944799
Bug: 143304991
2019-10-28 15:00:31 +00:00
Evgenii Stepanov d745c5148a Revert "Define ro.sanitize.<name> properties in SANITIZE_TARGET builds." am: 69b3f82249
am: 70ec542342

Change-Id: I0a65c9445d3deb5aca81c5c9c8ffcdcb20958e4d
2019-10-24 21:38:55 -07:00
Evgenii Stepanov 70ec542342 Revert "Define ro.sanitize.<name> properties in SANITIZE_TARGET builds."
am: 69b3f82249

Change-Id: I7559f3c663e2e337b79dbee720ab63c3fa87141a
2019-10-24 21:32:24 -07:00
Evgenii Stepanov 69b3f82249 Revert "Define ro.sanitize.<name> properties in SANITIZE_TARGET builds."
This reverts commit edfd1ae712.

Reason for revert: breaks sepolicy_freeze_test

Change-Id: Idf15bfd4bf74cd0ba0ae42c4c95c4afa0c94be54
2019-10-25 03:57:56 +00:00
Evgenii Stepanov edfd1ae712 Define ro.sanitize.<name> properties in SANITIZE_TARGET builds.
This will let us quickly check the system image build type,
and modify *.rc behavior based on that.

Bug: 142430632
Bug: 142681453
Test: adb shell getprop ro.sanitize.hwaddress in hwasan build

Change-Id: If2eb99dee93f0652cada5cb2e02fda963d00a7eb
Merged-In: If2eb99dee93f0652cada5cb2e02fda963d00a7eb
(cherry picked from commit eb3ade924b)
2019-10-24 21:03:02 +00:00
Roland Levillain 3ec9ff6b72 Remove Core Library JARs from `/system/framework`.
These JARs are part of the ART APEX, and are now located in
`/apex/com.android.art/javalib`. Remove the supernumerary copies in
`/system/framework` and save ~11 MiB on the system partition.

(cherry picked from commit d4f09f7752)

Test: Device boot test
Bug: 142944799
Change-Id: Ia6f58d858ecdb80c9701696b8f20d5fa2de0c2c7
Merged-In: Ia6f58d858ecdb80c9701696b8f20d5fa2de0c2c7
2019-10-22 16:42:53 +00:00
Roland Levillain d4f09f7752 Remove Core Library JARs from `/system/framework`.
These JARs are part of the ART APEX, and are now located in
`/apex/com.android.art/javalib`. Remove the supernumerary copies in
`/system/framework` and save ~11 MiB on the system partition.

Test: Device boot test
Bug: 142944799
Change-Id: Ia6f58d858ecdb80c9701696b8f20d5fa2de0c2c7
2019-10-21 15:22:51 +01:00
vichang 09dab6dda0 Merge "Add libicu_jni into ART APEX" am: ed02064ed5 am: bc2a8ead4a am: 7bcad8fc4b
am: 5698e5b965

Change-Id: I5efbf901727066cafe6d8d5d6e7a72a33e3495fd
2019-10-15 11:14:01 -07:00
vichang ed02064ed5 Merge "Add libicu_jni into ART APEX" 2019-10-15 06:43:10 +00:00
Evgenii Stepanov 8db51c7d97 Merge "Define ro.sanitize.<name> properties in SANITIZE_TARGET builds." am: 7bebcbaff2 am: 62c3058fc9 am: 1c0eab294a
am: f918b3dda3

Change-Id: I97ced52fb76415e3ea2cc08cc26b418f1f95f99d
2019-10-14 15:42:36 -07:00
Evgenii Stepanov eb3ade924b Define ro.sanitize.<name> properties in SANITIZE_TARGET builds.
This will let us quickly check the system image build type,
and modify *.rc behavior based on that.

Bug: 142430632
Test: adb shell getprop ro.sanitize.hwaddress in hwasan build

Change-Id: If2eb99dee93f0652cada5cb2e02fda963d00a7eb
2019-10-11 16:59:27 -07:00
Victor Chang d272f0ed6f Add libicu_jni into ART APEX
Bug: 138994281
Test: device boots
Change-Id: Ic61d374ef87634ebaa1bb55b2a36176d3606f3d2
2019-10-11 14:20:38 +01:00
Bowgo Tsai a00d0d6d56 Merge "Adding boot-test-harness.img" am: 818df7b0d0 am: 68130ccb4a am: 234df13a98
am: f4a6be23fb

Change-Id: Id4d41092e69feff61cf1ac2fb265e59092e3d427
2019-10-09 18:00:09 -07:00
Bowgo Tsai 5c40c7166f Adding boot-test-harness.img
In commit I30137c3caef91805d9143d404e5e4d06c0fccc30, we added
a boot-debug.img to allow adb root when using an user build GSI image.

However, to run automated tests, it requires additional properties,
which are not needed for GSI compliance:
    ro.audio.silent=1
    ro.test_harness=1

This CL adds an additional boot-test-harness.img for automated tests,
and keeps the original boot-debug.img for GSI compliance.

Note: boot-test-harness.img won't be built by default, it needs
      explicit `make bootimage_test_harness`.

Bug: 140036184
Test: `m bootimage_test_harness`, flashes boot-test-harness.img and checks
      adb root works and test harness props are set.
Test: `m bootimage_test_harness dist -j32`, checks both
      boot-test-harness.img and ramdisk-test-harness.img are under ./out/dist/.
Test: `system/tools/mkbootimg/unpack_bootimg.py --boot_img $OUT/boot-test-harness.img --out ramdisk-test-harness`,
      checks the extracted out/ramdisk is as expected
Test: Run `gunzip -c ramdisk | cpio -idm` for the ramdisk extracted from
      $OUT/boot-test-harness.img and $OUT/boot-debug.img, respectively.
      Then compare the root dirs of both, e.g.,
      `diff -rq --no-dereference ./ramdisk-test-harness ./ramdisk-debug`
Test: `m ramdisk_test_harness-nodeps` and `m bootimage_test_harness-nodeps`
Change-Id: Iadea0b5c933c3b7fa10dcf3d9e85596916b3333d
2019-10-08 10:22:13 +00:00
Kailin Luo 144bd339b3 Merge "Add App Compatibility Test Suite (C-Suite) to build" 2019-10-04 22:23:24 +00:00
karenluo af68e408ec Add App Compatibility Test Suite (C-Suite) to build
Test: make csuite
Change-Id: Id2a9c0acffef35e092485f598203fe335a24810c
2019-10-04 17:51:16 +00:00
Elliott Hughes 787ac2ed38 Remove ro.bionic.ld.warning.
Bug: http://b/141754375
Test: treehugger
Change-Id: I07c0d5424dde16e85bcd6d5639bc594ee8582b20
2019-10-02 11:40:59 -07:00
Treehugger Robot 1623ec97f1 Merge "add vendor_boot image support" 2019-09-27 21:07:24 +00:00
Steve Muckle e1b1086ef3 add vendor_boot image support
The vendor_boot partition is generated by mkbootimg and contains all the
device-specific information that used to reside in the boot partition.

Bug: 137297791
Change-Id: I5b005097b73f59857c3a2f92d693b3e67ee8424e
2019-09-27 10:26:00 -07:00
Anton Hansson ee07ef0019 Improve error message for artifacts outside requirement
Print the allowed paths as part of the error message.

Test: m
Change-Id: Ieb6303f39260ce83232b1c9a0a30e8cac76e2c9c
2019-09-24 12:40:25 +01:00
Dan Shi d9bef81f7c Merge "Create a vts-core suite harness package" 2019-09-20 18:06:19 +00:00
Dan Shi 796ff4ffb5 Create a vts-core suite harness package
vts-core.zip will include all vts-core tests and suite harness
(vts-core-tradefed).

Bug: 141012181
Test: m -j vts-core

Change-Id: Ib13a2bffb4dc9619d2732d65729ecb0246a0b9a0
2019-09-19 13:13:44 -07:00
Treehugger Robot bd496d27ad Merge "Remove TARGET_TRANSLATE_2ND_ARCH" 2019-09-18 20:47:43 +00:00
Colin Cross 02b50d12be Remove TARGET_TRANSLATE_2ND_ARCH
TARGET_TRANSLATE_2ND_ARCH is never set to true any more,
TARGET_NATIVE_BRIDGE_ARCH := arm is always used instead.

Bug: 141242600
Test: m checkbuild
Change-Id: Id3e0614a1d8a088d37929655b74fecd812606db2
2019-09-18 16:23:04 +00:00
Logan Chien 37e237aa71 Add check-elf-files as a checkbuild prerequisite
This commit adds `check-elf-files` as a `checkbuild` prerequisite so
that prebuilt ELF files can be checked in a `checkbuild` build bot when
`PRODUCT_CHECK_ELF_FILES` is set to `true`.

Bug: 140908693
Test: lunch aosp_walleye-userdebug && make checkbuild
Change-Id: Ifea2f7057eecbf74028e986367f2322ff851f5e4
2019-09-12 21:26:09 -07:00
Elliott Hughes 648017c2b8 Remove macOS special cases pertaining to date(1).
Bug: http://b/139450866
Test: builds
Change-Id: Idc6cc19cf1b81b51526a7d2ba78020c6decb0031
2019-09-12 15:04:16 -07:00
Colin Cross 114e8dfa3e Dist proguard dictionaries for platform builds
Proguard dictionaries are useful for platform builds as well as
unbundled builds, produce them for both.

Bug: 140585949
Test: m out/target/product/$(get_build_var TARGET_DEVICE)/${TARGET_PRODUCT}-proguard-dict-eng.ccross.zip
Change-Id: I63b826be35cfbfc9661b5be7de5bea285bd3d3fc
2019-09-05 21:08:38 -07:00
Dan Willemsen d7994816c1 Remove package-stats.txt
I can't find any remaining users of this functionality.

Test: codesearch; treehugger
Change-Id: I63b079b381211b743baa293267c992d9b2eadcf9
2019-08-21 12:36:14 -07:00
Hsin-Yi Chen 7205361315 Merge "Add tags to lsdump_paths.txt" 2019-08-15 02:20:30 +00:00
Dan Willemsen 8da52d4b9d Move TOP/TOPDIR to build/make/common/core.mk
So that they're set properly during dumpvars / product loading.

SHELL is already set in common/core.mk, so it's not necessary to be in
core/main.mk as well (which quickly loads core/config.mk, which loads
common/core.mk).

Test: get_build_var TOP
Test: get_build_var TOPDIR
Change-Id: I8179ac32628b74ccf29851dc53bf83cfb4b280fd
2019-08-08 10:58:09 -07:00
Hsin-Yi Chen 5cbf33afe9 Add tags to lsdump_paths.txt
- Update the conversion from LSDUMP_PATHS to lsdump_paths.txt.
  LSDUMP_PATHS is a list of "tag:path". Each element is converted to
  "tag: path\n" in lsdump_paths.txt.

- Update the check for redundant ABI dumps.
  prebuilts/abi-dumps/ndk contains the ABI dumps for NDK.
  prebuilts/abi-dumps/vndk contains those for LLNDK, VNDK-core, VNDK-SP,
  except NDK.

Test: make findlsdumps
Bug: 133176785
Change-Id: I90559e6c68a7f901a318cd8d5125e9a7401ac22c
2019-08-05 11:20:22 +08:00
Dan Willemsen 18ffd5891e Remove import_includes/export_includes
Now that ONE_SHOT_MAKEFILE no longer exists, we don't have to rely on
the filesystem to store this informtion.

This removes ~16.7k files from our build graph
(aosp-master/aosp_arm64-eng), though only about 600 of them were being
used in a normal build.

Test: treehugger
Change-Id: I3ac12f5ea7f11d25064109a0599bc5be1976fba5
2019-08-01 14:56:45 -07:00
Dan Willemsen 8b8b9b6bf8 Merge changes from topic "rm_ONE_SHOT_MAKEFILE"
* changes:
  Remove [jni_]link_type files
  Remove support for ONE_SHOT_MAKEFILE
2019-08-01 21:11:02 +00:00
Dan Willemsen 0df0f6bbf1 Remove [jni_]link_type files
Now that mm/ONE_SHOT_MAKEFILE have been removed, we can expect to know
about all of our dependencies at the end of the build.

This removes 19k nodes from our build graph (aosp-master
aosp_arm64-eng), though in a default build, only 3k of those are used.

Test: ALLOW_MISSING_DEPENDENCIES=true, then trigger a missing dependency
Test: treehugger
Test: create link_type files, then apply CleanSpec.mk, ensure they're removed
Change-Id: I9506331e4a9911d2f26e59a2f72a97aef1644073
2019-07-31 18:09:22 -07:00
Dan Willemsen 5c3fc2a792 Remove support for ONE_SHOT_MAKEFILE
Test: treehugger
Change-Id: Ie73418c186ec4c0e1c91078c133de8f8113295bf
2019-07-31 18:08:47 -07:00
Chen Zhu 95b0913070 Add Mainline Test Suite (MTS).
Test: m mts && mts-tradefed run mts

Bug:123411735
Bug:126277867

Merged-In: Iba6bf89bd4457ed0f5c1eb3351bf5ffd6720441d
Change-Id: I889ace72980619884cb35359b9a18d7b2053fed8
2019-07-31 21:31:10 +00:00
Dan Willemsen d69e849c9b Merge "Stop supporting wrapping the build with `make`" 2019-07-30 21:48:52 +00:00
Dan Willemsen 893948955d Stop supporting wrapping the build with `make`
The build servers are no longer using this. It's hard to search for
others using it -- I've cleaned them up as I've run across them, but
we'll just have to see who breaks once this goes in.

This was the last user of makeparallel, so we can remove it.

Test: make
Test: treehugger
Change-Id: If6df3f1a67d6a6df36afaa4b07cd88a48a364fe1
2019-07-29 22:43:35 -07:00
Dan Willemsen 8a5d597bbf Remove the PRODUCT-* goal
I've switched all the build server configs to using TARGET_PRODUCT /
TARGET_BUILD_VARIANT and explicit goals instead.

Remove tools/check_builds.sh which relied on this, but hasn't been
touched in a long time.

Test: m PRODUCT-test
Test: treehugger
Change-Id: If5f8c714567b33aeb38223c176ca24ea649eb57d
2019-07-29 14:27:04 -07:00
Przemyslaw Szczepaniak b4befed86f Merge "Move libneuralnetworks.so to com.android.neuralnetworks APEX" 2019-07-24 09:12:18 +00:00
Przemyslaw Szczepaniak f67c72b34d Move libneuralnetworks.so to com.android.neuralnetworks APEX
Test: build&flashed crosshatch image
Bug: 137320025

Change-Id: Iadbb32cffc636c515a5e89b62539183ebc0c2f14
2019-07-19 16:41:48 +01:00
Martin Stjernholm 1886f53103 Make the error messages from the two APEX_MODULE_LIBS checks easier to tell
apart.

Also make it more clear what the problem may be when the "find" check fails,
to aid troubleshooting.

Test: m
Change-Id: Iacdc4734f20eeaf3fb0d29e418df21f5089cecbc
2019-07-16 17:47:33 +01:00
Dimitry Ivanov 9c7ab5944e Merge "Add NativeBridgeRelativePath config variables" 2019-07-16 09:17:35 +00:00
dimitry fb2449f7b7 Add NativeBridgeRelativePath config variables
This will allow us to unhardcode relative paths for native-bridge
binaries in soong.

Test: make PRODUCT-cf_x86_phone-userdebug
Change-Id: I72b33ee610c92d41e1370fcaa1512529c5d7c88c
2019-07-12 16:08:00 +02:00
Elliott Hughes 440c99f1f2 Stop building unnecessary tarballs.
Test: treehugger
Change-Id: Iaba2aa6d09ad891f37171cc76778d08c78c78f93
2019-07-12 05:04:12 +00:00
Justin Yun 6151e3f1ea Rename product_services to system_ext
Bug: 134359158
Test: build and check if system_ext.img is created
Change-Id: I67f2e95dd29eac6a28e07e24ea973d3a134c3bfc
2019-07-09 08:57:19 +00:00
Kavi Gupta 7185f8cc2d Modify build to put dumpcoverage agent into /system/lib
This location allows the agent to be attached to arbitrary processes.

It only makes sense to include libdumpcoverage.so on coverage builds,
as these are the only builds that have any information to be dumped.

Test: manual, used examples in README (see other CL) to test whether
it works on a userdebug_coverage build on cuttlefish

Change-Id: Ib2fece1b41a3b5d16c8a2a444c5486137e475fda
2019-06-27 09:28:39 -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
Chen Zhu ce72964fa1 Add Mainline Test Suite (MTS) to build.
Test: m mts

Bug: 126277867
Bug: 123411735
Change-Id: Iba6bf89bd4457ed0f5c1eb3351bf5ffd6720441d
2019-06-19 15:14:23 -07:00
Felix b56b25157c core/main: Strip bitness before existence check
Strip bitness information for PRODUCT_PACKAGES and
PRODUCT_HOST_PACKAGES before checking against ALL_MODULES.

Also correct spelling: nonexistant -> nonexistent

Bug:
If PRODUCT_ENFORCE_PACKAGES_EXIST was set, the build system would
complain about nonexistent packages for e.g. HALs where the bitness was
specified using a suffix, such as android.hardware.audio@4.0-impl:32

Test:
Add android.hardware.audio@4.0-impl:32 to PRODUCT_PACKAGES, specify
PRODUCT_ENFORCE_PACKAGES_EXIST, ensure no whilelist is set.
"make systemimage vendorimage" -> No error.

Signed-off-by: Felix <google@ix5.org>
Change-Id: Id59460a19320aa9437b8805411a0d97fa6432633
2019-06-03 14:10:33 +02:00
Dan Willemsen e048f7eff3 Remove BUILD_BROKEN_ENG_DEBUG_TAGS
All users have been removed.

Test: treehugger
Change-Id: I2cfe720bef88cc5485e90746d85a7e0a5d068ef7
Merged-In: I2cfe720bef88cc5485e90746d85a7e0a5d068ef7
2019-05-25 22:47:35 +00:00
Daniel Mentz bacc040da0 Install radio image as part of droidcore
Previously, the radio image was only installed as part of "make dist".

Change-Id: Id497238930b5a155d1ae30fd7fb2203377c9741d
2019-05-24 17:50:27 +00:00
Dimitry Ivanov f64b664d6c Merge "Fix typo in APEX_LIBS_ABSENCE_CHECK_EXCLUDE" 2019-05-24 08:26:36 +00:00
dimitry c193ae4c04 Fix typo in APEX_LIBS_ABSENCE_CHECK_EXCLUDE
arm64 guest libraries are located in lib64/arm64

Bug: http://b/77159578
Test: lunch cf_x86_64_phone-userdebug in internal master; mm -j48 dist
Change-Id: I9f1f9426cbaed0a269126cb242e1a6df9249b167
2019-05-23 16:01:50 +02:00
Sasha Smundak 2748c61659 Remove unused (and currently broken) `samplecode` target.
Running 'm samplecode' fails with
"build/make/core/main.mk:1834: error: overriding commands for target
`out/target/common/samples/libsimplejni.so', previously defined at
build/make/core/main.mk:1834"
This proves that noone has been using 'samplecode' target at least since
the build started generating both 32- and 64-bit shared libraries by default,
because development/samples/SimpleJNI/jni/Android.mk defines libsimplejni.so
as 'sample', and the deleted code in core/main.mk causes duplicate rule in
such case.

Test: treehugger
Change-Id: I38a4c478fcb0e60793129fe2513a8cdc6d2c79fb
2019-05-22 20:01:49 -07:00
Colin Cross ab83244472 Bypass LOCAL_*_REQUIRED_MODULES checks for ONE_SHOT_MAKEFILE
When ONE_SHOT_MAKEFILE is set, the targets of LOCAL_*_REQUIRED_MODULES
may not exist, so skip the error message.

Fixes: 131241991
Test: mmm cts/tests/signature/intent-check
Change-Id: I95c4c901610746854179af8486c8c4767dd18864
2019-05-17 23:10:26 +00:00
Martin Stjernholm ff29b0fa3e Add libc_malloc_{debug,hooks}.so to the absence check.
They should only be in the Runtime APEX, c.f. discussion on
http://r.android.com/957159.

Test: build/soong/build_test.bash through Forrest
Bug: 124293228
Change-Id: I33e97a56e67c3f4734d14f38e0f1597b697a2604
2019-05-14 18:37:40 +01:00
Martin Stjernholm 6311b83cc2 Extend library absence check to Bionic libs and all ART debug libs.
(cherry picked from commit c2e0205927)

Test: m systemimage
Test: build_test on Forrest
Bug: 132289438
Merged-In: I1a25d8d45668638b7eb0d39ded9cad3ed30db33c
Change-Id: I5b89aa33d35022fdca7f19c98f1bae51c173a876
2019-05-10 16:14:58 +00:00
Martin Stjernholm e954e3e47d Add the library absence check as a kati stage check.
(cherry picked from commit a5181f67a7)

Test: m systemimage
Test: build_test on Forrest
Bug: 132289438
Merged-In: I7a93cc0ac4480404a3d56c75eb43ae499e8a3a05
Change-Id: I6012e16bb02d4fea1cff51b20de94560da7a8d09
2019-05-10 16:14:50 +00:00
Martin Stjernholm f26bef86ec Merge "Extend library absence check to Bionic libs and all ART debug libs." 2019-05-09 11:51:37 +00:00
Martin Stjernholm e115e3cf07 Extend library absence check to Bionic libs and all ART debug libs.
Test: m systemimage
Test: build/soong/build_test.bash
Bug: 124293228
Change-Id: I1a25d8d45668638b7eb0d39ded9cad3ed30db33c
2019-05-09 01:07:56 +01:00
TreeHugger Robot cfca3e591d Merge "Move ro.boot.dynamic_partitions to vendor/build.prop" into qt-dev 2019-05-08 23:28:51 +00:00
Hridya Valsaraju ccd6279bef Move ro.boot.dynamic_partitions to vendor/build.prop
Bug: 132197773
Test: property present in vendor/build.prop

Currently, the property resides in product partition which gets
overwritten by the GSI image. Moving it to vendor will ensure
that the property is set even when a GSI image is flashed on the device.

Change-Id: I4d4a3c473194e15ba124a121f89bbb3ec1a73d19
Merged-In: I4d4a3c473194e15ba124a121f89bbb3ec1a73d19
2019-05-08 21:40:26 +00:00
Treehugger Robot e591ef32a0 Merge "Move ro.boot.dynamic_partitions to vendor/build.prop" 2019-05-08 21:39:26 +00:00
Hridya Valsaraju 1fd498d748 Move ro.boot.dynamic_partitions to vendor/build.prop
Bug: 132197773
Test: property present in vendor/build.prop

Currently, the property resides in product partition which gets
overwritten by the GSI image. Moving it to vendor will ensure
that the property is set even when a GSI image is flashed on the device.

Change-Id: I4d4a3c473194e15ba124a121f89bbb3ec1a73d19
2019-05-08 16:22:06 +00:00
Martin Stjernholm b0382f0319 Add the library absence check as a kati stage check.
Primarily for use with build_test during presubmit.

Moved the check to main.mk to avoid nonobvious dependency on
product_target_FILES from main.mk to Makefile.

Test: m systemimage
Test: build/soong/build_test.bash
Test: m out/target/product/taimen/system/lib/libdexfile.so; m systemimage;
  check that "find"-based check fails
Test: Add a system library to APEX_MODULE_LIBS; m systemimage;
  check that "product_target_FILES"-based check fails;
  env DISABLE_APEX_LIBS_ABSENCE_CHECK=true m systemimage;
  check that it works
Bug: 124293228
Change-Id: I7a93cc0ac4480404a3d56c75eb43ae499e8a3a05
2019-05-03 13:02:51 +01:00
Yifan Hong 75ed2e7f11 Add BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT flag.
If set to true,
- super.img is built from images in $PRODUCT_OUT
- super.img is built to $PRODUCT_OUT
- super.img is built when 'make'.

'make dist' still builds super image from images in target files to
intermediates directory.

This flag is useful for virtual devices, but isn't intended to be set for
actual devices. For actual devices, userspace fastboot should flash
super_empty.img and individual user images separately.

Test: on cuttlefish (flag is set),
      make            # generates $OUT/super.img
      make superimage # generates $OUT/super.img
Test: on real non-retrofit DAP device (flag is not set)
      make            # no super.img is generated
      make superimage # generates $OUT/obj/PACKAGING/.../super.img
      make dist       # generates out/dist/super.img

Bug: 113175337

Change-Id: Ieb81e4fbb663bb4b69e9962c3fa9f16b03aeb907
(cherry picked from commit acd862aed3)
Merged-In: Ieb81e4fbb663bb4b69e9962c3fa9f16b03aeb907
2019-04-29 16:41:32 -07:00
Yifan Hong acd862aed3 Add BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT flag.
If set to true,
- super.img is built from images in $PRODUCT_OUT
- super.img is built to $PRODUCT_OUT
- super.img is built when 'make'.

'make dist' still builds super image from images in target files to
intermediates directory.

This flag is useful for virtual devices, but isn't intended to be set for
actual devices. For actual devices, userspace fastboot should flash
super_empty.img and individual user images separately.

Test: on cuttlefish (flag is set),
      make            # generates $OUT/super.img
      make superimage # generates $OUT/super.img
Test: on real non-retrofit DAP device (flag is not set)
      make            # no super.img is generated
      make superimage # generates $OUT/obj/PACKAGING/.../super.img
      make dist       # generates out/dist/super.img

Bug: 113175337

Change-Id: Ieb81e4fbb663bb4b69e9962c3fa9f16b03aeb907
2019-04-25 10:51:35 -07:00
Bowgo Tsai d82a1549f1 Adding boot-debug.img and ramdisk-debug.img
The two new debugging images adds additional files based on
boot.img and ramdisk.img/ramdisk-recovery.img, respectively.

File /force_debuggable is to trigger special logic in /init to load an
userdebug version of sepolicy and an additional property file from this
ramdisk to allow adb root, if the device is unlocked.

It's intentional to skip signing for boot-debug.img, as it can
only be used if the device is unlocked, where verification error
is allowed.

Those debugging images allows adb root on user build
system.img, vendor.img, product.img, etc. This can facilitate more
automated testings on user builds and is helpful to narrow down the
delta between what's being tested v.s. what's being shipped.

Bug: 126493225
Test: `make dist`, checks both boot-debug.img and ramdisk-debug.img
      are in $OUT/ and out/dist.
Test: `make dist`, checks installed-files-ramdisk-debug.{json,txt} are
       in out/dist.
Test: `system/core/mkbootimg/unpack_bootimg.py --boot_img $OUT/boot-debug.img`,
      checks the extracted out/ramdisk is as expected
Test: Run `gunzip -c ramdisk | cpio -idm` for the ramdisk extracted from
      $OUT/boot-debug.img and $OUT/boot.img, respectively.
      Then compare the root dirs of both, e.g.,
      `diff -rq --no-dereference ./ramdisk ./ramdisk-debug`
Test: `make ramdisk_debug-nodeps` and `make bootimage_debug-nodeps`

Change-Id: I30137c3caef91805d9143d404e5e4d06c0fccc30
Merged-In: I30137c3caef91805d9143d404e5e4d06c0fccc30
(cherry picked from commit 0013f55ef4)
2019-04-23 21:03:00 +08:00
Bowgo Tsai 0013f55ef4 Adding boot-debug.img and ramdisk-debug.img
The two new debugging images adds additional files based on
boot.img and ramdisk.img/ramdisk-recovery.img, respectively.

File /force_debuggable is to trigger special logic in /init to load an
userdebug version of sepolicy and an additional property file from this
ramdisk to allow adb root, if the device is unlocked.

It's intentional to skip signing for boot-debug.img, as it can
only be used if the device is unlocked, where verification error
is allowed.

Those debugging images allows adb root on user build
system.img, vendor.img, product.img, etc. This can facilitate more
automated testings on user builds and is helpful to narrow down the
delta between what's being tested v.s. what's being shipped.

Bug: 126493225
Test: `make dist`, checks both boot-debug.img and ramdisk-debug.img
      are in $OUT/ and out/dist.
Test: `make dist`, checks installed-files-ramdisk-debug.{json,txt} are
       in out/dist.
Test: `system/core/mkbootimg/unpack_bootimg.py --boot_img $OUT/boot-debug.img`,
      checks the extracted out/ramdisk is as expected
Test: Run `gunzip -c ramdisk | cpio -idm` for the ramdisk extracted from
      $OUT/boot-debug.img and $OUT/boot.img, respectively.
      Then compare the root dirs of both, e.g.,
      `diff -rq --no-dereference ./ramdisk ./ramdisk-debug`
Test: `make ramdisk_debug-nodeps` and `make bootimage_debug-nodeps`

Change-Id: I30137c3caef91805d9143d404e5e4d06c0fccc30
2019-04-22 21:50:07 +08:00
David Brazdil 38cd7f3c8b Enable core platform API warnings on non-user builds
Core platform API violation reporting is disabled by default and can be
enabled by setting the persist.debug.dalvik.vm.core_platform_api_policy
property. Set it to "just-warn" for non-user builds and leave disabled
on user builds.

Test: builds, boots
Bug: 125701194
Change-Id: I2f4be42373de9fdbc71c3178de6d34e07809f13a
Merged-In: I2f4be42373de9fdbc71c3178de6d34e07809f13a
(cherry picked from commit f5b3fc854f)
2019-04-15 22:06:39 +01:00
David Brazdil f5b3fc854f Enable core platform API warnings on non-user builds
Core platform API violation reporting is disabled by default and can be
enabled by setting the persist.debug.dalvik.vm.core_platform_api_policy
property. Set it to "just-warn" for non-user builds and leave disabled
on user builds.

Test: builds, boots
Bug: 125701194
Change-Id: I2f4be42373de9fdbc71c3178de6d34e07809f13a
2019-04-15 16:12:59 +01:00
Dan Willemsen 5606d2b53b Split ALL_MODULES.*.REQUIRED and friends between target/host
So that we actually respect different LOCAL_REQUIRED_MODULES for the
host and device versions instead of unioning them. That got particularly
problematic when LOCAL_SHARED_LIBRARIES is implicitly added to
LOCAL_REQUIRED_MODULES. We also used to walk through device-only modules
when filling out the list of required modules, which triggered even more
extra installations.

This also changes the requirements for PRODUCT_HOST_PACKAGES so that it
no longer accepts target-only phony modules (since we can now
differentiate them). They were all removed in previous patches.

Bug: 123925742
Fixes: 129719937
Test: treehugger; diff resulting builds
Test: diff list of product_target_FILES and product_host_FILES
Change-Id: I2ed8950320d31f5693323ad8cef6ec5b6780b7d4
Merged-In: I2ed8950320d31f5693323ad8cef6ec5b6780b7d4
(cherry picked from commit 8e96a794ac)
2019-04-10 17:04:48 -07:00
Dan Willemsen 8e96a794ac Split ALL_MODULES.*.REQUIRED and friends between target/host
So that we actually respect different LOCAL_REQUIRED_MODULES for the
host and device versions instead of unioning them. That got particularly
problematic when LOCAL_SHARED_LIBRARIES is implicitly added to
LOCAL_REQUIRED_MODULES. We also used to walk through device-only modules
when filling out the list of required modules, which triggered even more
extra installations.

This also changes the requirements for PRODUCT_HOST_PACKAGES so that it
no longer accepts target-only phony modules (since we can now
differentiate them). They were all removed in previous patches.

Test: treehugger; diff resulting builds
Test: diff list of product_target_FILES and product_host_FILES
Change-Id: I2ed8950320d31f5693323ad8cef6ec5b6780b7d4
2019-04-10 13:22:23 -07:00
Johan Harvyl ca1dbcc809 Remove 'column' from modules target
The standard target modules stopped working when restrictions in
soong were introduced to which binaries are allowed to be used during
builds.

Listing a very large amount of modules in columns does not make it
more readable and harder to work with in tools so just drop it.

Bug: 129800175
Test: make modules

(cherry picked from commit 7005d4f4cc)

Change-Id: I317f6eb4ba5ea633264939a9a58f716bdb36596e
2019-04-04 13:19:51 -07:00
Johan Harvyl 7005d4f4cc Remove 'column' from modules target
The standard target modules stopped working when restrictions in
soong were introduced to which binaries are allowed to be used during
builds.

Listing a very large amount of modules in columns does not make it
more readable and harder to work with in tools so just drop it.

Bug: 129800175
Test: make modules
Change-Id: I26040479a03916161fb5d072de1af640d8080c7f
2019-04-03 07:41:43 -07:00
Anton Hansson 8adf501905 Merge "Access PRODUCT_ variables directly" 2019-03-29 16:54:47 +00:00
Anton Hansson b5cec0d792 Merge "Automate the strip and assignment of PRODUCT_ vars" 2019-03-29 16:54:25 +00:00
Dan Willemsen 672e98fac8 Merge "Stop installing host packages via PRODUCT_PACKAGES" 2019-03-29 03:20:52 +00:00
Anton Hansson 8dab0a6f50 Access PRODUCT_ variables directly
This CL simplifies the PRODUCTS.$(INTERNAL_PRODUCT).X accesses of
product variables, and removes unnecessary stripping of them.

Replace: '\$\(PRODUCTS\.\$\(INTERNAL_PRODUCT\)\.([^\)]*)\)' with '$(\1)'
Replace: '\$\(strip\s*\$\(PRODUCT_([^\)]*)\)\)' with '$(PRODUCT_\1)'

A few minor manual tweaks.

Bug: 116769560
Test: presubmit
Change-Id: I70c54f1582e3cc780028535960147d99ebc2e0e1
2019-03-28 15:54:25 +00:00
Anton Hansson 13ea2a6a7d Automate the strip and assignment of PRODUCT_ vars
With this change, all PRODUCT_ variables are treated the same
when it comes to stripping and assigning them to their final
variable name. In the past, all the PRODUCT variables needed
to be listed in two places to achieve this.

The documentation previously attached to the strip/assignment
is moved to the PRODUCT_ variable list in product.mk.

Also refactor some of the default value logic to cope with
the new automation.

Many places in the build system that currently refer to
$(PRODUCTS.$(INTERNAL_PRODUCT).X) can now be modified to
use $(X) directly.

Bug: 116769560
Test: verified noop on PRODUCT_ variables on all products in the tree
Change-Id: I5677c355e81359b1d3c0db2a2232941097a05047
2019-03-28 15:26:49 +00:00
Anton Hansson cb8276fa93 Put DEVICE/PRODUCT overlays in different partitions
This change changes auto-generated RROs from DEVICE_PACKAGE_OVERLAYS
to be generated in the vendor partition, as opposed to /product where
they were generated in the past.

Note that PRODUCT_PACKAGE_OVERLAYS continue generating RRO packages
to /product, which means that a single app can be overlayed from
different partitions. These RROs have been given module and package
names based on their location.

Bug: 127758779
Test: verify noop on presubmit targets
Change-Id: I5cee70e28e3969e67b2d83eaf25d9c6e3a11102d
2019-03-22 13:25:20 +00:00
Dan Willemsen 2e79dafed1 Stop installing host packages via PRODUCT_PACKAGES
Test: treehugger
Change-Id: I24ac93f3558116f4ddd96d22ef9bbd47240fdd06
2019-03-20 10:29:42 -07:00
Vic Yang 51512c558c Add support for no-vendor-variant VNDK
When TARGET_VNDK_USE_CORE_VARIANT is set to true, the vendor variant of
VNDK libraries are by default not installed.  Instead, the core variant
will be used by vendor binaries at runtime.

To ensure the core variant of VNDK libraries are installed, we also add
a flag LOCAL_VNDK_DEPEND_ON_CORE_VARIANT to indicate that the vendor
variant module depends on the core variant module.  This flag should be
set by Soong for all VNDK libraries without the vendor variant
installed.  When the flag is set, the vendor variant binary is also
compared against the core variant binary to ensure they are
functionally identical.

As we are merging the two variants for some libraries, we need a new
link type to denote a module is usable as both native:vndk and
native:platform.  We add native:platform_vndk for this.

Bug: 119423884
Test: With the corresponding Soong change, build with
      TARGET_VNDK_USE_CORE_VARIANT set to true.
Test: Add a dummy VNDK library and a dummy vendor binary that depends
      on it.  Build with no-vendor-variant VNDK and check the core
      variant is installed.
Test: Add conditional compilation based on __ANDROID_VNDK__ in the
      dummy VNDK library and check build fails.

Change-Id: I40000f2728e8193212113c1ee950e9d697f2d40d
2019-03-20 10:23:04 -07:00
Anton Hansson f9b6cd6593 Merge "Fix missing modules check for dont_bother goals" 2019-03-20 10:11:50 +00:00
Treehugger Robot 22b9a4a207 Merge "Generate api.xml for every target build." 2019-03-19 19:18:16 +00:00
Anton Hansson fa7ddae29b Fix missing modules check for dont_bother goals
Like If1f817d855cbe329b83caee9fdd68c2cce55f02b, but for
PRODUCT_PACKAGES, which is only enabled for a few builds.

Also share the ALLOW_MISSING_DEPENDENCIES check with the host
version.

Test: m product-graph
Change-Id: Iab55072e7d7c0fc9f4680cc515e139a5214dc3b4
2019-03-19 18:20:30 +00:00
Jared Lim 361e4439d0 Generate api.xml for every target build.
Test: make dist DIST_DIR=out/dist

Change-Id: I8cf7290c8a3757110761e9c852339b841c5d1748
2019-03-18 22:42:07 -07:00
Treehugger Robot b6520ddcf1 Merge "Sets default value of ro.postinstall.fstab.prefix" 2019-03-19 05:02:58 +00:00
Bowgo Tsai ddac7dcce1 Sets default value of ro.postinstall.fstab.prefix
ro.postinstall.fstab.prefix might be either "/system" or "/product",
to decide the location of the fstab.postinstall, used to mount
system_other partition on A/B devices.

  {ro.postinstall.fstab.prefix}/etc/fstab.postinstall

Bug: 112103720
Test: factory reset and boot device, checks cppreopt logs

Change-Id: Ib1e282752c37713e2220239f4f903453ce3c8bab
2019-03-14 16:03:04 +08:00
Dan Willemsen c478ea3dac Fix `m snod`
Whenever we're not loading all makefiles, we shouldn't be checking that
all the host packages exist.

Test: m snod
Change-Id: If1f817d855cbe329b83caee9fdd68c2cce55f02b
2019-03-07 17:18:15 -08:00
Dan Willemsen b952b5e4c3 Build everything in PRODUCT_HOST_PACKAGES
This should only add extra host packages that were in
PRODUCT_HOST_PACKAGES and not PRODUCT_PACKAGES.

That shouldn't be very many things -- user builds will build a few more
host tools that used to be in PRODUCT_PACKAGES_DEBUG, etc.

Test: treehugger
Change-Id: I6768b76db74ea049de90eef326d1e314eb4ef848
Merged-In: I6768b76db74ea049de90eef326d1e314eb4ef848
2019-03-06 15:41:19 -08:00
Dan Willemsen 3d05a08a6f Reland "First pass at creating PRODUCT_HOST_PACKAGES"
Adds icu-data_host_runtime_apex to fix unbundled builds which pull it in
via PRODUCT_PACKAGES, but are missing packages that would pull it in via
PRODUCT_HOST_PACKAGES.

Test: build/soong/build_test.bash
Test: in ub-timezonedata-master; tapas TimeZoneData; m
Change-Id: I1583c7582b386c3e8478711cb1df340518d763c1
Merged-In: I1583c7582b386c3e8478711cb1df340518d763c1
2019-03-06 14:46:06 -08:00
Yifan Hong 5a4696e460 Merge "Build ODM manifests and fragments for each SKU." 2019-03-01 18:32:32 +00:00
Anton Hansson b5312392a0 Merge "Move ART cpu properties to /vendor" 2019-02-22 12:14:49 +00:00
Logan Chien 7d35910451 Merge "Refine lsdump_paths.txt dependencies" 2019-02-22 09:08:03 +00:00
Logan Chien 5f4e29b090 Refine lsdump_paths.txt dependencies
This commit moves $(LSDUMP_PATHS) from the prerequisite of
lsdump_paths.txt to the prerequisite of findlsdumps. This change makes
it possible to dump the list of lsdump files without actually building
all lsdump files.

Bug: 124829578
Test: make out/target/product/generic/lsdump_paths.txt
      # does not build the actual lsdump files
Test: make findlsdumps  # builds lsdump_paths.txt and all lsdump files
Change-Id: I924f1c0c61391e958521c376a061651f2a301adb
2019-02-22 10:55:44 +08:00
Anton Hansson 30851f2540 Move ART cpu properties to /vendor
System properties relating to the physical hardware belong
on the vendor partition. Move the ART-related cpu variant
sysprops there.

This also brings the ART sysprops in line with the equivalent
bionic sysprops.

Bug: 120773446
Test: make, boot
Test: grep dalvik.vm vendor/default.prop
Change-Id: I3f843a7070dd0d9148737e040fe87d6461977d09
2019-02-21 14:13:44 +00:00
xunchang 3b548b0302 Dump a copy of metadata file for full OTA
When building the full OTA file, write a copy of the metadata to the
dist dir. Then it will show up in the artifact of the build page for
users to parse.

Bug: 124783265
Test: make dist and check the output metadata
Change-Id: I2eb06bbf3cbb9f3653ca3352f3d601b09403d59d
2019-02-20 15:32:28 -08:00
Yifan Hong b321665b9d Build ODM manifests and fragments for each SKU.
In BoardConfig.mk, ODM manifests can be specify as follows:

    # installed to /odm/etc/vintf/manifest.xml
    ODM_MANIFEST_FILES := device/foo/bar/odm_manifest.xml

    # installed to /odm/etc/vintf/manifest_baz.xml
    ODM_MANIFEST_SKUS := baz
    ODM_MANIFEST_BAZ_FILES := device/foo/bar/odm_manifest_baz.xml

This is preferred over PRODUCT_COPY_FILES because it uses
assemble_vintf to check manifest at build time.

Test: builds

Change-Id: I18517b8ba09d3271627d6f21b8250b1bfc9e5db3
2019-02-19 12:37:50 -08:00
Allen Hair 191f0e5b60 Generate API XML files from android stub targets instead of text input.
The resulting XMLs will contain more complete information (such as
whether or not a method is native) than is available in current.txt.

Bug: 124335876
Test: make PRODUCT-cf_x86_phone-userdebug showcommands dist EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true tests

Change-Id: Icb8999bcd6be28f3ec8ff6bffa33b261f0d20606
2019-02-13 17:48:00 -08:00
Anton Hansson dce3f920f2 Move dump-products back to the config stage
It's unnecessary to run all the make file parsing to dump product
configs. Move the dumping to product_config.mk instead, but switch
the output to $(warnings) as stdout is a bit sensitive during
the config stage.

Test: multiproduct_kati -only-config dump-products
Change-Id: I8c7365c9f90ea2bf152b82dfb983bfb0cdcb1697
2019-02-11 21:19:54 +00:00
Dan Willemsen fcdc0cb737 Fix aux_config warning
Don't declare targets during config files, as they're loaded in other
contexts as well. In this case, `droidcore` was not defined when we were
handling CleanSpec.mk files, leading to:

build/make/core/aux_config.mk:185: warning: real file "droidcore" depends on PHONY target "auxiliary"

Bug: 123583617
Test: m nothing; check for warnings
Change-Id: I71b8819deb81442810c7dd5c681ddb38a1171cff
2019-02-04 20:52:14 -08:00
Jiyong Park 1ba4c7f11e Reland "Add $(PRODUCT_OUT)/apex to the artifact path whitelist"
This reverts commit 4cf7cde9aa.

Bug: 120846816
Test: build/soong/build_test.bash -dist -products mainline_system_arm64
Test: lunch aosp_cf_x86_pasan-userdebug; m && SANITIZE_TARGET=address m

Change-Id: I6fbf23dcef450da17fafafa78def3816792d83c8
2019-01-30 12:32:49 +09:00
Anton Hansson d5e069e405 Auto-include device_manifest.xml when necessary
It doesn't make sense to specify a DEVICE_MANIFEST_FILE but the
build not including it. The conditional definition of the module
makes it problematic to have it listed in the PRODUCT_PACKAGES
of a generic mk.

Test: build mainline_arm64 + mainline_system_arm64
Change-Id: I40e435ce114263ceabbd373d3d719318c592fc13
2019-01-25 13:50:47 +00:00
Logan Chien 9779c57cd0 Merge "Add $(SOONG_OUT_DIR)/ndk/% to artifact whitelist" 2019-01-23 07:22:43 +00:00
Logan Chien 86eeedbcc7 Add $(SOONG_OUT_DIR)/ndk/% to artifact whitelist
This commit adds `$(SOONG_OUT_DIR)/ndk/%` to artifact whitelist so that
when NDK stub libraries won't be blocked by artifact path requirements.

This commit does not break the integrity of artifact path requirements
because they are not installed to devices.

Bug: 123053270
Bug: 119084334
Test: lunch aosp_crosshatch-userdebug
Change-Id: Ieea76a8126269f53b0a58bd069b449a9f9b1263a
2019-01-21 14:34:19 +00:00
Logan Chien 0e53d887d6 Add prebuilt ELF binaries checker
This commit introduces a prebuilt ELF binaries checker.  The checker
will check:

1. Whether all DT_NEEDED shared libraries are specified in
   `shared_libs` (Android.bp) or `LOCAL_SHARED_LIBRARIES` (Android.mk).

2. Whether all undefined symbols in the prebuilt binary can be resolved
   to defined symbols exported by its dependencies.

This ensures that prebuilt binaries won't silently become ABI
incompatible.

To check the prebuilt binaries, all of the dependencies must be
specified in `shared_libs` (Android.bp) or `LOCAL_SHARED_LIBRARIES`
(Android.mk).

If your prebuilt binaries cannot be checked for some reason, you may add
the following property to Android.bp:

    check_elf_files: false,

Or, add the following setting to Android.mk:

    LOCAL_CHECK_ELF_FILES := false

Bug: 119084334
Test: CHECK_ELF_FILES=true make check-elf-files
Change-Id: I523d3083f22fd4053c096d26f61f8375800281c8
2019-01-21 21:35:01 +08:00
Dan Willemsen 3b6f6fe8aa Stop using the `files` target for droidcore
This way if a BoardConfig.mk configures a specific image to exist (so it
doesn't end up as a folder on /system), but does not configure for it to
be created (like the device targets on AOSP that use a prebuilt), we
won't unnecessarily trigger the build system to build the contents.

Test: `m` before and after, comparing file lists
Test: check treehugger builds before/after
Change-Id: If0e4b958b3dfaa02771a5da70f970379635f904e
2019-01-14 21:46:31 -08:00
Michael Butler 4cf7cde9aa Revert "Add $(PRODUCT_OUT)/apex to the artifact path whitelist"
This reverts commit 3387e65686.

Reason for revert: Topic likely causing build failure on aosp_x86_64-eng in aosp_master:

"build/make/core/base_rules.mk:271: error: art/build/apex: MODULE.TARGET.SHARED_LIBRARIES.com.android.runtime.host.libart-compiler already defined by art/build/apex."

Change-Id: I2033828e7a13062b72d1d66a7f289cf5bb12b776
2019-01-11 20:24:25 +00:00
Jiyong Park 3387e65686 Add $(PRODUCT_OUT)/apex to the artifact path whitelist
$(PRODUCT_OUT)/apex is where shared libraries in APEXes get installed
into. The path can be considered as a fake path as the shared libraries
are installed there just to have symbol files for them under
$(PRODUCT_OUT)/symbols/apex for debugging purpose. Shared libraries in
APEXes are made available to the path at runtime by mounting APEXes via
apexd. The files under $(PRODUCT_OUT)/apex are never compiled into a
file system image (e.g. system.img)

Bug: 120846816
Test: build/soong/build_test.bash -dist -products mainline_system_arm64
Change-Id: I3727091214f08f945559fa5f0f1450e74c1a5c9b
2019-01-11 13:33:56 +09:00
Jeongik Cha bdf0ec03b6 Merge "Dump and enforce certificate for apks" 2019-01-11 04:31:02 +00:00
Jeongik Cha b2c4bb7e3d Dump and enforce certificate for apks
Dump the list of APKs that aren't located at system partition and signed
with system certificate.
And when enforcement option is enabled, it makes build error if there is
the apk that satisfies the condition above.

Bug: 74699609

Test: m -j
Test: m out/target/product/$(get_build_var TARGET_DEVICE)/certificate_violation_modules.txt

Change-Id: I23c41f2665dd97abac3e77d1c82d81ff91b894eb
2019-01-10 11:37:22 +09:00
Dan Willemsen 63e48db6d1 Add BUILD_USERNAME and BUILD_HOSTNAME
These replace $USER and `hostname`, which will soon become stable values
due to sandboxing the build on Linux.

Bug: 122270019
Test: check build.prop
Change-Id: I7493e45a2a2defbdba5d82596cb91d68480f0187
2019-01-02 14:33:29 -08:00
Yifan Hong e5d879a193 Allow space in BOARD_*_SIZE variables for dynamic partitions
Allow instances like:
BOARD_SUPER_PARTITION_SIZE := 4294967296 # 4GiB

Test: add trailing space to BOARD_SUPER_PARTITION_SIZE,
BOARD_(group)_SIZE, BOARD_*IMAGE_PARTITION_RESERVED_SIZE,
BOARD_SUPER_PARTITION_(device)_DEVICE_SIZE, build passes.

Fixes: 120042457
Change-Id: Ib7244e3fd2f782657c84cdb74e601ac96176571d
2018-11-28 15:33:17 -08:00
Treehugger Robot 01284abf21 Merge changes from topic "dp_sysprop"
* changes:
  ro.boot.dynamic_partitions: fix empty values
  Remove ro.boot.logical_partitions
2018-11-21 07:39:21 +00:00
Yifan Hong 4a37a03758 ro.boot.dynamic_partitions: fix empty values
When PRODUCT_RETROFIT_DYNAMIC_PARTITIONS is empty, collapse-pairs will
write this line to build.prop:
ro.boot.dynamic_partitions=ro.boot.dynamic_partitions_retrofit=

... which is not what we want.
Test: build without dynamic partitions

Change-Id: I04c3c75fad20604657814b7f9cce2cc0635627ee
2018-11-20 16:06:17 -08:00
Yifan Hong 284b2b9fc9 Remove ro.boot.logical_partitions
Test: boots
Bug: 119286600
Change-Id: I0606c3989588de3afaacc170943eaca82c682085
2018-11-20 16:06:17 -08:00
Yifan Hong 50e7954ac9 Generate retrofit OTA.
Test: m otapackage -j, manual apply on top of P
Bug: 118506262

Change-Id: Iedc389a1058007a604de0482f2348a9ef0d5892a
2018-11-20 11:17:39 -08:00
Treehugger Robot c6434d43ec Merge "Sort output in dump-files" 2018-11-19 17:43:00 +00:00
Anton Hansson 41b53a3c19 Sort output in dump-files
Makes it less frustrating to use.

Test: m dump-files
Change-Id: I84801f37e2e40a37d65d3f9ce7b19a84f3381a53
2018-11-19 14:33:19 +00:00
Dimitry Ivanov d04107683b Merge "Enable overrides for shared libraries" 2018-11-17 09:03:04 +00:00
Anton Hansson 2f8e2b8e1f Merge "Disable artifact path requirements for asan builds" 2018-11-14 10:40:28 +00:00
Anton Hansson 2b4469a8a0 Disable artifact path requirements for asan builds
asan builds create many artifacts that normal builds do not, and
are only used for testing. Disable artifact requirements for them.

Bug: 119270428
Test: build internal asan product
Change-Id: I8692ee7e8916d40a8a787c3a07dcf7d677b19cab
2018-11-13 22:39:00 +00:00
Yifan Hong b7ea9d3870 Merge changes from topic "dp_retrofit"
* changes:
  Add build flags for spanning the super partition across multiple block devices.
  logical partitions -> dynamic partitions
2018-11-13 20:29:18 +00:00
David Anderson 619fe2da5a Add build flags for spanning the super partition across multiple block devices.
This adds BOARD_SUPER_PARTITION_BLOCK_DEVICES, which must contain a list
of the (non-A/B suffixed) partitions that will comprise the super
partition. It is only intended for devices which cannot have a partition
named "super". For each entry, there must be a
BOARD_SUPER_PARTITION_x_DEVICE_SIZE variable defined with the exact size
of that partition (not its image size). The sum of these sizes must be
equal to BOARD_SUPER_PARTITION_SIZE.

Bug: 116802789
Test: device with BOARD_SUPER_PARTITION_BLOCK_DEVICES builds
Change-Id: I1a79c2e08ca99ce7e42207893ef3285caffecf44
2018-11-12 16:12:51 -08:00
dimitry 3142e2949d Enable overrides for shared libraries
Bug: http://b/114470065
Test: make
Change-Id: I084c98ca2630ad3f56504ca0f7f08cff14483872
2018-11-12 10:51:11 +01:00
Yifan Hong c5c0124e7d logical partitions -> dynamic partitions
Reflect a name change.

* PRODUCT_USE_LOGICAL_PARTITIONS is deprecated and
will be removed in the future.

* ro.boot.dynamic_partitions is created. ro.boot.logical_partitions
will be removed once all the usage is removed.

Bug: 119286600
Test: builds

Change-Id: I5cb8bb1f5ebcee893fbef3a0f047c32de8773830
2018-11-09 16:02:59 -08:00
Anton Hansson 436d7b7336 Merge "Support disabling artifact path requirements" 2018-11-09 17:21:21 +00:00
Anton Hansson dc6c216476 Support disabling artifact path requirements
Path requirements can get in the way when developing, so
provide a way to disable them on the command line.

Bug: 80410283
Bug: 119025354
Test: lunch mainline_arm64; DISABLE_ARTIFACT_PATH_REQUIREMENTS=true m nothing
Change-Id: Ia44b73f3013a0ea218bd9a361037269c7557da9e
2018-11-09 13:45:18 +00:00
Treehugger Robot 1c7db31772 Merge "Build docs as part of checkbuild" 2018-11-07 18:21:32 +00:00
Colin Cross 7f1ca81e86 Build docs as part of checkbuild
Catch docs breakages in TreeHugger by building docs as part of
checkbuild targets.

Bug: 118815658
Test: m checkbuild
Change-Id: I7e71b176c680f269730d4bf98369a96138c0ee8a
2018-11-05 18:15:24 +00:00
Dan Shi 6fe5bf0adb Copy shared libraries used by tests to testcases directory
This change collects the shared libraries files used by tests in
suite, and deploy the files to testcases/lib*. The shared libraries then
can be zipped in general-tests.zip and device-tests.zip. And the host
test can be run in TradeFed host based on build artifacts.

Bug: 111486845
Test: m -j general-tests; m -j device-tests
Confirm the test can run in testcases directory:
out/host/linux-x86/testcases$ ./net_test_avrcp/x86_64/net_test_avrcp
unzip general-tests.zip, confirm net_test_avrcp can run.

Change-Id: I4f9322118aa4891226ea318cbd1bcee6ca48b050
2018-11-04 19:51:59 -08:00
David Brazdil 7bdde125b5 Remove 'ro.art.hiddenapi.warning' system property
Toasts/dialog have been removed, so this is now unused.

Test: m, phone boots
Change-Id: Ia0c443a2561f276514337365a7b7d991fd5183a8
2018-11-01 09:59:20 +00:00
Colin Cross c66c317460 Merge changes from topics "soong-aar", "soong-bundle"
* changes:
  Store AAR path from Soong for dist
  Create bundle modules suitable for bundletool
  Dist bundle modules from Soong
2018-10-31 22:12:43 +00:00
Colin Cross 0fb8c97b02 Dist bundle modules from Soong
Dist bundle modules when requested by TARGET_BUILD_APPS.

Bug: 117295826
Test: tapas RecoveryLocalizer && m dist
Change-Id: Iad63ceafc2a60e6735b50eca65cc4859f9d71b52
2018-10-30 15:47:59 -07:00
Dan Willemsen ea898f1c53 Really mark sdk_addon as PHONY to fix `m snod`
When we're using a dont_bother_goals (including snod), we don't load
build/make/core/tasks/*.mk, so sdk_addon isn't defined as a PHONY rule.

This causes a build break because build/make/core/Makefile uses
dist-for-goals with sdk_addon. dist-for-goals requires its arguments to
be PHONY targets.

Test: m snod
Change-Id: I69937fe9360be57766d17ed4c28b5d2a1e348308
2018-10-26 11:17:25 -07:00
Dan Willemsen 6dbb33dfad Mark BUILD_NUMBER as obsolete, more vars as readonly
In preparation for moving BUILD_NUMBER and FILE_NAME_TAG handling to
soong_ui, mark BUILD_NUMBER as obsolete and FILE_NAME_TAG as readonly.

Later changes will remove BUILD_NUMBER entirely, and move FILE_NAME_TAG
handling into the kati packaging step via dist-for-goals renames.

Test: build_test on master
Change-Id: I0e340d32fe0cb6296d3b5a7fec349b50632d044e
2018-10-22 15:20:26 -07:00
Anton Hansson 2bfa7401c7 Merge "Re-add product_MODULES" 2018-10-22 12:28:56 +00:00
Dan Willemsen 78c40be560 Create a new kati packaging step; move dist
Instead of looking at `dist` and DIST_DIR directly in the Kati Build
step, always write out information about every call to dist, then create
the rules in another ckati run.

So instead of having:

  dist:    <goal> -> <dist> -> <output>
                \______________↑

  nodist:  <goal> -----------> <output>

Always use another phony target in the Kati Build step:

   <goal> ---> <output>
        \----> _dist_<goal>

Then in the packaging step (which is much faster), choose between dist
and no dist:

  dist:   _dist_<goal> -> <dist> -> <output>

  nodist: _dist_<goal>

Bug: 117463001
Test: m dist
Change-Id: Ic96bb6356740300dd3113f6ed699e6a619360c40
2018-10-20 21:44:44 +00:00
Dan Willemsen 7ddc50a066 Refactor common makefile fragments
In preparation for setting up another Kati stage, move some common
settings and tools into a common folder. This way it's a bit easier to
see that they're safe to use, and that they shouldn't depend on anything
outside of the common folder.

Bug: 117463001
Test: build-aosp_arm.ninja is the same before and after
Change-Id: Ief4b75a4dbe45b73ffd03bf32c60695c816d979d
2018-10-20 14:43:58 -07:00
Anton Hansson dcb5ef1333 Re-submit "Add trailing slash to mainline path claims."
With a workaround for preopt files that get installed into an unknown
path. The BoardConfig defines whether the files go in /system_other,
so allow that.

This reverts commit 46bf4b510c.

Test: lunch mainline_arm64-userdebug; m nothing
Change-Id: Ia75670eb6e3730ad0ff17f5b81954b69f6cab22b
2018-10-17 16:40:29 +01:00