Commit graph

272 commits

Author SHA1 Message Date
Roland Levillain
fe67f14906 Remove module jacocoagent from TARGET_CORE_JARS.
Before this change, `jacocoagent` was conditionally added to
`TARGET_CORE_JARS`. However, this module is not really part of the
Android Core Libraries (also, we plan to remove `TARGET_CORE_JARS`
from `PRODUCT_PACKAGES`). Remove it from `TARGET_CORE_JARS` while
keeping it in `PRODUCT_PACKAGES` and `PRODUCT_BOOT_JARS`, to keep
having it installed and being part of the boot class path on
devices (under the same conditions).

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: 143304991
Bug: 142944799

Change-Id: Ib047a394342aeffbfec26ebc756159f145d6523e
2019-10-29 17:45:04 +00: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
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
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
Martin Stjernholm
b324175118 Update dexpreopt for the ART APEX name change.
Test: Build & boot
Bug: 135753770
Exempt-From-Owner-Approval: Approved internally
Change-Id: I130eaa6126d347bd1010c02b4f353b9e9b15ef84
Merged-In: I130eaa6126d347bd1010c02b4f353b9e9b15ef84
2019-08-30 17:47:30 +01:00
Ivan Lozano
d62e7123d8 Make support for rust modules from Soong.
Support for rust modules built in Soong.

Bug: 136189233
Test: Test module builds.
Test: crosvm builds.
Change-Id: Idf2e4a4f760cbcee1d35fe6567ef8e12d4855094
2019-08-27 11:23:35 -07:00
Treehugger Robot
33dfa52cdd Merge "macOS calls itself Darwin." 2019-08-23 16:45:07 +00:00
Elliott Hughes
a8368efe51 macOS calls itself Darwin.
Test: uname
Change-Id: Id3ce8614869e68c15666051af14321f597d6ae0f
2019-08-22 13:38:28 -07:00
Jeongik Cha
6a5e9a21ef SYSTEM_EXT supports executables
Because TARGET_OUT_SYSTEM_EXT_EXECUTABLES have been omitted, we cannot
install any executables in system_ext.
So fix it.

Test: set system_ext_specific true in some executable, and then check if
it is installed in /system_ext/bin
Bug: 139719550

Change-Id: I1bc7a2e6a7c25ec4b5b1ea6358ba8d3e1ae6331b
2019-08-20 19:24:43 +09:00
vichang
ba6135bd80 Merge "Add new core-icu4j after separating icu4j from core-libart" 2019-08-12 15:36:44 +00:00
Victor Chang
b6056d6856 Add new core-icu4j after separating icu4j from core-libart
Bug: 138994281
Test: m droid
Change-Id: Ib2a7a464a4cc0030061c018c1941db5c28a90b7d
2019-08-06 16:54:08 +01: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
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
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
Tom Cherry
6b28af30fb Remove TARGET_ROOT_OUT_SBIN / TARGET_ROOT_OUT_SBIN_UNSTRIPPED
/sbin was traditionally used for static binaries on the ramdisk for
Android, but now everything is a shared binary, so this directory is
empty and we do not want to encourage creation of new libraries in
this directory.

Bug: 73660730
Test: build
Change-Id: Ia82d892adfffb6fa325d0c570ae7999e7bb28dc2
2019-04-17 11:12:32 -07:00
Ian Pedowitz
0604ae4881 Q Branch prefix is QP1A
Bug: 128934651
Bug: 129683166
Bug: 129943426
Test: source build/envsetup.sh && lunch aosp_blueline-userdebug
Test: m -j cts docs tests
Change-Id: I34c360a68c6721e8fef9e39be30c8af7bca90c39
Merged-In: I34c360a68c6721e8fef9e39be30c8af7bca90c39
2019-04-09 13:00:09 -07:00
Nelson Li
1f8357fe7d Revert "Revert "Build System: Solve dependency problem for test""
This reverts commit 6fe7f194b9.

Reason for revert: Fixed all build break.

Change-Id: I0a4842df1225399752515a4cd7a7c14173a5bf7b
2019-03-14 01:05:36 +00:00
Nelson Li
6fe7f194b9 Revert "Build System: Solve dependency problem for test"
This reverts commit 224e103308.

Reason for revert: Build Breakage in git_pi-dev-plus-aosp/docs @5366136
make -j110 docs showcommands dist DIST_DIR=/buildbot/dist_dirs/git_pi-dev-plus-aosp-linux-docs/5366136 checkbuild
FAILED:
 Dependencies in out found with no rule to create them:
 out/target/product/generic/data/app/CtsVerifierTester/CtsVerifierTester.apk
 out/target/product/generic/data/app/TradeFedTestApp/TradeFedTestApp.apk
 out/target/product/generic/data/app/TradeFedUiTestApp/TradeFedUiTestApp.apk
 15:53:46 stopping
and
make -j50 showcommands dist TARGET_PRODUCT=cf_x86_phone DIST_DIR=/buildbot/dist_dirs/git_master-linux-ndk_translation_all/5366149 ndk_translation_all
FAILED: ninja: 'out/target/product/vsoc_x86/data/nativetest/arm/arm_insn_tests_arm_static/arm_insn_tests_arm_static', needed by 'out/target/product/vsoc_x86/obj/PACKAGING/ndk_translation_tests_intermediates/arm_insn_tests_arm_static_result.xml', missing and no known rule to make it
15:55:38 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1
Return Code: 2

Change-Id: Idf95ef2e06526a0a31690420c923207db627605f
2019-03-11 16:48:29 +00:00
nelsonli
224e103308 Build System: Solve dependency problem for test
1. A test can add a runtime dependent test module by just setting
   LOCAL_REQUIRED_MODULES or LOCAL_TARGET_REQUIRED_MODULES. Then the dependent test
   module will be copied to testcase folder.
2. Do not install to $(TARGET_OUT_DATA) for testcase

BUG: 117224272

Test: 1. (a) vi cts/tests/tests/text/Android.mk
         (b) add LOCAL_REQUIRED_MODULES := CtsPrintTestCases
         (c) m -j CtsTextTestCases
         (d) Then, CtsPrintTestCases should also be built to testcase folder like below.
             ./target/product/generic_arm64/testcases/CtsPrintTestCases

Change-Id: I24ea3783486c54a05cfa9d3d0375b977afc230f8
2019-03-07 14:08:35 +08:00
Anton Hansson
192798513e Move combo makefile parsing
These files may be setting variables usually defined in the
BoardConfig. This moves that setting into board_config.mk so
that the relevant variables can be made readonly.

Test: build_test
Test: diff presubmit target_files vs base cl
Change-Id: I4dab09fa67c0f2e88a8ce1402a35b4ef5f8a0560
2019-03-01 09:54:33 +00:00
Anton Hansson
b9544694a5 Consolidate some BoardConfig variable checks
Move a few more variable stripping/sanity checking from
config.mk to board_config.mk

Test: build_test
Change-Id: I93fde7293de38398039dbb679b2399c8a68c190d
2019-02-27 14:07:43 +00:00
Anton Hansson
bb76ce825c Split out board_config.mk
Similar to product_config.mk, this contains the logic for reading
BoardConfig.mk, and will be expanded to sanity-check variables
set in the BoardConfig etc.

Test: build_test
Change-Id: I4f8d7cfbf1506ae4268c82c9554680259958b313
2019-02-26 16:27:48 +00:00
Nicolas Geoffray
f026d899f4 Set a dedicated variable for the runtime apex libs.
Bug: 124789867
Test: build with coverage, the boot classpath has jacoco.jar in /system/framework, not the apex
Change-Id: I2529f8fcb4ef30454a9e5fc95d58d31bef83ec6f
2019-02-20 10:05:17 +00:00
Anton Hansson
80c80804f0 Merge product_services into product by default
Noone is intended to use product_services for now, so make
product_services modules merge in product by default.

Bug: 113098451
Test: boot blueline
Test: boot walleye
Change-Id: Id13487e40afe4ae581fac027c8c075798c26c7e8
2019-02-01 15:04:44 +00:00
Dan Willemsen
a734907705 Merge "Deprecate LOCAL_MODULE_TAGS := eng/debug" 2019-01-31 18:32:16 +00:00
Anton Hansson
d26e4eeec8 Allow merging product_services into /product
Allow devices to specify TARGET_COPY_OUT_PRODUCT_SERVICES := product,
which in effect treats all product_services modules the same as product
modules.

Do not generate license and build props for product_services when
this settings is enabled.

Bug: 113098451
Test: boot downstream product
Change-Id: Id51230b969900bebcf19d0138dfd6187dfce25b1
2019-01-28 21:24:59 +00:00
Anton Hansson
9bab4c2622 Fix typo of PRODUCT_BUILD_PRODUCT_SERVICES_IMAGE
Test: treehugger
Change-Id: I087d865c12d9aff7bdc0018256c1a87657d8550c
2019-01-25 10:15:22 +00:00
Dan Willemsen
9569ddd478 Deprecate LOCAL_MODULE_TAGS := eng/debug
Uses a new BUILD_BROKEN_ENG_DEBUG_TAGS variable that defaults to true
until we mark all of the broken targets, then we'll switch it to false.

These are fairly trivial to fix, so I don't expect to keep this flag
around for long.

Test: build_test on aosp and internal master; check logs
Change-Id: I6176fec265e78aecff965b7cf1636f831f68a140
2019-01-22 20:08:12 -08:00
Dan Willemsen
674952098b Add PRODUCT_BUILD_*_IMAGE, BUILDING_*_IMAGE to control building of images
These centralize the decisions on whether to build certain images or
not, and allow the product definition to override that choice.

There are a few use cases here:

 * For GSI-like cases, we only want to build the system image. This
   didn't really change, but it's somewhat simpler to configure, and
   easier to understand the build logic.

 * On the opposite side, when you're planning on using a GSI, the device
   specific build can only build the vendor images (or some other set).

 * Some cases (Fuchsia, etc) don't want to build any images, as they'll
   be distributing the build artifacts in their own packaging.

I suspect in the future, TARGET_BUILD_APPS may be able to be refactored
into the third use case.

Test: treehugger
Test: Create a product definition that includes nothing, try to build it.
Test: compare build-aosp_crosshatch.ninja and build-crosshatch.ninja before/after
Change-Id: I685ab841be3718d3dd7052c28ccd764bb6f1991a
2019-01-18 13:11:34 -08:00
Neil Fuller
c69129b2b8 Revert "Add core-simple to the standard boot classpath"
This reverts commit e85777782a.

Bug: 119301609
Test: build
Change-Id: Ibf9f9f56a6027a4cc3f3ea5a34b3dee748ad83c2
2019-01-14 16:02:01 +00:00
Dan Willemsen
7537fd050f Clean up DIST_DIR usages, move to dist-for-goals
soong_ui now guarantees DIST_DIR is set in the environment, so remove
the default.

Use dist-for-goals instead of writing directly into DIST_DIR.

When building the system image, use DIST_DIR from the environment
instead of from make. This will eventually stop working, but this will
work for now.

Bug: 117463001
Test: m dist  (check gpl_source.tgz, logs/product_copy_files_ignored.txt)
Test: m out/target/product/generic/product_copy_files_ignored.txt
Change-Id: Ice557e0a148602cb8eb154efb747d416f0d0db59
2018-10-16 23:37:51 -07:00
Andreas Gampe
10b28befbe Merge "Change install paths of libs in sanitize builds" 2018-10-09 18:14:20 +00:00
Anton Hansson
379b2ba485 Tidy up TARGET_COPY_OUT_X variable defs
- Don't duplicate the same comment over and over
- Stop defining values that are immediately overwritten

Test: make
Change-Id: I87cb2c2b76bb69a026695e145849f4acee197b94
2018-10-02 14:12:50 +01:00
Anton Hansson
ae9f10544d Change install paths of libs in sanitize builds
This changes the paths for partitions modules inside the 'asan'
subdirectory to match those used when not making sanitized builds.

This fixes get_non_asan_path macro, which just strips the 'asan' dir
from the lib paths.

For example, on a device without a product partition, previously
libraries would install install in:
- out/target/product/x/asan/product/lib[64]/y.so (with SANITIZE_TARGET)
- out/target/product/x/system/product/lib[64]/y.so (no SANITIZE TARGET)

Stripping the asan dir would look for the lib in out/.../<x>/product/,
which didn't exist. The new path for SANITIZE_TARGET builds is now
out/target/product<x>/asan/system/product/lib[64]/<y>.so

Bug: 117089649
Test: m; SANITIZE_TARGET=address m (for a device without /product)
Change-Id: Id663c5f284e3b4fc65ed8cb8c2da6bcf6542e034
2018-10-02 13:16:05 +01:00
Treehugger Robot
5bc52ac49f Merge changes from topic "vndk28"
* changes:
  Condition VNDK check on TARGET_BUILD_APPS
  Revert "Revert "Add VNDK v28 to GSI from Android Q""
2018-09-20 06:21:43 +00:00
Hung-ying Tyan
924d2d929d Condition VNDK check on TARGET_BUILD_APPS
Bug: 113560265
Test: (with the topic)
Test: mv prebuilts/vndk/v28 v28
Test: make TARGET_PRODUCT=aosp_arm TARGET_BUILD_APPS=Launcher3 TARGET_BUILD_VARIANT=userdebug
      --> build pass
Test: lunch aosp_arm-userdebug
      --> error: VNDK version 28 not found
Test: mv v28 prebuilts/vndk/v28
Test: lunch aosp_arm-userdebug
      --> no error
Change-Id: Ifb553a5ee4cec8b3f3b79aebdf824d64571fa817
2018-09-19 18:00:19 +08:00
Dan Willemsen
8cf6b65445 Remove *_OUT_INTERMEDIATE_LIBRARIES
Always use the exact libraries like Soong does instead.

Test: m
Change-Id: Ifd48020073dd045247f76f84627c497e94562286
2018-09-15 10:52:13 -07:00
Dan Willemsen
60b7296d42 Fix ASAN + product_services
Test: SANITIZE_TARGET=address m nothing
Change-Id: I9724169b4cf474b4c963d33263ba52ebfff6efff
2018-09-11 23:11:07 -07:00
Tom Cherry
04552fed3b Merge "Support a first stage ramdisk via TARGET_RAMDISK_OUT" 2018-08-29 17:05:40 +00:00
Treehugger Robot
486653e538 Merge "Disable 32-bit Darwin builds" 2018-08-28 23:41:13 +00:00
Dan Willemsen
1d090fc0ce Disable 32-bit Darwin builds
Mac OSX 10.14 Mojave deprecates 32-bit executables, and the 10.14 SDK
does not successfully link 32-bit files.

Test: Install Xcode 10 beta, `m checkbuild host`
Change-Id: Ifad471fb88ead4bda870f49837d937fb5742f3f6
2018-08-28 13:21:42 -07:00
Tom Cherry
d14b895665 Support a first stage ramdisk via TARGET_RAMDISK_OUT
Support a first stage ramdisk which will include the targets placed
into TARGET_RAMDISK_OUT.  This replaces the existing ramdisk on
existing devices.

All system images are now built to be mounted as the root dir.
Devices with a first stage ramdisk will switch root to the system
partition.

BOARD_BUILD_SYSTEM_ROOT_IMAGE remains and is used to specify if the
system partition is going to be directly used as rootfs without the
ramdisk.

Bug: 79173823
Bug: 79758715
Test: hikey boots, sailfish boots
Test: OTA walleye from P to master
Change-Id: Idbb2dccc6340b0235a4bef03e11e420a9ed154b6
2018-08-28 12:42:41 -07:00
Neil Fuller
e85777782a Add core-simple to the standard boot classpath
core-simple.jar is being added to the runtime classpath as
an easy-to-find placeholder and to help identify places that
care about the boot classpath / trigger conversations & issues /
force discussion.

See http://go/simple-module

To start, this jar is being added in various locations that know
about core-libart and/or core-oj.  There will be follow-up changes to
make core-simple.jar more than just another core-* jar.

Bug: 113148576
Test: Treehugger
Test: make checkbuild
Change-Id: I267a91b8728f84cfb1b2e8a5c5d157c88b75581c
2018-08-28 13:19:35 +01:00
Bowgo Tsai
d241226936 Correct PRODUCT_SERVICES_COPY_FILES in envsetup.mk
Bug: 80741439
Test: build
Change-Id: Ibc37a1c011ad00a4763911ca0842c74f31d8bc0d
2018-08-23 15:54:34 +08:00
Dario Freni
924af7d4dd s/product-services/product_services/g
Attempting to reduce the number of different spellings we have for
"product services" partition in the codebase.

Bug: 112431447
Test: m
Change-Id: I6debd3f5f5abc4bd1e22f2ef11c5fe131915976c
Merged-In: I6debd3f5f5abc4bd1e22f2ef11c5fe131915976c
2018-08-20 10:44:59 -07:00
Yifan Hong
35be6ca8f2 Reland "s/PRODUCT-SERVICES/PRODUCT_SERVICES/g"
Test: builds
This reverts commit 87021065b9.

Reason for revert: reland CL

Change-Id: Ic88c2bd612ad7a19d88686b2907c812bd586ee35
Merged-In: Ic88c2bd612ad7a19d88686b2907c812bd586ee35
2018-08-20 10:44:59 -07:00
Shawn Yang
87021065b9 Revert "s/PRODUCT-SERVICES/PRODUCT_SERVICES/g"
This reverts commit 77c778c040.

Reason for revert: git-master break on 4960355

Change-Id: I2fd272c63ef496067f12852bcf98ffc1194c54bf
2018-08-17 19:02:08 +00:00
Dario Freni
77c778c040 s/PRODUCT-SERVICES/PRODUCT_SERVICES/g
Attempting to reduce the number of different spellings we have for
"product-services" in the codebase.

Bug: 112431447
Test: m
Change-Id: Iec531122297cf4b86ff8601732d4ab7ccf5c2183
2018-08-17 00:28:17 +01:00
Treehugger Robot
c272a99b5c Merge "Add support for /odm partition" 2018-08-16 03:37:36 +00:00