Commit Graph

1228 Commits

Author SHA1 Message Date
Yo Chiang
c9b0f0a9a5 Merge "Resolve module bitness for target-host required modules" 2020-06-30 11:21:03 +00:00
Colin Cross
e1ab4cb610 Merge "Use inclusive language in build/make part 2" 2020-06-24 21:58:46 +00:00
Colin Cross
d1cbfeaa3a Use inclusive language in build/make part 2
Test: m checkbuild
Bug: 158889297
Change-Id: I63bac680cc63a8564f35ae85dda1a0b09c9fd541
2020-06-24 12:03:08 -07:00
Roland Levillain
4a203a6326 Merge "Warn about the use of COVERAGE_PATHS and COVERAGE_EXCLUDE_PATHS." 2020-06-24 10:16:03 +00:00
Yo Chiang
697674fa56 Resolve module bitness for target-host required modules
Add select-bitness-of-target-host-required-modules that resolves module
bitness for TARGET_REQUIRED_FROM_HOST and HOST_REQUIRED_FROM_TARGET.
Also re-indent select-bitness-of-required-modules.

Bug: 7456955
Test: TH
Test: compare value of ALL_MODULES.<*>.*_REQUIRED_FROM_*
Change-Id: I9483685d8dd528cb1a4ef1e2ec53cbe2caa598a4
2020-06-22 07:07:10 +00:00
sophiez
cb00590712 NDK api code coverage
Update parsed NDK api xml file directory name.

Test: m ndk
Forrest test build pass: http://shortn/_E5mhRtD4zW

Change-Id: Ic20780d969e33103c45953c9cdd81efe4262b4a9
2020-06-17 23:01:21 +00:00
Sophie Zheng
b5bfbab22b Merge "Revert "Revert "Copy generated xml file for NDK api coverage to dist when CLANG_COVERAGE flag set.""" 2020-06-17 17:11:32 +00:00
Roland Levillain
bececf9e92 Warn about the use of COVERAGE_PATHS and COVERAGE_EXCLUDE_PATHS.
The use of environment variables `COVERAGE_PATHS` and
`COVERAGE_EXCLUDE_PATHS` has been deprecated since they have been
replaced by `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).

Test: m nothing
Bug: 158212027
Change-Id: I1c48dc4da15c630201168cce34edb920960c93d4
2020-06-16 11:27:34 +01:00
Sophie Zheng
970d5925bd Revert "Revert "Copy generated xml file for NDK api coverage to dist when CLANG_COVERAGE flag set.""
This reverts commit dd9467aa23.

Reason for revert: Fix to the breakage merged in https://android-review.googlesource.com/c/platform/build/soong/+/1332082.

Forest test build pass: http://shortn/_AWiWymhTjF

Change-Id: Ie47b84c51e85c8d372c5ee49963d671ff08ef91a
2020-06-15 20:42:37 +00:00
Jiyong Park
cd0c931b89 Merge "Organize product vars for adding properties" 2020-06-15 10:00:22 +00:00
Treehugger Robot
2158d2ec6b Merge "Use inclusive language in build/make" 2020-06-12 03:19:02 +00:00
madym
cca4dffa6f Merge "Revert "Copy generated xml file for NDK api coverage to dist when CLANG_COVERAGE flag set."" 2020-06-11 22:25:05 +00:00
madym
dd9467aa23 Revert "Copy generated xml file for NDK api coverage to dist when CLANG_COVERAGE flag set."
This reverts commit a81ee59b74.

Reason for revert: maybe broke the build b/158783867

Change-Id: Ia7a81109de3adb4b5226b4139f3e231e60473283
2020-06-11 22:05:42 +00:00
Colin Cross
c3ad80467e Use inclusive language in build/make
Test: m checkbuild
Change-Id: I54a7e55d3fdd5571ef1ae33ebe443c10d138fd28
2020-06-11 14:37:54 -07:00
Colin Cross
bc1051d399 Merge "Add out/soong/late-${TARGET_PRODUCT}.mk" 2020-06-11 18:36:18 +00:00
Sophie Zheng
537aee38d5 Merge "Copy generated xml file for NDK api coverage to dist when CLANG_COVERAGE flag set." 2020-06-11 18:21:53 +00:00
Jiyong Park
eb49b34b1e Organize product vars for adding properties
Properties for <partition>/build.prop are now added via
PRODUCT_<PARTITION>_PROPERTIES.

PRODUCT_SYSTEM_PROPERTIES is added. PRODUCT_SYSTEM_DEFAULT_PROPERTIES
will be deprecated.

PRODUCT_VENDOR_PROPERTIES is added. PRODUCT_PROPERTY_OVERRIDES and
PRODUCT_DEFAULT_PROPERTY_OVERRIDES will be deprecated in favor of the new
variable.

For other partitions (odm, system_ext, product), there is no change.

Exempt-From-Owner-Approval: cherry-pick from internal master

Bug: 117892318
Test: m
Merged-In: I98f3b5d0da661b3ad75260a23754e655103b7a44
(cherry picked from commit ad810b6dae)
Change-Id: I98f3b5d0da661b3ad75260a23754e655103b7a44
2020-06-11 15:35:23 +09:00
Martin Stjernholm
7a430fd4c8 Introduce TARGET_BUILD_UNBUNDLED.
Setting this flag enables unbundled building, i.e. without support for
building the system image and other platform targets. This
functionality was previously enabled by TARGET_BUILD_APPS, and setting
that still implies TARGET_BUILD_UNBUNDLED.

This helps unbundled builds that aren't apps, e.g. ART runtest builds.
Specifically, with the topic of the child CL
https://r.android.com/1324517 TARGET_BUILD_UNBUNDLED does not imply
disabling dexpreopting, unlike TARGET_BUILD_APPS.

TODO: There may still be app-specific conditions that are incorrectly
controlled by TARGET_BUILD_UNBUNDLED, in particular on the Soong side
through config.UnbundledBuild().

Test: Flash & boot
Test: TH, in particular builds green on ub-launcher3-master
Bug: 157549171
Change-Id: Ic09fc879117ee06cab5444edfc280ed2b52d2870
2020-06-11 01:09:07 +01:00
Yo Chiang
1e55e74acc Cleanup unused get-32-bit-modules
These are no longer used by anyone:
* get-32-bit-modules
* get-32-bit-modules-if-we-can
* get-host-32-bit-modules
* get-host-32-bit-modules-if-we-can

Bug: 155869107
Test: TH
Change-Id: I441de7f94061efd40186b80d1a2ead11669a5753
2020-06-09 03:28:26 +00:00
Colin Cross
8ca4092ab4 Add out/soong/late-${TARGET_PRODUCT}.mk
Read out/soong/late-${TARGET_PRODUCT}.mk after reading Android.mk files
to allow Soong's makevars singleton to use $(call dist-for-goals).

Test: m lint-check dist
Change-Id: I7754fd1b8dab508c96ad59beed67f0d6c4ff75f0
2020-06-07 18:16:38 -07:00
Jiyong Park
c844de4241 Merge changes I4d88733c,I61943476,Ibed9c96d
* changes:
  remove buildinfo_common.sh
  Partial cherry-pick of ag/10260813
  <partition>/build.prop rules are defined using macro
2020-06-08 00:58:48 +00:00
Yo Chiang
f9d1eee9b9 Merge changes I47d523e4,Ib2f4b548
* changes:
  Make required modules support :32 and :64 suffix
  Refactor *-select-bitness-of-required-modules
2020-06-05 05:12:23 +00:00
Jiyong Park
e28fa80e12 <partition>/build.prop rules are defined using macro
The macro `build-properties' is defined to generate build rules to
create <partition>/build.prop.

build.prop files in all partitions except for the system partition are
now build using the macro.

system partition will use the macro in the following changes.

Bug: 117892318
Test: m

Change-Id: Ibed9c96dac4366251ec59a0b1317aa92f501c9a3
2020-06-05 10:47:34 +09:00
Treehugger Robot
49efd2aad0 Merge "Re-enable link type checking" 2020-06-03 21:30:22 +00:00
Dan Willemsen
be15ded040 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
Merged-In: I293b3be5ca7828c9d7148e13d88b0f0bba54d964
Merged-In: I08090db44d47f809fbaa0c4ad373e46e6a3fbe2e
2020-06-03 21:09:32 +00:00
Yo Chiang
60da88da55 Make required modules support :32 and :64 suffix
Support specifying bitness of required modules with :32 and :64 suffix,
like in PRODUCT_PACKAGES.

Bug: 155869107
Bug: 129323707
Test: TH noop
Change-Id: I47d523e4e57cb8a99629fd241a16069c0be55903
2020-06-03 18:27:42 +08:00
Yo Chiang
1b8283358e Refactor *-select-bitness-of-required-modules
* Streamline required module bitness resolution

If a module is for cross host OS, the required modules are also for that
OS.
Otherwise if the requirer module is native and the required module is
shared library or native test, then the required module resolves to the
same bitness.
Otherwise the required module resolves to both variants, if they exist.

* Factor out the common logic and merge
  <target|host|host-cross>-select-bitness-of-required-modules

This lays the road for follow-up changes to add bitness suffix support.
This slightly reduces readibility. To make up for the loss, the
bitness-resolving logic is easier to maintain since we don't have
multiple copies of *-select-bitness-of-required-modules.

Bug: 155869107
Test: check the diff of product_target_FILES and product_host_FILES
Test: check the diff of ALL_MODULES.*.REQUIRED_FROM_(TARGET|HOST)
Change-Id: Ib2f4b548535e983d621dad71cb920101111140f2
2020-06-03 18:27:20 +08:00
sophiez
a81ee59b74 Copy generated xml file for NDK api coverage to dist when CLANG_COVERAGE flag set.
Test: build/soong/soong_ui.bash --make-mode SKIP_ABI_CHECKS=true TARGET_PRODUCT=aosp_cf_x86_phone TARGET_BUILD_VARIANT=userdebug droid dist DIST_DIR=/usr/local/google/home/sophiez/my_dist_dir EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true SKIP_BOOT_JARS_CHECK=true tests

Change-Id: I778da9ca7897752274744eca5530412c146fac96
2020-06-01 12:18:54 -07:00
Jiyong Park
6dd5383c37 Merge changes from topics "remove_bootimage_sysprops", "sysprop"
* changes:
  Drop the dependency from vendor/build.prop to system/build.prop
  Remove ro.bootimage.* sysprops
  ro.build.expect.* sysprops are created in a separate rule
  Make use of ADDITIONAL_ODM_PROPERTIES
  Refactor post_process_props.py
  remove code for default.prop
  Make more use of ADDITIONAL_VENDOR_PROPERTIES
  ADDITIONAL_*_PROPERTIES are props determined by the build system
2020-05-29 01:01:52 +00:00
Jiyong Park
ca9b02c1ce Make use of ADDITIONAL_ODM_PROPERTIES
Properties that were defined in the build rule for odm/build.prop are
now defined via ADDITIONAL_ODM_PROPERTIES.

Bug: 117892318
Test: m
Change-Id: I6220e217d0724b6e27127786e7a908e1e662d1a0
2020-05-27 12:52:44 +09:00
Jiyong Park
f2b944ccea Make more use of ADDITIONAL_VENDOR_PROPERTIES
Properties that were defined in the build rule for vendor/build.prop are
now defined via ADDITIONAL_VENDOR_PROPERTIES.

Bug: 117892318
Test: m
Change-Id: Ib3dc9d001a8dcd0aa38f1acae384a96b67b5af8a
2020-05-27 12:52:43 +09:00
Jiyong Park
57f51f1693 ADDITIONAL_*_PROPERTIES are props determined by the build system
This change defines ADDITIONAL_<partition>_PROPERTIES to store properties
determined by the build system itself.

ADDITIONAL_SYSTEM_PROPERTIES was originally ADDITIONAL_BUILD_PROPERTIES.
ADDITIONAL_VENDOR_PROPERTIES was originally FINAL_VENDOR_DEFAULT_PROPERTIES.
ADDITIONAL_PRODUCT_PROPERTIES has been there and thus not changed.
ADDITIONAL_ODM_PROPERTIES is newly defined, although it is empty now.

In addition, ADDITIONAL_VENDOR_PROPERTIES are now defined in
core/main.mk along with other ADDITIONAL_*_PROPERTIES.

Bug: 117892318
Test: m

Change-Id: Ic41bba2e5695355436ac8df353866cfc044e1e0b
2020-05-27 12:52:43 +09:00
Yo Chiang
1db657a1ed Check module existence with ALL_MODULES subvars
Use ALL_MODULES.*.PATH to check module existence.
Use get-modules-for-2nd-arch to check the existence of second arch
variant.
Fix some typos *existant -> existent

Bug: 155869107
Test: lunch mainline_system_arm64; m
Test: lunch generic; m
Change-Id: Ic10fb34a11da0bfbfc528da7496fd929b1d77113
2020-05-20 16:02:07 +00:00
Yo Chiang
7c147f7e29 Merge "Resolve module bitness for PRODUCT_PACKAGES" 2020-05-20 04:55:22 +00:00
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
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
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
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
691d385147 Merge "Clean up static_whitelist_patterns" 2020-04-24 12:03:21 +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
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
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
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
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
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