Commit Graph

22209 Commits

Author SHA1 Message Date
Colin Cross
dd386dc9ac Merge "Use system modules for turbine in Make" 2019-11-04 18:54:32 +00:00
Ulyana Trafimovich
fba1b6ae33 Merge "Disable dexpreopt on targets that do not include default ART config."
am: 6dc79ada3d

Change-Id: Iff64081fba52c767fa7a0a03fd1b424eebbce577
2019-11-04 04:19:58 -08:00
Anton Hansson
331fb4f7d6 Merge "Ensure current product use PRODUCT_* vars directly"
am: 871d39c40e

Change-Id: I2ac946500a07f8ee464d32d9a8fd9a558febdf1f
2019-11-04 04:12:14 -08:00
Jiyong Park
9c792a81ea Merge "Avoid path conflicts for the notice files"
am: 479cc84706

Change-Id: I194cf736ca9e1a653f06d52f767f93788808b53b
2019-11-04 04:08:24 -08:00
Ulyana Trafimovich
6dc79ada3d Merge "Disable dexpreopt on targets that do not include default ART config." 2019-11-04 12:04:04 +00:00
Anton Hansson
871d39c40e Merge "Ensure current product use PRODUCT_* vars directly" 2019-11-04 10:35:48 +00:00
Jiyong Park
479cc84706 Merge "Avoid path conflicts for the notice files" 2019-11-04 09:46:42 +00:00
Jiyong Park
e12c862013 Avoid path conflicts for the notice files
Path conflicts could happen when following conditions are met.
1) a java library named "foo" is not installable.
2) a java library named "bar" is installable, and its stem is set to
"foo".

Then the notice file for 1) becomes foo.jar.txt following its
LOCAL_MODULE, while the notice file for 2) becomes foo.jar.txt following
its stem. Since the file for 1) is a synthetic one, the actual name
isn't important. Avoid the conflict by appending a suffix
(_non_installable, but could be anything) to the file name for 1).

There still is a chance for the conflict; if the stem for "bar" is set
to "foo_non_installable". But practically, the chances are very low.

Bug: 139391334
Bug: 143700028
Test: m
Change-Id: Id50b30774bbf65cc180baf963a95ea56fe6eb74f
2019-11-04 10:30:34 +09:00
Peter Collingbourne
212c2696b7 Merge "Add support for $(TARGET_EXPERIMENTAL_MTE) in product configs."
am: 227ad08281

Change-Id: I2ca611f2c933509bef3756171ab319d449ad06d0
2019-11-01 19:13:51 -07:00
Peter Collingbourne
227ad08281 Merge "Add support for $(TARGET_EXPERIMENTAL_MTE) in product configs." 2019-11-02 02:00:22 +00:00
Yifan Hong
cb8e2755ff dynamic_partitions_info.txt: use dump-dynamic-partitions-info
Use the same procedure to avoid code duplication.
Note that dump-dynamic-partitions-info not only has more information,
but also changes keys:
- from X_size to super_X_group_size
- from X_partition_list to super_X_partition_list

delta_generator is updated to recognize these new keys as well.

Test: build ota package
Test: forrest
Change-Id: I6a973fc113fb80b352822a14991cad027c72cf06
2019-11-01 17:27:02 -07:00
Yifan Hong
60bfcc4fac Skip checking vendor partition size on AOSP targets
AOSP targets doesn't have INSTALLED_VENDORIMAGE_TARGET defined.

Fix dump-dynamic-partitions-info to filter out vendor
from dynamic partition lists.

Then, check_partition_sizes.py reads info without vendor
in dynamic partition list for AOSP targets.

Test: forrest
Bug: 143734706

Change-Id: I788196d854c1cf3eea218d534599f8bf642120fc
2019-11-01 17:04:27 -07:00
Peter Collingbourne
784db1a741 Add support for $(TARGET_EXPERIMENTAL_MTE) in product configs.
We are bringing up support for ARM Memory Tagging Extension in the platform,
but the required patches have not yet landed in the upstream kernel. This
change adds support for a product variable that products may set to true to
declare support for an experimental userspace interface to MTE. Setting the
variable to true causes a product configuration to be enabled which will
activate code in bionic and scudo that uses the interface.

This variable should not be set to true in shipping products because
the userspace interface has not been finalized and is subject to change.
Once the support patches have landed in the kernel, bionic and scudo will
be changed to use the official interface and the variable will be removed.

Bug: 135772972
Change-Id: Ie3d2619bc09c134e0da073c65805e7ec049687e1
2019-11-01 15:33:52 -07:00
Colin Cross
665ebbe471 Fix turbine classpath arguments in Make
We were passing "--classpath foo.jar --classpath bar.jar" to turbine,
it now wants (and may always have expected?)
"--classpath foo.jar bar.jar".

This is equivalent to Ib7e0ca64a34e236110f7b785d6a0fb51ed75567e in
Soong.

Test: m java
Change-Id: I061ebf302a215c66b1923056716b60bf0160d9bc
2019-11-01 13:35:17 -07:00
Colin Cross
f0add55066 Use system modules for turbine in Make
turbine supports taking system modules on the command line,
now that we target Java language level 1.9 and use system modules
by default switch turbine to match javac.

This is equivalent to Ieee07502151da0d5693bb8929213d495c039106b
in Soong.

Test: m java
Change-Id: Ib91c6f57b316f48f1ab819e4e1d2dc2e0ee42988
2019-11-01 13:34:46 -07:00
Yifan Hong
3a7c2ef7cc Reland "Move partition size checks to python script"
This reverts commit 0141e45b96.

Reason for revert: Fixed in follow-up CL
Test: forrest
Bug: 143734706

Change-Id: I007acf228d4fb4d6a16ae9089e3f04cf33a567bb
2019-11-01 11:41:26 -07:00
Ulya Trafimovich
5877cec1fa Disable dexpreopt on targets that do not include default ART config.
Dexpreopt build commands should only be generated on targets that
include build/make/target/product/runtime_libart.mk, which sets the
necessary variables such as PRODUCT_SYSTEM_DEFAULT_PROPERTIES that
contain default values passed to dex2oat. This file also sets a
variable PRODUCT_USES_DEFAULT_ART_CONFIG that is used in
build/make/core/dex_preopt.mk to decide if boot images should be
installed.

On some targets build/make/target/product/runtime_libart.mk is not
included. Prior to this patch, on such targets invalid dexpreopt
commands were generated, but not used, so they did not cause any
visible build failures. The invalid commands can be grepped as:

  lunch qemu_trusty_arm64-userdebug && m nothing \
    && fgrep -e '-Xms ' $ANDROID_BUILD_TOP/out/soong/build.ninja

In this case '-Xms ' is an ill-formed option passed to dex2oat (the
option expects one argument, but none is passed).

This patch makes the DisablePreopt variable passed from make to
soong more strict: it not only requires WITH_DEXPREOPT, but also
PRODUCT_USES_DEFAULT_ART_CONFIG. This means that dexpreopt commands
will not be generated on targets that do not include
build/make/target/product/runtime_libart.mk.

Test: lunch aosp_walleye-userdebug && m \
    && find $ANDROID_BUILD_TOP/out -name 'boot.art'
    # expect to find files in /out/target/product/walleye/system/framework/$ARCH/

Test: lunch qemu_trusty_arm64-userdebug && m \
    && fgrep -e '-Xms ' $ANDROID_BUILD_TOP/out/soong/build.ninja
    # expect empty output

Change-Id: I3d765ed0dd8b38236b8bdd5c6202bb1d3f45f904
2019-11-01 18:20:35 +00:00
android-build-team Robot
911d5e061c Version bump to QQ1A.191205.009 [core/build_id.mk]
Change-Id: I60b4e9893d1ef935dcfe8a04dc068541331d58a6
2019-11-01 16:33:07 +00:00
Andrei-Valentin Onea
57e2d5d502 Merge "Revert "Move partition size checks to python script""
am: 15e75e8807

Change-Id: Ib20566af43adc53146fe4c19f7773bc007d62e07
2019-11-01 08:51:16 -07:00
Andrei-Valentin Onea
15e75e8807 Merge "Revert "Move partition size checks to python script"" 2019-11-01 15:36:10 +00:00
Raff Tsai
0141e45b96 Revert "Move partition size checks to python script"
This reverts commit a4906cd306.

Reason for revert: b/143734706

Change-Id: I905bd9c0bfcbd123c8f9e78986bfcb5600a9eca9
2019-11-01 05:36:20 +00:00
Yifan Hong
9fc6b8d8c4 Merge "Move partition size checks to python script"
am: 8244f27722

Change-Id: I7e9f05ff4c25d70699ae79f5cdfb19597a81d722
2019-10-31 19:12:10 -07:00
Yifan Hong
8244f27722 Merge "Move partition size checks to python script" 2019-11-01 01:52:11 +00:00
Roland Levillain
ba88c3be5c Merge "Implement APEX JAR (Java library) absence checks for Core Libraries."
am: 374213db0d

Change-Id: I690908bea6727c8f26d76105e53740a4e6488f59
2019-10-31 12:22:29 -07:00
TreeHugger Robot
81e3eb8597 Merge "DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into stage-aosp-master" into stage-aosp-master 2019-10-31 18:38:43 +00:00
Yifan Hong
a4906cd306 Move partition size checks to python script
Easier to read and modify its logic.

Test: builds
Test: test_check_partition_sizes
Test: atest releasetools_test
Test: atest releasetools_py3_test
Change-Id: I73204664b64a0bcee7375fa6fca46758d5a2bb72
2019-10-31 11:22:20 -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
Xin Li
5cf7c45d0c DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into stage-aosp-master
Bug: 142003500
Change-Id: I635cde495c56988d324aeab6a278f4abfdea16d8
2019-10-30 11:46:29 -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
10954b52ee Merge "Remove module jacocoagent from TARGET_CORE_JARS." 2019-10-30 11:08:12 +00:00
android-build-team Robot
51edc9cb55 Version bump to QQ1A.191205.008 [core/build_id.mk]
Change-Id: I42ad4b0961b3af40f89ee8237e3bb1b7f658b1fc
2019-10-29 21:45:20 +00:00
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
Alistair Delva
15b5ad2d05 Merge "Build rules use private vars" 2019-10-29 02:21:01 +00:00
Yifan Hong
0fdd73b18f Merge "Include system_other.img in super.img by default" 2019-10-29 00:56:21 +00:00
Ryan Prichard
fe43a3f2cb Merge "Stop linking libdl.a into static bins" 2019-10-28 20:14:37 +00: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
Treehugger Robot
21403dc2df Merge "Replace framework.jar with framework-minus-apex.jar" 2019-10-28 11:40:09 +00:00
Pete Gillin
a466a58bbb Merge "Remove support for EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9." 2019-10-28 10:28:19 +00:00
Jiyong Park
44d357e1ff Replace framework.jar with framework-minus-apex.jar
Bug: 139391334
Test: m, device is bootable
Exempt-From-Owner-Approval: Approved internally
Merged-In: I281f841c164a4813ed4c436fb84680f5ade1ee1d
(cherry picked from commit 219d4ac2b2)
Change-Id: I281f841c164a4813ed4c436fb84680f5ade1ee1d
2019-10-28 09:55:33 +00:00
Pete Gillin
6a88bd49bc Remove support for EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9.
Prior to this change, setting that to "false" turned the default Java
language level back to 8. This change removes that option.

Also remove the unused make variable USE_OPENJDK9.

Bug: 115604102
Test: m java droid docs tests cts
Change-Id: I040cf83a2457227ffbcd1c62649e33b98c0c66f7
2019-10-25 16:55:54 +01:00
Yo Chiang
5eac77c735 Build rules use private vars
Create PRIVATE_TOOLS_PREFIX for VNDK build rules. So that the value of
$(my_prefix) is well-preserved.

Bug: 142350531
Bug: 141971626
Test: lunch aosp_cf_x86_go_phone-userdebug ; m nothing
Change-Id: I06f16708c7165cb909f0031182ffb96a462d6000
2019-10-25 22:14:59 +08:00
Ryan Prichard
acf8b0ff00 Stop linking libdl.a into static bins
libdl.a has a no-op dlopen, which breaks static libraries that need a real
dlopen. Instead of automatically linking libdl.a into static executables,
make it optional.

Until recently, the libunwind_llvm.a unwinder, used on arm32, needed the
no-op dladdr, but it's now built using -D_LIBUNWIND_USE_DLADDR=0.

The HWASan run-time uses dlsym and dladdr, so add a libdl dependency for
HWASan-built static binaries. We could also remove the dependency from
libclang_rt.hwasan_static-*.a, but this is also easy to do.

Bug: http://b/141485154
Test: bionic unit tests, device boots, verify that static and dynamic
   executables can throw/catch an exception
Test: verify that a static executable using dlopen doesn't link (unless it
   adds an explicit dependency on libdl)

Change-Id: Id26741f79dca50256a2dc23453af3026a6c88dca
2019-10-24 18:15:05 -07:00
android-build-team Robot
a62ba02133 Version bump to QQ1A.191205.007 [core/build_id.mk]
Change-Id: Ia315ea4c4351aebdad65b352dedafab51c62d782
2019-10-24 22:37:57 +00:00
changho.shin
a8f9f117cf Include system_other.img in super.img by default
Currently, only dist build makes super.img with system_other.
Let build system include system_other in super image by default.

Test: m -j & check built super.img
Bug: 142669000

Change-Id: I00a8815b30fa6fb8c62e204fdc35e046071bd401
2019-10-24 06:57:58 +00:00
Steven Moreland
12e476cb93 Merge "host_init_verifier: no HIDL_INTERFACE_HIERARCHY"
am: 9126041689

Change-Id: If3597954a216928add218c85a5934550f7e71e95
2019-10-23 16:13:58 -07:00
Steven Moreland
9126041689 Merge "host_init_verifier: no HIDL_INTERFACE_HIERARCHY" 2019-10-23 23:07:30 +00:00
Inseob Kim
65c91ff15a Fix and generate vndk snapshot entirely in Soong
- VNDK snapshot now respects stem and suffix.
- ld.config.txt is removed from snapshot as linkerconfig has become default.
- Soong builds entire snapshot, and make just calls dist-for-goals.

Bug: 142589718
Test: build and install snapshot
Test: development/vndk/snapshot/update.py with past version of snapshot
Change-Id: Ib99f1006d3553b1871b86ab168b1706fe47e1afb
2019-10-23 15:54:08 +09:00
Roland Levillain
e517577a45 Merge "Remove Core Library JARs from /system/framework."
am: 047f2fd43e

Change-Id: Ic25531c16a71452e659776765185adf8feac5eac
2019-10-22 10:51:10 -07:00
Roland Levillain
047f2fd43e Merge "Remove Core Library JARs from /system/framework." 2019-10-22 17:32:21 +00:00