Commit Graph

23373 Commits

Author SHA1 Message Date
Colin Cross 89cf3cf572 Merge "Install symbols for JNI libraries" into rvc-dev 2020-07-17 22:16:01 +00:00
Colin Cross 8d2183f461 Install symbols for JNI libraries
When building an app in Soong with JNI libraries copy the unstripped
libraries to the symbols directory in directory that matches the
installed path of the APK.

Bug: 159726429
Test: forrest
Change-Id: If8e423c7cdf3afd518761b5ab6bc857321acda46
Merged-In: If8e423c7cdf3afd518761b5ab6bc857321acda46
(cherry picked from commit e926cab372)
2020-07-17 19:10:46 +00:00
Colin Cross 1db45ef2a2 Dist lint reports for apps
Dist the transitive lint report for each unbundled app built by Soong
when lint-check is on the command line.

Bug: 153485543
Test: m TARGET_BUILD_APPS=Gallery2 lint-check dist
Change-Id: Icd2b6f884396fa5f743746099301c325ca82a324
Merged-In: Icd2b6f884396fa5f743746099301c325ca82a324
(cherry picked from commit b842952421)
2020-07-16 16:20:20 -07:00
Paul Scovanner b751b77548 Update Security String to 2020-09-05
Bug: 160158282
Change-Id: Ia207cf01e57df8539fbbbaf6e042bd610aa64956
2020-07-14 17:07:25 +00:00
Colin Cross 5da1de831a Use unzip -DD
We put reproducible timestamps in zip files so that the artifacts
are consistent, but that leads to old timestamps in the output
directory if they are unzipped as part of the build.  Use
unzip -DD when unzipping to update the timestamps.

Bug: 161015009
Test: touch -d 2020-01-01 ref; find $OUT/system -not -newer ref
Change-Id: I6f08ba8695d90a8225cfc04e679755e6296deed0
Merged-In: I6f08ba8695d90a8225cfc04e679755e6296deed0
(cherry picked from commit c27d795b63)
2020-07-13 14:26:25 -07:00
Oliver Nguyen e02730e29a Merge changes from topic "gcov-clang-migration" into rvc-dev
* changes:
  Rename Native_coverage to GcovCoverage in Soong
  Introduce product variables to select Java code coverage paths in Make.
  Rename native code coverage paths product variables in Make.
2020-07-06 21:07:54 +00:00
Jaewoong Jung d1198b74b5 Merge "Add LOCAL_APKCERTS_FILE support." into rvc-dev 2020-07-01 00:06:23 +00:00
Paul Scovanner 21181c4726 Update Security String to 2020-09-01 am: dca1803d95
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/+/12037363

Change-Id: Idd79854d376cefc22e20e7b440962ec9af993463
2020-06-30 03:37:48 +00:00
Jaewoong Jung 29714ecda6 Add LOCAL_APKCERTS_FILE support.
This is used when Soong and Make don't know the full output file list,
and so use a tool to generate a per-module apkcerts.txt file instead.

Fixes: 160119159
Test: m apkcerts-list
Change-Id: I48183bc8cbf9dcc521f791812734205ed3f28f4c
2020-06-29 19:47:21 -07:00
Colin Cross b6ff8225b1 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
Merged-In: Ib26a0e29f09b87400fd8bc41d2c06a4a8a397a19
Change-Id: Ib26a0e29f09b87400fd8bc41d2c06a4a8a397a19
2020-06-29 18:01:40 -07:00
Roland Levillain 14323e5cf0 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
Merged-In: I5de6eb460709d7d66d81e3432e11f94ff14dd1c9
Change-Id: I5de6eb460709d7d66d81e3432e11f94ff14dd1c9
2020-06-29 18:01:25 -07:00
Roland Levillain bdb1b4c79a 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
Merged-In: I409dbb04b09744a7bd95a4b69361e858b9f89e23
Change-Id: I409dbb04b09744a7bd95a4b69361e858b9f89e23
(cherry picked from commit bad8b386e6)
2020-06-29 17:54:08 -07:00
Paul Scovanner dca1803d95 Update Security String to 2020-09-01
Bug: 160158282
Change-Id: Ibf5c36e135398ed14a730d31fd1b5a306f7b9db3
2020-06-29 19:08:46 +00:00
Jaewoong Jung 077891d190 Mark android_app_set modules PRESIGNED.
Test: m apkcerts-list
Fixes: 159921591
Change-Id: Ie83a05be0d71280644843eddffdbea6bcb429c74
2020-06-25 16:06:21 -07:00
Tianjie Xu c35ea185b0 Merge "Add lz4 to otatools" into rvc-dev 2020-06-25 02:25:02 +00:00
TreeHugger Robot b6d0be942a Merge "Use inclusive language in build/make part 2" into rvc-dev 2020-06-25 01:20:16 +00:00
Tianjie e6369cec6b 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
(cherry picked from commit 3031c29905)
2020-06-24 16:50:18 -07:00
Colin Cross 74c7561dcc Use inclusive language in build/make part 2
Test: m checkbuild
Bug: 158889297
Change-Id: I63bac680cc63a8564f35ae85dda1a0b09c9fd541
Merged-In: I63bac680cc63a8564f35ae85dda1a0b09c9fd541
(cherry picked from commit d1cbfeaa3a)
2020-06-24 15:00:05 -07:00
J. Avila 74d50ccb69 Switch to using llvm-strip for modules
The gcc tools are deprecated; replace with the llvm equivalent.

Bug: 158484106
Merged-In: I9c3717bde281667eec82cc21dc63dc7fd5592a46
Change-Id: I9c3717bde281667eec82cc21dc63dc7fd5592a46
2020-06-22 15:31:27 +00:00
TreeHugger Robot 22f98f1885 Merge "notice files in system_other becomes included in system's one" into rvc-dev 2020-06-19 01:23:26 +00:00
Jeongik Cha 9917520fc2 notice files in system_other becomes included in system's one
system_other is relevant partition to system over vendor.
so move notice files from system_other from vendor to system

Bug: 159189171
Test: m nothing && check ninja dependency
Change-Id: Ib69bd3faae03f174671d5db8366a59b7d28a9d9d
2020-06-18 20:44:51 +09:00
Paul Duffin 92d41de8f2 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
Change-Id: I0e8ebd318312949bc58ba7a5c89f9e265b8bedf2
2020-06-17 17:38:24 +01:00
TreeHugger Robot 6df396f96f Merge "Include image descriptor of only the first boot image in vbmeta" into rvc-dev 2020-06-17 00:46:40 +00:00
Colin Cross 7244e60105 Merge "Use inclusive language in build/make" into rvc-dev 2020-06-16 03:28:15 +00:00
Colin Cross 2be0200a8b Merge "Add out/soong/late-${TARGET_PRODUCT}.mk" into rvc-dev 2020-06-16 03:27:32 +00:00
Roopesh Nataraja 1908f97319 Include image descriptor of only the first boot image in vbmeta
Multiple boot images can be generated based on BOARD_KERNEL_BINARIES
but vbmeta would capture the image descriptor of only the first boot
image specified in BUILT_BOOTIMAGE_TARGET.

Bug : 158213759
Test: Compile multiple boot images and check if vbmeta.img
      includes image descriptor of only the first boot image
      specified in BUILT_BOOTIMAGE_TARGET

Change-Id: Ib70f65d98546a436da82656bc5c911d437618bb5
Merged-In: Ib70f65d98546a436da82656bc5c911d437618bb5
2020-06-15 17:10:56 -07:00
TreeHugger Robot 2e2cb808cb Merge "Add test config template for sh_test." into rvc-dev 2020-06-15 16:37:06 +00:00
Colin Cross a1383d8f9d Use inclusive language in build/make
Bug: 158889297
Test: m checkbuild
Change-Id: I54a7e55d3fdd5571ef1ae33ebe443c10d138fd28
Merged-In: I54a7e55d3fdd5571ef1ae33ebe443c10d138fd28
(cherry picked from commit c3ad80467e)
2020-06-12 21:10:55 -07:00
Colin Cross 3cd4a076ba 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).

Bug: 153485543
Test: m lint-check dist
Change-Id: I7754fd1b8dab508c96ad59beed67f0d6c4ff75f0
Merged-In: I7754fd1b8dab508c96ad59beed67f0d6c4ff75f0
(cherry picked from commit 8ca4092ab4)
2020-06-12 21:07:51 -07:00
Dan Willemsen 458af2daa1 Fix dependencies on INSTALLED_RECOVERYIMAGE_TARGET
Instead of copying the logic (which led to divergences), use the
same list of dependencies for both users of build-recoveryimage-target

Bug: 158774198
Test: treehugger
Test: build-coral.ninja is the same before/after
Change-Id: I8f8c006432f3b8120df1f39c98009155fdff32ad
Merged-In: I8f8c006432f3b8120df1f39c98009155fdff32ad
(cherry picked from commit d120ac68fa)
2020-06-12 12:26:37 -07:00
frankfeng e56f07725b Add test config template for sh_test.
Verification of compatibility with existing sh_test targets is in progress.

Bug: 148805488
Bug: 151761373

Test: make
Test: unit tests
Test: verified test config auto-gen for bc-tests and toybox-tests
Change-Id: Id8ce5dd0723e8c95921e2e20bff72fc828d47d87
Merged-In: Id8ce5dd0723e8c95921e2e20bff72fc828d47d87
2020-06-11 22:57:48 +00:00
TreeHugger Robot c59ba8dab0 Merge changes If99c31cc,I41fb7611,Ia2ec8b29 into rvc-dev
* changes:
  base_rules.mk optimizations
  More performance improvements
  Rewrite test data logic to make it faster
2020-06-11 21:33:15 +00:00
TreeHugger Robot 1455b76f9f Merge "Add LZ4 support to the release tools" into rvc-dev 2020-06-11 18:41:19 +00:00
J. Avila d30b751838 Add LZ4 support to the release tools
The core android build platform has changed to add support for LZ4
compression for ramdisks, but the release tools were not. Fix this.

Bug: 156129966
Merged-In: I39680b91930d2d3cbd0cd565beb78e1ee699397e
Change-Id: I39680b91930d2d3cbd0cd565beb78e1ee699397e
2020-06-11 15:22:04 +00:00
Dan Willemsen 91afa94150 base_rules.mk optimizations
A few more misc improvements that I found while analyzing the
performance of base_rules.mk.

This brings an aosp-master/aosp_crosshatch-userdebug kati run from 33.3s
to 28.6s

Bug: 158488548
Test: build-aosp_crosshatch.ninja is the same before/after
Change-Id: If99c31cc7b5d7133d70eb644c6095f19060b71e5
Merged-In: If99c31cc7b5d7133d70eb644c6095f19060b71e5
(cherry picked from commit 8447b8116a)
2020-06-10 17:18:20 -07:00
Dan Willemsen 74a1a483fc More performance improvements
Instead of using `x := $(x) foo`, make sure `x` is initialized first,
then use `x += foo`.

For a aosp-master/aosp_crosshatch-userdebug build, this takes the build
from 49s to 33s (no significant difference in peak memory)

Bug: 158488548
Test: build-aosp_crosshatch.ninja is the same before/after
Change-Id: I41fb7611030dd3ba824f896a9c9eadbdd218f464
Merged-In: I41fb7611030dd3ba824f896a9c9eadbdd218f464
(cherry picked from commit fd1e67b8ce)
2020-06-10 17:18:13 -07:00
Dan Willemsen e88ef9299a Rewrite test data logic to make it faster
It turns out we have a few tests with thousands of test data files,
which this logic does not handle very well. Just switching from `x :=
$(x) ...` to `x += ...` accomplishes the majority of these gains, but I
rewrote the logic to be less function-call+eval based to hopefully make
it easier to understand.

For an aosp-master/aosp_coral-eng build, this brings the time spent in
this logic from 7.6s to 0.3s (total kati runtime of 54s to 46s). Kati's
peak memory use (maxrss) also shrunk from 6.1GB to 3.8GB.

Bug: 158488548
Test: build-aosp_coral.ninja is the same before/after
Change-Id: Ia2ec8b29b5c1dd12fa7ea10b4f80fe802c692725
Merged-In: Ia2ec8b29b5c1dd12fa7ea10b4f80fe802c692725
(cherry picked from commit c5ec8e95bc)
2020-06-10 17:18:05 -07:00
Paul Scovanner fff4e1f5a4 Update Security String to 2020-08-05 am: d4b7f4de4b
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/+/11826025

Change-Id: I79b57da2c0387b33868dd36d3881d1d9ee3801b7
2020-06-10 21:01:31 +00:00
Paul Scovanner d4b7f4de4b Update Security String to 2020-08-05
Bug: 158587413
Change-Id: I5f0b271fb5302e8c72024b49fb1a2ae5120821e0
2020-06-10 18:35:18 +00:00
Paul Scovanner a26a678246 Update Security String to 2020-08-01 am: a4d5641a34
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/+/11812416

Change-Id: Ic81f52a8bea6a2cba37f62ae00f42a8a130cf1b4
2020-06-10 16:56:15 +00:00
Paul Scovanner a4d5641a34 Update Security String to 2020-08-01
Bug: 158587413
Change-Id: I21b16ed52ef9c7c26a671692c66b06855b147b16
2020-06-09 19:41:58 +00:00
Steve Muckle d03ec51f38 fix spurious / on toplevel kernel module installations
When kernel modules are being put directly into lib/modules/ (as opposed
to lib/modules/<subdir>/), the empty part of the destination path causes
a target containing a redundant /. If the target is also added elsewhere
in the build without the redundant /, then rule merging will miss it,
and a build error will occur.

Bug: 158158635
Change-Id: I797addce760f4886166efa283302a53783581625
Merged-In: I797addce760f4886166efa283302a53783581625
2020-06-05 18:56:41 -07:00
Julien Desprez 7859593560 Add tradefed-test-framework to the suites exported jar
New jar that needs to be packaged for suites.

Test: make cts
Bug: 149758913
Bug: 156482663
Merged-In: If29508f3dd30939be603ed03f2536c960ca40d92
Change-Id: If50a1e76ffdb4651bf004b26eb111e113569c6c4
2020-06-05 23:08:17 +00:00
Sasha Smundak 8ae0c83259 Implement android_app_set module. am: eefa8e954e
Original change: https://googleplex-android-review.googlesource.com/c/platform/build/+/11718673

Change-Id: I661aed2c61ac4123c0e9a3d02c9da72ef3fac754
2020-06-05 17:38:07 +00:00
Pierre Couillaud bb726614db Strip debug symbols from modules (fixup)
allow to also skip the stripping of the modules present in vendor
ramdisk when the BOARD configuration is set to skip the strip step.

there is also a shortcoming of this functionality: it currently assumes
the modules to strip are all created equal against the same arch in
particular, however this does not work for kernel modules which are
for mixed mode platforms, as example {kernel,android} == {aarch64,armv7}
because it will select the "android" mode strip which is unaware of the
kernel mode architecture.

Bug: 156395749
Bug: 155193290
Change-Id: I35ef51845224e94e3e253acdeb6bb14b990a401b
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
2020-06-03 23:44:37 +00:00
Steve Muckle f6ce461f1f refactor kernel module build, add version support
Refactor the build support for kernel modules. This refactoring is
leveraged to add support for directories of kernel modules in each
partition. To add a directory of kernel modules, define
BOARD_KERNEL_MODULE_DIRS to include the directory name, for example:

BOARD_KERNEL_MODULE_DIRS := 5.4

The build will then check all the usual kernel module related macros
with an extension of _5.4, for example you can define

BOARD_VENDOR_KERNEL_MODULES_5.4 := <modules to copy>
BOARD_VENDOR_KERNEL_MODULES_ARCHIVE_5.4 = <path to archive file>
BOARD_VENDOR_KERNEL_MODULES_LOAD_5.4 := <modules for load list>

Bug: 157645635
Change-Id: I1687d0ec85c1dcf21350350623b4689aba3f6717
Merged-In: I1687d0ec85c1dcf21350350623b4689aba3f6717
2020-06-03 11:18:10 -07:00
Steve Muckle 7576d5e131 move BOARD_RECOVERY_KERNEL_MODULES_LOAD default
Moving this makes each of the partition's kernel module Makefile
generation more similar, enabling a forthcoming cleanup/refactoring.

If recovery-is-boot and there are kernel modules defined in
BOARD_GENERIC_RAMDISK_KERNEL_MODULES, those kernel modules will
now be included in the default assignment to
BOARD_RECOVERY_KERNEL_MODULES_LOAD. If this is not desired then
BOARD_RECOVERY_KERNEL_MODULES_LOAD may simply be set to
BOARD_RECOVERY_KERNEL_MODULES (or a custom list of recovery kernel
modules to load).

Bug: 157645635
Change-Id: Ia1392b7d20d07cee75420edd95dcee1dc825516e
Merged-In: Ia1392b7d20d07cee75420edd95dcee1dc825516e
2020-06-03 11:17:32 -07:00
Steve Muckle 2319129a88 move module list creation outside conditionals
Currently the two special-case calls to create just a module load list
(as opposed to copying a set of modules and creating a module load list)
are inside checks that the related board macro for the module set is not
empty.

While it would be incorrect to create a non-empty module load list with
an empty set of modules, this error would quickly surface at runtime.
More importantly, moving these out will permit refactoring this code to
clean it up.

Bug: 157645635
Change-Id: I199788d49072d4c59737b3ef2c75546852cf3e36
Merged-In: I199788d49072d4c59737b3ef2c75546852cf3e36
2020-06-03 11:16:31 -07:00
Steve Muckle 708435b557 fix reference to BOARD_ODM_MODULES_LOAD
This check is meant to initialize BOARD_ODM_KERNEL_MODULES_LOAD to
BOARD_ODM_KERNEL_MODULES if BOARD_ODM_KERNEL_MODULES_LOAD is empty.

Bug: 157645635
Change-Id: I9c8ac0e64bb002e926d15b446a63801d7cfa9911
Merged-In: I9c8ac0e64bb002e926d15b446a63801d7cfa9911
2020-06-03 11:15:52 -07:00
Sasha Smundak eefa8e954e Implement android_app_set module.
Bug: 152319766
Test: manual and builtin
Change-Id: I66edc5b423898a11dbba1c3d9796c7bd4d6b4428
Merged-In: I66edc5b423898a11dbba1c3d9796c7bd4d6b4428
2020-06-03 09:50:48 -07:00