Commit Graph

23197 Commits

Author SHA1 Message Date
Jiyong Park
54403635a4 Support optional prop assignments am: d721e870bc
Original change: https://android-review.googlesource.com/c/platform/build/+/1344820

Change-Id: I22fbe3645aff1b61a7e42d374cca240e9fe2259a
2020-07-01 01:59:20 +00:00
Treehugger Robot
3a3d501e11 Merge "build.prop for ODM partition is under ./etc subdir" 2020-07-01 01:16:44 +00:00
Inseob Kim
b9a27f4e7d Merge "Error if BOARD_VNDK_VERSION=PLATFORM_VNDK_VERSION" 2020-07-01 00:27:44 +00:00
Treehugger Robot
6c9441a924 Merge "use first kernel when generating kernel configs file" 2020-06-30 17:36:01 +00:00
Yo Chiang
c9b0f0a9a5 Merge "Resolve module bitness for target-host required modules" 2020-06-30 11:21:03 +00:00
Jiyong Park
d721e870bc Support optional prop assignments
This CL adds a number of changes to make the assignment of system
properties to be less confusing.

1. Added `a ?= b` syntax, which is called optional prop assignments. The
prop `a` gets the value `b` only when there is no non-optional prop
assignment for `a` such as `a = c`. This is useful for props that
provide some reasonable default values as fallback.

2. With the introduction of the optional prop assignment syntax,
duplicated non-optional assignments is prohibited; e.g., the follwing
now triggers a build-time error:

a = b
a = c

, but the following doesn't:

a ?= b
a = c

Note that the textual order between the optional and non-optional
assignments doesn't matter. The non-optional assignment eclipses the
optional assignment even when the former appears 'before' the latter.

a = c
a ?= b

In the above, `a` gets the value `c`

When there are multiple optional assignments without a non-optional
assignments as shown below, the last one wins:

a ?= b
a ?= c

`a` becomes `c`. Specifically, the former assignment is commented out
and the latter is converted to a non-optional assignment.

3. post_process_props.py is modified so that when a prop assignment is
deleted, changed, or added, the changes are recorded as comments. This
is to aid debugging. Previously, it was often difficult to find out why
a certain sysprop assignment is missing or is added.

4. post_process_prop.py now has a unittest

Bug: 117892318
Bug: 158735147
Test: atest --host post_process_prop_unittest

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

Merged-In: I9c073a21c8257987cf2378012cadaeeeb698a4fb
(cherry picked from commit 7aeb8de74e)
Change-Id: I9c073a21c8257987cf2378012cadaeeeb698a4fb
2020-06-30 18:44:01 +09:00
Dan Willemsen
4d1284c0b7 Merge "Remove empty new-space in dynamic_partition_list and super_$(group)_partition_list" 2020-06-27 22:10:58 +00:00
Treehugger Robot
1e6cc9fc30 Merge "Mark android_app_set modules PRESIGNED." 2020-06-27 01:01:40 +00:00
Steve Muckle
bbdfbdad50 use first kernel when generating kernel configs file
If multiple kernels are defined for a build, use the first one when
generating the kernel config file.

Bug: 159975506
Change-Id: Ia136264eb0d0b544bf0685bc22e600de187a9a9b
2020-06-26 16:39:34 -07:00
Jaewoong Jung
ddae589b95 Mark android_app_set modules PRESIGNED.
Test: m apkcerts-list
Fixes: 159921591
Merged-In: Ie83a05be0d71280644843eddffdbea6bcb429c74
Change-Id: Ie83a05be0d71280644843eddffdbea6bcb429c74
2020-06-26 16:10:49 -07:00
Luca Stefani
c158e421ec Remove empty new-space in dynamic_partition_list and super_$(group)_partition_list
* As a side product .strip() calls in releasetools are redunant,
  but since these scripts are also used out of tree we can't
  remove them to guarantee compatibility

Test: m dist
Change-Id: I5c513a4654e293c3d4eab98c8759ea094015fab1
2020-06-26 19:52:52 +02:00
Inseob Kim
2b0b3d1491 Error if BOARD_VNDK_VERSION=PLATFORM_VNDK_VERSION
"BOARD_VNDK_VERSION := current" should be used instead.

Bug: 159866756
Test: manual
Change-Id: I854ca9c0fa195ab4bbb468a1343ef4fa28ac9258
2020-06-27 00:18:12 +09:00
Ulyana Trafimovich
43774f74c3 Merge "Move construct_context.sh from Make to Soong." 2020-06-26 08:46:58 +00:00
Jiyong Park
62117c857d build.prop for ODM partition is under ./etc subdir
build.prop for the ODM partition should be placed under ./etc directory
to support GSI. For detailed reasons, see
I0733c277baa67c549bb45599abb70aba13fbdbcf

The path was changed to /odm/build.prop during the recent refactoring
around build.prop filems and this change fixes the mistake.

Bug: 132128501

Test: check if odm/etc/build.prop is created
Change-Id: Icc2c564250aa08786f32294a839cc81e86b7d368
2020-06-26 09:59:42 +09:00
Mark Salyzyn
46a9c028b8 depmod: pair in a modules.load.charger on BOARD_VENDOR_CHARGER_KERNEL_MODULES_LOAD
If the BoardConfig defined BOARD_VENDOR_KERNEL_MODULES_LOAD and
BOARD_VENDOR_CHARGER_KERNEL_MODULES_LOAD, generate both a
modules.load and modules.load.charger respectively on
/vendor/lib/modules.

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 159424228
Bug: 151950334
Test: build, confirm, change to charger mode, confirm set of modules loads
Change-Id: I55677ed74d80ff3909fe8cbe26e6766f9b5283d5
2020-06-25 08:57:36 -07:00
Ulya Trafimovich
5a7defdab1 Move construct_context.sh from Make to Soong.
This script belongs with other manifest-related scripts, and the future
plan is to rewrite it in Python and share common functionality with
other scripts.

Test: lunch aosp_cf_x86_phone-userdebug && m
Bug: 132357300
Change-Id: I4b90129e5023ca1a2c818fc160c34b0b7da943ef
2020-06-25 14:48:08 +01:00
Tianjie Xu
be46f482e0 Merge "Add lz4 to otatools" 2020-06-24 23:38:49 +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
Tianjie
3031c29905 Add lz4 to otatools
A call to lz4 was added in http://go/aog/1329115. But the binary
isn't added to otatools, leading to a signing failure.

Bug: 159656873
Test: build otatools
Change-Id: I9cab00f36ce3c39cc174b4c9feffdf360f0364ef
2020-06-24 11:20:36 -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
Colin Cross
5c0acab3e2 Merge "Rename Native_coverage to GcovCoverage in Soong" 2020-06-23 03:06:53 +00:00
Treehugger Robot
8eba18759b Merge "Remove vts10 dependencies" 2020-06-23 02:11:30 +00:00
Ryan Prichard
b636b0cfb8 Merge "Unlist libunwind as a critical component" 2020-06-22 21:17:07 +00:00
J. Avila
dbbd970d18 Merge "Switch to using llvm-strip for modules" 2020-06-22 15:19:26 +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
Ryan Prichard
7146b7cd46 Unlist libunwind as a critical component
Virtually nothing uses libunwind, and no one should start using it, so
it's unlikely to be critical.

(Code should use libunwindstack.so to collect backtraces, and it should
use libc.so's _Unwind_* APIs for C++ exception handling unwinding.)

Test: build Android
Change-Id: I81882a4634ff4d397abe8a7cf5ff15a22a3eed2f
Merged-In: I81882a4634ff4d397abe8a7cf5ff15a22a3eed2f
(cherry picked from commit 9355aeba79)
2020-06-19 22:38:42 +00:00
Chris Gross
e08e40947b Merge "Use BUILD_*_IMAGE flags in add_img_to_target_files." 2020-06-19 22:32:37 +00:00
J. Avila
f7586025a2 Switch to using llvm-strip for modules
The gcc tools are deprecated; replace with the llvm equivalent.

Bug: 158484106
Change-Id: I9c3717bde281667eec82cc21dc63dc7fd5592a46
2020-06-19 21:32:45 +00:00
Steve Muckle
414dbe15ab adjust vendor ramdisk file extension based on compression
The extension for the generated vendor ramdisk should be updated based
on the compression scheme used.

Bug: 158433703
Change-Id: I25fff0b8a7879f6aa6d6fe2fce9f5a53f90eb636
2020-06-18 21:38:35 -07:00
Paul Duffin
e5fc8fdf5e Merge "Fail check-boot-jars if boot jar contains 0 .class files" 2020-06-18 19:35:22 +00:00
Sophie Zheng
34fe2651ed Merge "NDK api code coverage" 2020-06-18 19:26:00 +00:00
Treehugger Robot
efc6dfb703 Merge "Remove use of metalava compatible output" 2020-06-18 17:57:05 +00:00
Paul Duffin
70dd47f0df Fail check-boot-jars if boot jar contains 0 .class files
Protect against an invalid boot jar, e.g. one containing .dex files is
used instead of .class files.

Test: add a prebuilt for framework-tethering
      Run `m check-boot-jars` with the first fix from
	  https://r.android.com/1341756 and the build fails due to no
	  .class files because a dex jar is used.
	  Run `m check-boot-jars` with all fixeds from
	  https://r.android.com/1341756 and the build works.
Bug: 158304459
Bug: 159112414
Merged-In: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
Change-Id: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
(cherry picked from 92d41de8f2)
2020-06-18 14:17:57 +00:00
Treehugger Robot
7270150164 Merge "Mark jni libs as REQUIRED by their app" 2020-06-18 07:12:33 +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
Martin Stjernholm
2c38eb2537 Merge "Propagate TARGET_BUILD_APPS to Soong." 2020-06-17 17:31:24 +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
Martin Stjernholm
74920e6e43 Propagate TARGET_BUILD_APPS to Soong.
Used to select SDK variants of native libraries when building unbundled
apps only. This allows unbundled modules to access the platform
variants (and typically their versioned APEX stubs).

Test: m (on AOSP master)
Test: TH (including ub-launcher3-master)
Bug: 157549171
Change-Id: I74f0bcebe8b66b81b2c80e9d448f5d24dc9ab991
2020-06-17 04:15:00 +01:00
Colin Cross
74f121d18f Rename Native_coverage to GcovCoverage in Soong
Pass the NATIVE_COVERAGE Make variable to Soong as the more accurate
GcovCoverage.  Also remove NATIVE_LINE_COVERAGE, it doesn't do anything
different from NATIVE_COVERAGE, and NATIVE_COVERAGE is always set when
NATIVE_LINE_COVERAGE is set.

Bug: 159059537
Test: m checkbuild
Change-Id: Ib26a0e29f09b87400fd8bc41d2c06a4a8a397a19
2020-06-16 18:01:52 -07:00
Dan Willemsen
343caec30c Refactor how MODULES-IN-* is defined
Unlike the previous performance patches, this does change the ninja
file, shrinking build-aosp_crosshatch.ninja on aosp-master from 393MB to
387MB, while reducing kati runtime from 28.6s to 27.7s.

Previously, MODULES-IN-art would depend on every target defined under
art/***. After this change, it only depends on the modules names that
were directly defined under it, and depends on the MODULES-IN-art-*
for its subfolders.

Bug: 158488548
Test: mmma system/core/adb
Test: mmma system/core
Change-Id: Idfe80f707738faae4777e0d6dc9fd08014775696
2020-06-16 15:35:37 -07: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
Anton Hansson
c5fa7396ba Mark jni libs as REQUIRED by their app
This makes the dependencies of the jni lib .so appear in
product_target_FILES. Previously, only the jni lib .so
itself appeared, as an effect of being added to the
INSTALLED files of the app.

Bug: 129323707
Test: compare the output between `m dump-files` and installed-files.txt
Test: noop in terms of build artifacts
Change-Id: Ie391bb45ad7758e51368cabb1ecba5caeae2f09c
2020-06-16 16:13:03 +08:00
Treehugger Robot
397972fa6a Merge "Include image descriptor of only the first boot image in vbmeta" 2020-06-16 00:05:28 +00: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
Roland Levillain
17541b9512 Introduce product variables to select Java code coverage paths in Make.
Introduce product variables `JavaCoveragePaths` and
`JavaCoverageExcludePaths` (resp. populated from environment variables
`JAVA_COVERAGE_PATHS` and `JAVA_COVERAGE_EXCLUDE_PATHS`). Use them to
control which Java modules are candidate for instrumentation based on
their source path. By default (when `JavaCoveragePaths` is empty),
have all Java modules be candidate for instrumentation, to preserve
the existing behavior.

Test: export EMMA_INSTRUMENT=true \
        && export EMMA_INSTRUMENT_FRAMEWORK=true \
        && export JAVA_COVERAGE_PATHS=art \
        && m
Bug: 158212027
Bug: 156284897
Change-Id: I5de6eb460709d7d66d81e3432e11f94ff14dd1c9
2020-06-15 11:51:56 +01:00
Roland Levillain
d160a49df3 Merge "Rename native code coverage paths product variables in Make." 2020-06-15 10:12:10 +00:00
Jiyong Park
cd0c931b89 Merge "Organize product vars for adding properties" 2020-06-15 10:00:22 +00:00
Roland Levillain
bad8b386e6 Rename native code coverage paths product variables in Make.
Rename `CoveragePath` and `CoverageExcludePaths` as
`NativeCoveragePath` and `NativeCoverageExcludePaths` (resp.).
Also, populate `NativeCoveragePath` and `NativeCoverageExcludePaths`
from environment variables `NATIVE_COVERAGE_PATHS` and
`NATIVE_COVERAGE_EXCLUDE_PATHS` (resp.).

Test: m nothing
Bug: 158212027
Change-Id: I409dbb04b09744a7bd95a4b69361e858b9f89e23
2020-06-14 19:14:56 +01:00
Treehugger Robot
9d54fbebcb Merge "Fix dependencies on INSTALLED_RECOVERYIMAGE_TARGET" 2020-06-12 04:22:25 +00:00