Commit Graph

13467 Commits

Author SHA1 Message Date
bohu
dbbd3311ae Merge "emulator: create qemu images for system,vendor"
am: 571e5d47b7

Change-Id: Id80d452017384769146879bec205f39da79e37ae
2017-08-01 01:56:12 +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
Mathieu Chartier
954551bb24 Merge changes Ic89cc4c0,I189cd144,Id51726ae,I8b777c88,Ia4573464, ...
am: dce396a70f

Change-Id: Id0d0ec4bc219b8fc0ce8b7bd13868d236b865153
2017-07-29 00:07:32 +00: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
Tobias Thierer
b95ebd36c5 Merge "Allow builds with costum toolchains."
am: 1d9689b3e7

Change-Id: I240c81333172090d3d36a14c3a23d32017d30d5b
2017-07-27 10:43:38 +00:00
Tobias Thierer
1e00ce0eaa Merge "Build: Experimental option to default to -source 1.9 -target 1.9"
am: 67352ffa1f

Change-Id: If8ddf113caef943aad5e0b6ebaee01a6f3e41a4c
2017-07-27 10:43:13 +00:00
Tobias Thierer
1d9689b3e7 Merge "Allow builds with costum toolchains." 2017-07-27 10:41:18 +00:00
Tobias Thierer
67352ffa1f Merge "Build: Experimental option to default to -source 1.9 -target 1.9" 2017-07-27 10:40:43 +00:00
Colin Cross
02e0f6c1db Merge "Revert "Compile with javac by default""
am: 9143549df7

Change-Id: I76ffe1d799adc274ac8f171b897935998e5999ce
2017-07-27 06:11:41 +00:00
Colin Cross
9143549df7 Merge "Revert "Compile with javac by default"" 2017-07-27 06:04:02 +00:00
Colin Cross
36062e8076 Revert "Compile with javac by default"
This reverts commit 268dfa4d91.

Bug: 36902714
Change-Id: I69edf1a52300b50c45bd02c203f8843963357506
2017-07-27 06:02:15 +00:00
Jiyong Park
8f793af35c Merge "Don't add .vendor suffix for vendor-only modules"
am: 28989a9a22

Change-Id: I8f123f26ec3eb0c1d6607a21dfa7996284a68119
2017-07-27 00:24:42 +00:00
Colin Cross
6d6e0f7c75 Merge "Compile with javac by default"
am: 262d597530

Change-Id: I5c75de4976004dccdd23f542030438302674c081
2017-07-27 00:21:37 +00:00
Jiyong Park
a9c4c71756 Don't add .vendor suffix for vendor-only modules
Soong now adds .vendor suffix only for modules having both core and
vendor variants. Furthermore, names listed in LOCAL_SHARED_LIBRARIES
are correct (= have .vendor suffix when the dependent lib has variants).
Therefore, make does not need to force add .vendor suffix when parsing
modules from soong.

Bug: 37480243
Test: BOARD_VNDK_VERSION=current m -j <name> is successful, where <name>
is one of the vendor-only libraries in Soong. (i.e.
android.hardware.renderscript@1.0-impl)
Test: m -j does not break anything

Change-Id: Id8d0d01313c63496a10de4cd3ddb9f75180efef6
2017-07-27 08:54:43 +09:00
Colin Cross
262d597530 Merge "Compile with javac by default" 2017-07-26 23:52:34 +00:00
Colin Cross
268dfa4d91 Compile with javac by default
javac is replacing jack as the default compiler for platform builds.

Bug: 36902714
Test: m -j checkbuild
Test: https://android-build.googleplex.com/builds/view-workplan?viewType=Table&workplanId=L50600000086240009&nodeType=Trybot
Test: sailfish-userdebug boots and basic interactions work
Test: art tests pass
Test: libcore tests pass
Change-Id: I1c3857f64eafa445ad1b9dd94eff85bef05f4649
2017-07-26 23:42:23 +00:00
Dan Willemsen
a1df6ed0ee Merge "Only run Kati twice on a clean build due to clean_steps.mk"
am: 76a75aa72d

Change-Id: I9736f9161dd05797e84e0a92fe4a2234e2c008eb
2017-07-26 23:42:12 +00:00
Dan Willemsen
76a75aa72d Merge "Only run Kati twice on a clean build due to clean_steps.mk" 2017-07-26 23:28:00 +00:00
Dan Willemsen
10e9d25035 Merge changes I863200b2,Ifdd9663b
am: 770a498e99

Change-Id: Id9e3dd9d5e8ac3d85d5203dd6430243d9daf01bf
2017-07-26 21:45:04 +00:00
Dan Willemsen
770a498e99 Merge changes I863200b2,Ifdd9663b
* changes:
  Run `uname -sm` once, don't use python for HOST_OS_EXTRA
  Stop calling `java -version`, remove HOST_JDK_IS_64BIT_VERSION
2017-07-26 21:31:05 +00:00
Tobias Thierer
d61f28bf56 Build: Experimental option to default to -source 1.9 -target 1.9
Enabled via:

export EXPERIMENTAL_USE_OPENJDK9=true

Other nonempty values of EXPERIMENTAL_USE_OPENJDK9 will
allow OpenJDK 9 toolchains, but will still default to
-source 1.8 and -target 1.8.

Note that -source 1.9 and -target 1.9 does not currently
successfully build.

Test: Treehugger.
Bug: 38177569

Experimental flag to set LOCAL_JAVA_LANGUAGE_VERSION := 1.9

Change-Id: I9eb881b3fbd1806984a132f6da7b5a4cc6612247
2017-07-26 22:24:15 +01:00
Dan Willemsen
ce7f8dd15a Run uname -sm once, don't use python for HOST_OS_EXTRA
This saves 20-50ms for `lunch` (~7-10%), and double that for every build
execution.

Test: Check HOST_OS_EXTRA on Linux & Mac
Change-Id: I863200b2287c8867f40606237895b1d3ad91e1b3
2017-07-26 10:49:22 -07:00
Dan Willemsen
dc068b0762 Stop calling java -version, remove HOST_JDK_IS_64BIT_VERSION
All users of this variable have been removed. This command was adding
50-175ms to `lunch` (~15-30%), and was running at least twice (serially)
in every build too.

Test: cs/HOST_JDK_IS_64BIT_VERSION
Test: prebuilts/jdk/jdk8/linux-x86/bin/java -version, is 64-bit.
Change-Id: Ifdd9663b010ec45918b29ac037849f49c8cd8f69
2017-07-26 10:49:04 -07:00
Tobias Thierer
1b53ea0908 Allow builds with costum toolchains.
Android bundles an OpenJDK-derived toolchain to avoid issues with
unsupported toolchains. For development / experiment purposes, this
CL the toolchain to be overridden via OVERRIDE_ANDROID_JAVA_HOME.

It is an error for OVERRIDE_ANDROID_JAVA_HOME to be set but not
point to a valid toolchain, but this error is not explicitly
checked for.

Bug: 38177295
Test: Treehugger

Change-Id: I72f641f560501e498f9c86a4380f19941fca11ad
2017-07-26 17:54:11 +01:00
Jiyong Park
9a4bd94594 Merge "Apks are again allowed to use vendor libs as before"
am: 2aef19528e

Change-Id: I8ae67b25877fa3fc9c600811863e04eee8fda990
2017-07-26 00:54:38 +00:00
Treehugger Robot
2aef19528e Merge "Apks are again allowed to use vendor libs as before" 2017-07-26 00:45:24 +00:00
Colin Cross
fe3c61839f Merge "Enable ubsan check flag in build"
am: 1907b9905e

Change-Id: If116ca0f0493dfb4f96b95227169faa8efc99e6d
2017-07-25 17:56:07 +00:00
Colin Cross
1907b9905e Merge "Enable ubsan check flag in build" 2017-07-25 17:48:06 +00:00
Colin Cross
bac4bd6973 Merge "Make JAVA_HOME absolute inside build"
am: 194893ee6c

Change-Id: I0772f8063ee6a31cdc02a3b40fdadc298392762d
2017-07-25 08:13:31 +00:00
Treehugger Robot
194893ee6c Merge "Make JAVA_HOME absolute inside build" 2017-07-25 04:37:40 +00:00
Dan Willemsen
e6f756091c Only run Kati twice on a clean build due to clean_steps.mk
Write into a temp file, then use `cmp` to determine whether to update
the actual file. This means that we'll only run Kati twice on a clean
build, since we'll omit the redundant write during the regeneration
check.

Simplify writing using $(file >) instead of $(shell), which doesn't have
character count limitations.

Bug: 35970961
Test: m clean; m -j nothing; m -j nothing; m -j nothing
Test: Ensure clean_steps.mk is equivalent before/after
Change-Id: Id574f416647434ab8d11ed3481da21b55e8797b7
2017-07-24 21:16:38 -07:00
Colin Cross
3a1544ab1a Make JAVA_HOME absolute inside build
Export JAVA_HOME as an absolute path to commands running inside
a build.

Should fix errors invoking gradle from inside a build:
ERROR: JAVA_HOME is set to an invalid directory: prebuilts/jdk/jdk8/linux-x86
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Test: treehugger
Change-Id: I16e4482b2d74ede0843715be3b08c65ce33cf403
2017-07-24 19:27:31 -07:00
Colin Cross
d35fe2c55e Merge "Use java prebuilts"
am: 45d2ef40f2

Change-Id: Icb9e7cd6ad37a5ff37fb72d12a058be79dbabf68
2017-07-25 00:47:17 +00:00
Colin Cross
45d2ef40f2 Merge "Use java prebuilts" 2017-07-25 00:39:42 +00:00
Steve Muckle
fb2714e61c fix builds on macOS when kernel modules are used
The mac implementation of sed has different requirements for the -i
option. Instead of using that, just redirect the output to the final
location of modules.dep, since it's being copied in the very next
line anyway.

Bug: 38268091
Test: run build with kernel modules on macOS
Merged-In: I49e4a1a69f01139ef47711ab1223d3a8e5cda568
Change-Id: I49e4a1a69f01139ef47711ab1223d3a8e5cda568
2017-07-21 15:24:51 -07:00
Tri Vo
ecf83a839f package modules.alias onto device
Test: device builds and boots, vendor/lib/modules/modules.alias appears
on device.
Merged-In: I668a396ccd11e4eb599e1f6aa2906400ac78f02b
Change-Id: I668a396ccd11e4eb599e1f6aa2906400ac78f02b
2017-07-21 15:24:21 -07:00
Colin Cross
e99de69665 Merge "Disable desugaring try-with-resources"
am: 28794da1c0

Change-Id: I5a6d131e689922586482d950e933e5ea86e7729e
2017-07-21 20:52:54 +00:00
Colin Cross
28794da1c0 Merge "Disable desugaring try-with-resources" 2017-07-21 20:48:45 +00:00
Ivan Lozano
a458ab05f5 Merge "Fix exclusion overriding local integer_overflow."
am: b549e826dd

Change-Id: I42dd978a5393d903be7fda66d64a4e39387e0b17
2017-07-21 20:20:47 +00:00
Ivan Lozano
b4749cb0fc Fix exclusion overriding local integer_overflow.
INTEGER_OVERFLOW_EXCLUDE_PATHS should only apply to the global sanitizer
setting, and should not override local module settings. This pulls out
the check so it occurs earlier and does not interfere with local
settings. This makes Make consistent with Soong's behavior as well.

Bug: 30969751
Test: Created a test build file with this explicitly set, excluded the
path, and checked if it was still being sanitized.

Change-Id: I9020d92bae136b6087d37f71d5337acaefe850b4
2017-07-21 10:53:13 -07:00
Tobias Thierer
cdcb785c3d Merge "droiddoc: Fix trailing ':' in -classpath, -sourcepath values"
am: 40594041f4

Change-Id: I5bd49c9a5e199f797781dbb14f3bd1bc2915c1ad
2017-07-21 09:48:36 +00:00
Tobias Thierer
40594041f4 Merge "droiddoc: Fix trailing ':' in -classpath, -sourcepath values" 2017-07-21 09:43:30 +00:00
liuchao
bb2b4bce5b Enable ubsan check flag in build
Ubsan is currently support ARM/ARM64,
so It's OK to enable the build Flag

Test: build test module with flags in Android.mk:
      LOCAL_SANITIZE := undefined
      LOCAL_SANITIZE_DIAG := undefined

BUG:38250996
Change-Id: I6c640bad67353cc736640b2e3c4a0b1812dde3fc
2017-07-21 02:31:09 +00:00
Colin Cross
bf4ac7a82f Disable desugaring try-with-resources
Desugaring try-with-resources is not necessary for platform builds,
and triggers some problems for apps built as part of the platform
that target SDK versions before 19.  Disable all try-with-resource
desugaring.

Bug: 63180735
Bug: 63900665
Bug: 63901645
Test: m -j ANDROID_COMPILE_WITH_JACK=false checkbuild
Change-Id: I98b827aa1e80b43e6eb7b58254c23c7a4f7dc52d
2017-07-20 15:07:22 -07:00