Commit Graph

34593 Commits

Author SHA1 Message Date
Tobias Thierer 5ae6434575 Merge "Omit module-info.class when unzipping jar files." 2017-08-11 13:05:02 +00:00
Treehugger Robot cb674cf05d Merge "Phony module vndk_package is added" 2017-08-11 01:38:15 +00:00
Jiyong Park a5535733f1 Phony module vndk_package is added
This phony module aggregates all the VNDK-related libraries so that they
can be installed to the system partition simply by adding 'vndk_package'
to PRODUCT_PACKAGES. This is to sneure that all VNDK libraries are
installed even when there is no vendor library using some of the VNDK
libs (especially when building system image only).

Bug: 64013660
Test: BOARD_VNDK_VERSION=current m -j vndk_package
Merged-In: I3a14a7eaaffd6a7f3258a4be59b1c5813153714d
Change-Id: I3a14a7eaaffd6a7f3258a4be59b1c5813153714d
2017-08-10 14:15:01 +09:00
Jeff Gaston ea98ab2d3c Merge "Consolidate build system usage documentation into source control" 2017-08-09 22:17:43 +00:00
Jeff Gaston c6dfc4e95a Consolidate build system usage documentation into source control
Bug: 62201421

Test: make help
Change-Id: I7a7c917f767590657761396dd0545224ff98f27b
2017-08-09 12:58:30 -07:00
Treehugger Robot 374f753211 Merge "logcat: permit transition to Android.bp" 2017-08-08 23:06:25 +00:00
Treehugger Robot 9758900b56 Merge "Fix the typo: "desugar-classpath" to "desugar-bootclasspath"" 2017-08-08 23:01:47 +00:00
Mark Salyzyn 719790f4d4 logcat: permit transition to Android.bp
Permit transition of logcat to Android.bp by moving the debug
target logpersist.start to the PRODUCT_PACKAGES_DEBUG list.

Test: compile
Change-Id: I6cfd4c40f848a2ff2661e3692fa8cd69ed99e8c9
2017-08-08 14:24:55 -07:00
Nan Zhang f4571792f7 Fix the typo: "desugar-classpath" to "desugar-bootclasspath"
Test: runs "m -j checkbuild tests cts", and then --bootclasspath_entry
shows up in desugar command.

Change-Id: Ibcc8a3f51438723151c57f79e5a1184350efbd30
2017-08-08 13:38:59 -07:00
Tobias Thierer 2bdbb6e935 Omit module-info.class when unzipping jar files.
During the Android build process, multiple .jar files are
unzipped into the same directory. If the .jar is an OpenJDK 9
modular jar (with a module-info.class in the root directory),
the last module-info.class extracted will overwrite any earlier
module-info.class files extracted, and will cause all extracted
class files to be considered part of that module.

Therefore, this would break compilation under OpenJDK 9 (with
-target 1.9 -source 1.9). This CL fixes this by omitting the
module-info.class file (if present) when extracting the .jar.

This essentially turns any modular jar into a regular jar,
replacing the module with corresponding classes on the classpath.
This is sufficient for now because Android does not currently
support module dependencies.

Test: Treehugger
Bug: 38177569
Change-Id: Ia184e64d2f24b8ca79aeab1c00bd5da0386530bf
2017-08-08 20:09:54 +01:00
Treehugger Robot e1963e2511 Merge "Fix the build when using findleaves.py" 2017-08-08 19:00:51 +00:00
Dan Willemsen 34626e5386 Fix the build when using findleaves.py
This doesn't seem to affect the Kati emulation (at least on Linux), but
findleaves.py on both Mac and Linux checks for duplicate files (via
inode) and only emits build/{target,tools}/Android.mk instead of that
and build/make/{target,tools}/Android.mk.

Bug: 64397960
Test: build/tools/findleaves.py --prune=.git --prune=.repo --dir=.  Android.mk
Test: m -j signapk
Change-Id: Ie6219a809e403e6cc9371b5c0370c7925a592a0d
2017-08-08 09:45:12 -07:00
Jeff Gaston 6ab53d7211 Merge "Remove the need to find Android.mk files via directory symlinks" 2017-08-08 00:05:09 +00:00
Jeff Gaston 5c1f3fd068 Remove the need to find Android.mk files via directory symlinks
Bug: 64397960
Test: m -j
Change-Id: I5b77dd654dfced63900913c447b5448b632158d7
2017-08-07 14:21:20 -07:00
Treehugger Robot 5848fedea8 Merge "Add dirty-images-objects handling to boot image build." 2017-08-05 00:55:48 +00:00
Treehugger Robot e2b98ace94 Merge "Revert "Revert "Copy resources from classes.jar when using AAPT2""" 2017-08-04 20:44:15 +00:00
Colin Cross 303567c922 Revert "Revert "Copy resources from classes.jar when using AAPT2""
This reverts commit a7e336d17a.

Reapplies I6649f7f2fbf63ff5001f4731e22960f857726c70 with fix
for jack builds.

Bug: 64272170
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L93000000088657848&nodeType=Trybot
Change-Id: Id66aebfc2c26a4467e6cf25e4372080882f0b286
Merged-In: Id66aebfc2c26a4467e6cf25e4372080882f0b286
(cherry picked from commit 6fedebf936)
2017-08-04 09:35:13 -07:00
Calin Juravle 1a7b46bf71 Merge "Replace -classpath with --class-loader-context for preopt" 2017-08-03 20:57:38 +00:00
Jeff Hao b454ee195a Add dirty-images-objects handling to boot image build.
Allows grouping of classes with dirty static fields to be grouped
together in the image to have fewer dirty pages.

(cherry-picked from commit 865d54caf2)

Bug: 62554875
Test: mm test-art-host

Merged-In: I2486d2704d74a192f1ecdc02589e569b61efa4ae
Change-Id: I2486d2704d74a192f1ecdc02589e569b61efa4ae
2017-08-03 11:04:11 -07:00
Treehugger Robot 138c7baabe Merge "clang: Allow LOCAL_CLANG exception for device/google/contexthub project" 2017-08-03 16:31:57 +00:00
Treehugger Robot 577ff4730f Merge "Add PLATFORM_VERSION_FUTURE_CODENAMES." 2017-08-03 02:21:27 +00:00
Calin Juravle 965f8aec4c Replace -classpath with --class-loader-context for preopt
Use --class-loader-context to pass the context to dex2oat instead of using
runtime arguments.

In preparation to simplify dex2oat handling of contexts.

Bug: 38138251
Test: make & check that the prebuilds have '&' as their classpath key
Change-Id: Iad2fc4364173f59f41886556222ec69f87a0bd52
2017-08-02 17:19:27 -07:00
Dan Albert cd38b86016 Add PLATFORM_VERSION_FUTURE_CODENAMES.
PLATFORM_VERSION_ALL_CODENAMES isn't actually all the code names, just
the ones active in our current target. We need the list of all targets
so we can validate code names in NDK stub templates even if they're in
the future. Unfortunately, all_codenames has been baked into
build.prop for ages, so we're stuck with this name. Improve the
comments and add PLATFORM_VERSION_FUTURE_CODENAMES to cover to cover
the future targets.

Test: make checkbuild
Test: check $ANDROID_PRODUCT_OUT/system/build.prop
Bug: None
Change-Id: I81fed6f761e5362ef3050be9d1e3fb17739feadd
2017-08-02 17:17:41 -07:00
Colin Cross cf021094f1 Merge "Clean jack intermediates" 2017-08-02 17:02:03 +00:00
Treehugger Robot 9bd6605abe Merge "Vendor modules in make also have __ANDROID_VNDK__ defined." 2017-08-02 03:39:33 +00:00
Yifan Hong d7aa8417de Vendor modules in make also have __ANDROID_VNDK__ defined.
Bug: 64277220
Test: BOARD_VNDK_VERSION m -j
Change-Id: Ia9811ea526d0878b539c8c3da9e82e6bf33fe8e8
Merged-In: Ia9811ea526d0878b539c8c3da9e82e6bf33fe8e8
2017-08-01 18:54:10 -07:00
Treehugger Robot 5af2027e34 Merge "Revert "Revert "emulator: create qemu images for system,vendor""" 2017-08-01 23:16:25 +00:00
Dmitry Shmidt 795bed9329 clang: Allow LOCAL_CLANG exception for device/google/contexthub project
It is built by non-eabi gcc

Bug: 35666637
Test: Manual

Change-Id: I10b4364b66f6cad907b1271250506500aeb11fd5
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2017-08-01 15:48:03 -07:00
Alexey Polyudov 1e8c34b95f Merge "build: aux: Fix link type checking for AUX builds" 2017-08-01 22:46:20 +00:00
Alexey Polyudov 55ebe631b4 build: aux: Fix link type checking for AUX builds
AUX build environent is volatile and is only instantiated in
a context of AUX-aware module.
link-type checking is happening outside such context, and
is not able to correctly determine AUX build dependencies.

1. Save enough of context in LINK_TYPE variable;
   Use AUX-<variant-name> instead of AUX
2. Load correct set of AUX meta build vars before
   building link_type rules

Bug: 62060489
Test: make auxiliary

build no longer tries to access "/STATIC_LIBRARIES" path

Change-Id: I9764d4a0740da1c55a6f8429398872fc4362942c
2017-08-01 13:37:35 -07:00
Colin Cross bc291e63a0 Clean jack intermediates
Jack is no longer the default java compiler, clean the intermediates
to save space.

Bug: 36902714
Test: manual
Change-Id: I368442c8ad71eb5839c52839f2aa6ca55cf20bdd
2017-08-01 13:12:40 -07:00
Bo Hu f0d50bbef0 Revert "Revert "emulator: create qemu images for system,vendor""
This reverts commit 9b99ddc8a5.
and add syste-qemu.img to the dependency list of sdk target

Test: build sdk target successfully

Change-Id: Idb0bee56275f3bfe33ba7d29463e4b8e0699ec33
2017-08-01 13:00:53 -07:00
Colin Cross 6ce5a428ae Merge "Compile with javac by default" 2017-08-01 18:24:12 +00:00
Bo Hu a2ea9626e5 Merge "Revert "emulator: create qemu images for system,vendor"" 2017-08-01 06:52:44 +00:00
Bo Hu 9b99ddc8a5 Revert "emulator: create qemu images for system,vendor"
This reverts commit b5d0503758.

Change-Id: Ie46a3a3dd99dec42673b3e3bd5b9085ca0480a8d
2017-08-01 06:50:07 +00:00
Treehugger Robot 94be321cae Merge "Fix test suite zip generation on mac" 2017-08-01 03:51:28 +00:00
Colin Cross f3a4340435 Fix test suite zip generation on mac
Don't use sed -i, it requires an argument on mac and is eating the
-e parameter, which causes the command to not be applied.

Also clean up the temporary list files so they don't clutter up
$OUT.

Test: m -j device-tests
Bug: 64226094
Change-Id: Ie71820fc2d1cd812717bf0c156af011ca723e9f6
2017-08-01 01:51:30 +00:00
Treehugger Robot 571e5d47b7 Merge "emulator: create qemu images for system,vendor" 2017-08-01 01:49:39 +00:00
bohu b5d0503758 emulator: create qemu images for system,vendor
For raw system.img and vendor.img do not have
partition table and init refuses to mount them
in first stage mounting.

For emulator build:
create partitioned system-qemu.img for system.img;
create partitioned vendor-qemu.img for vendor.img
if applicable.

Change-Id: I64fdcdafc303cf2f74a1e96653e7afe259f0af98
2017-07-31 16:28:40 -07:00
Treehugger Robot 218a0c0c70 Merge "Continue using the real make if -C is used" 2017-07-29 08:11:32 +00:00
Treehugger Robot dce396a70f Merge changes Ic89cc4c0,I189cd144,Id51726ae,I8b777c88,Ia4573464, ...
* changes:
  Add support for using profiles for boot images
  Add PRODUCT_SYSTEM_SERVER_DEBUG_INFO property
  Add product system server compiler filter property
  Allow custom compiler filters for system server jars
  Install preopted profiles on device
  Default profile usage based on the existence of the profile
  Use speed-profile instead of quicken for the profile case
2017-07-29 00:01:09 +00:00
Dan Willemsen e984224899 Continue using the real make if -C is used
To allow building other make-based systems from the top of the android
tree.

Bug: 64145979
Test: get_make_command
Test: get_make_command -C
Test: get_make_command -C.
Test: get_make_command -C .
Test: get_make_command -j test
Test: get_make_command test-C
Test: get_make_command " -C"
Test: make
Test: make -C.
Change-Id: I406dd2706f19e5d2a6afdff441335f4e01ba6d12
2017-07-28 21:08:12 +00:00
Colin Cross 75b50421af Compile with javac by default
javac is replacing jack as the default compiler for platform builds.
Leave it on for unbundled builds, we don't have a solution for lambdas
in unbundled builds yet (b/62038127).

Temporarily allow products to continue to default to jack by setting
PRODUCT_COMPILE_WITH_JACK=true.

This reapplies I1c3857f64eafa445ad1b9dd94eff85bef05f4649.

Bug: 36902714
Test: m -j checkbuild
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L50600000086240009&nodeType=Trybot
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L68900000086676531&nodeType=Trybot
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L37200000086753998&nodeType=Trybot
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L74600000087054271&nodeType=Trybot
Test: sailfish-userdebug boots and basic interactions work
Test: art tests pass
Test: libcore tests pass
Change-Id: Icd1b549cd8a010758a6e5d98b39569fcd1825f60
2017-07-28 13:01:32 -07:00
Mathieu Chartier a61acf62c9 Add support for using profiles for boot images
Added two product flags:
PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION

If PRODUCT_USE_PROFILE_FOR_BOOT_IMAGE is enabled (default false), a
art profile is used to create the preopted boot image. This profile
is also passed to the runtime in AndroidRuntime.cpp.

The profile is created from the
PRODUCT_DEX_PREOPT_BOOT_IMAGE_PROFILE_LOCATION variable that defaults
to "frameworks/base/boot-image-profile.txt".

(cherry picked from commit 77226f6333)

Bug: 37966211
Test: make and flash

Merged-In: Ic89cc4c0c4d39aa9726843f5d9c2fb1dedeb7885
Change-Id: Ic89cc4c0c4d39aa9726843f5d9c2fb1dedeb7885
2017-07-28 11:17:32 -07:00
Mathieu Chartier f0db908ea7 Add PRODUCT_SYSTEM_SERVER_DEBUG_INFO property
Used for specifying if a product should get system server mini debug
info. Defaults to true.

Can be disabled by doing
PRODUCT_SYSTEM_SERVER_DEBUG_INFO := false

The property overrides WITH_DEXPREOPT_DEBUG_INFO, so if
PRODUCT_SYSTEM_SERVER_DEBUG_INFO is true but
WITH_DEXPREOPT_DEBUG_INFO is false, system server will have mini
debug info.

(cherry picked from commit 94f5f93236)

Bug: 62862291
Test: make

Merged-In: I189cd144ce3ade5f02855db022874c8dd45cbdf3
Change-Id: I189cd144ce3ade5f02855db022874c8dd45cbdf3
2017-07-28 11:17:24 -07:00
Mathieu Chartier 6228ec2d07 Add product system server compiler filter property
The product only needs to specify
PRODUCT_SYSTEM_SERVER_COMPILER_FILTER. This determines what compiler
filter system server jars are compiled with.

(cherry picked from commit 6a90210c62)

Test: update marlin device
Test: make and look at services.odex

Bug: 62356545

Merged-In: Id51726ae03576d7b4eb784b861158bb451c39deb
Change-Id: Id51726ae03576d7b4eb784b861158bb451c39deb
2017-07-28 11:17:17 -07:00
Mathieu Chartier abcf66b538 Allow custom compiler filters for system server jars
Passing down a compiler filter in LOCAL_DEX_PREOPT_FLAGS or
PRODUCT_DEX_PREOPT_DEFAULT_FLAGS will no longer always get
overridden to speed.

(cherry picked from commit b8d3cc02cd)

Bug: 62356545
Test: make and flash

Merged-In: I8b777c8881cba6b11cda56d27f0a714c92d70d94
Change-Id: I8b777c8881cba6b11cda56d27f0a714c92d70d94
2017-07-28 11:17:09 -07:00
Mathieu Chartier 98f44b7f20 Install preopted profiles on device
They are stored in /system/etc/profiles/, these will be copied to
the over the data profiles during fist boot. This means is required
to avoid missing JIT samples for the preopt compiled methods.

(cherry picked from commit 44c9c076d3)

Bug: 38032017

Test: make and flash
Test: adb shell ls -l /system/etc/profiles/

Merged-In: Ia4573464ac39c4720e0d9e8a29b8ea4213bd9d78
Change-Id: Ia4573464ac39c4720e0d9e8a29b8ea4213bd9d78
2017-07-28 11:17:00 -07:00
Mathieu Chartier fcc8d8b26d Default profile usage based on the existence of the profile
Currently this only checks vendor/google_data/art_profile, but the plan
is to use a per product directory in the near future.

(cherry picked from commit 6324c2d291)

Bug: 38032017
Test: make and make sure the profile was used (calculator).

Merged-In: I8de6484dbcac5fc040ad70f97e97d193b317af8c
Change-Id: I8de6484dbcac5fc040ad70f97e97d193b317af8c
2017-07-28 11:16:53 -07:00
Mathieu Chartier 229d0534dc Use speed-profile instead of quicken for the profile case
Reduces calculator launch from 354 -> 325 with a profile.

(cherry picked from commit c5536ffbd3)

Bug: 38032017

Test: mm

Merged-In: I795a2d3f4db5546be4d77c3716e69d20d8f23549
Change-Id: I795a2d3f4db5546be4d77c3716e69d20d8f23549
2017-07-28 11:16:43 -07:00