Commit Graph

17 Commits

Author SHA1 Message Date
Andreas Gampe
907fb03273 Build: Add ART_BOOT_IMAGE_EXTRA_ARGS
Allow to modify the boot image compilation. Can be used to easily
dump initialization failures.

Bug: 27265238
Change-Id: I9d54c562a2e623b23b7c1dea9cdbe303786c95dd
2016-04-11 15:10:09 -07:00
Ying Wang
fbc5b9f56b Rebuild odex files in PDK fusion build.
To rebuild odex files of Java libraries and apps,
we store the jars/apks without stripping the classes.dex inside the
platform.zip. We also save the build variables that may affect how we
rebuild an odex in pdk_dexpreopt_config.mk in the platform.zip.
We store the files and configuration only for libraries/apps that get
installed to the system.img (or vendor.img).

In PDK fusion build, we auto-generate prebuilt module definitions for
the javalib.jar and package.dex.apk carried in the platform.zip, using
configuration stored in pdk_dexpreopt_config.mk.
With the prebult modules, we override the implicit rule that directly
copies the odex from the platform.zip.
To rebuild odex of javalib.jar, we added support for prebuilt shared Java
library to prebiult_internal.mk. An installable prebuilt Java library is
treated as shared Java library, i.e. with classes.dex in the jar instead
of a set of .class files.
For apks in the platform.zip, we install the stripped version from
platform files inside platform.zip, instead of the package.dex.apk,
using a new variable LOCAL_REPLACE_PREBUILT_APK_INSTALLED. We can't
strip package.dex.apk because we can't re-sign the stripped apk at this
point.

We generate prebuilt module only if it's not already defined in the
source tree.

Bug: 27543283
Change-Id: I9e146f8b713d6f57c397fd28d88c9ab700757ca1
(cherry-pick from commit 3a61eeb6cb)
2016-03-25 11:06:04 -07:00
Jeff Hao
5aabca204f Build: Build changes for multi oat/image support.
Use the --multi-image option to generate a preopted boot image. This
generates a separate oat file and image file output for each dex file
input.

Stop inlining core.

(cherry picked from commit d1d3fd933f)

Change-Id: Ibd23bc06d346ff404cabd88f7461f041af6016dd
2015-12-24 10:10:55 +00:00
Shinichiro Hamaji
9cb76922aa Do not use $? in recipe
Kati cannot support this automatic variable as ninja doesn't
have a feature for this.

Change-Id: Ibc3a18dc5739b5008b156d2672a626621e046f5a
2015-12-22 00:55:37 +09:00
David Srbecky
d8fae9a6a6 Pass --no-generate-debug-info to dex2oat.
The two flags have been merged and renamed in ART.

Change-Id: Iffc1dcc6764367239d6f45a3598cdb2c5d5d5013
2015-05-28 16:32:55 +01:00
David Srbecky
299d3f4960 Add --include-cfi compiler option.
Decouple generation of CFI from the rest of debug symbols.
This makes it possible to generate oat with CFI but without
the rest of debug symbols.

This is in line with intention of the .eh_frame section.
The section does not have the .debug_ prefix because it
is considered somewhat different to the rest of debug symbols.

Change-Id: I32816ecd4f30ac4e0dc69d69a4993e349c737f96
2015-04-13 19:50:51 +01:00
Brian Carlstrom
2bc19019e5 Remove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA
Bug: 18673991
Change-Id: I64261ef6a37df92eeef8552b8fd0a67157e4a034
2014-12-15 22:09:58 -08:00
Andreas Gampe
96a522037f Build: Support for compiled-classes file
Allow a compiled-classes file for pre-opting.

Bug: 18410571

(cherry picked from commit 4fec0bb265)

Change-Id: I8c69dd0fb8c04aaae0c4f062049cc9cce7d755c7
2014-11-18 15:09:51 -08:00
Igor Murashkin
97f28c63d4 core: Use WITH_DEXPREOPT_PIC=true to have dex2oat build pic oat files
When WITH_DEXPREOPT=true is set, if we also set WITH_DEXPREOPT_PIC=true
then the build will generate position-independent OAT images.

This means that all the system applications no longer need to be
relocated into /data/dalvik-cache and this can achieve saving disk space
at the cost of slightly slower running code.

Bug: 18035729

(cherry picked from commit da9f1a7e82)

Change-Id: Ifd517c842f48bf31568bf5ff56667298d422c2c0
2014-11-18 14:58:48 -08:00
Ian Rogers
a18a28305d Pass instruction set variant to dex2oat.
Also, add it to the ANDROID_BUILD_PROPERTIES.
Remove non-default instruction set features.
Bug: 18056890

Change-Id: I9169cdfecbb176f62b941852948222edc3f511fd
2014-11-08 17:07:23 -08:00
Ying Wang
20ebd2ef08 Introduce per-product per-module dex-preopt config
- Added LOCAL_DEX_PREOPT_FLAGS to pass extra flags to dex2oat.
- Added macro add-product-dex-preopt-module-config to specify almost
  arbitrary dex-preopt config/flags to modules in product
  configuration:
  $(call \
  add-product-dex-preopt-module-config,<module_name_list>,<config_or_flags>)
  How <config_or_flags> is interpreted is decided by
  dex_preopt_odex_install.mk and dex2oat. For now if it's "disable" we
  disable dexpreopt for the given modules; otherwise pass it to dex2oat as
  command line flags.
- If there are multiple configs for the same module in the product
  inheritance, the first takes precedence.
- Added PRODUCT_DEX_PREOPT_DEFAULT_FLAGS so you can specify default
  dex2oat flags in product configuration.
- Added PRODUCT_DEX_PREOPT_BOOT_FLAGS to specify flags of building boot.oat.

Bug: 17791867
Change-Id: I1b2955e8e51039e94d1ff43a3265a8d03598632c
2014-10-08 10:11:17 -07:00
Nicolas Geoffray
75c08b2118 Make which dex2oat version to use configurable.
Change-Id: Ic13cf6f9dfb117193a5101781945c501d138955c
2014-10-07 08:30:18 +00:00
Brian Carlstrom
a4331e35b6 Add --no-include-debug-symbols to avoid bloat in user builds
Bug: 16938924

(cherry picked from commit 91b9d01b6b)

Change-Id: I0b744e0aaacc11fe8983f22f56ffc546a07ae764
2014-08-28 18:10:42 -07:00
Alex Light
ce090d3f45 Make system use patchoat to relocate during runtime.
Change DexPreOpt to include patch information of all compiled files so
we can relocate at runtime.

Bug: 15358152

Change-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26
2014-08-05 10:22:09 -07:00
Colin Cross
dd2ff5541e build: fix host dex2oat runtime args
The dalvik.vm.* properties are in PRODUCT_DEFAULT_PROPERTY_OVERRIDES,
not PRODUCT_PROPERTY_OVERRIDES.
Use $(call func,args) for user defined functions
Prepend the property contents with -Xms or -Xmx when passing to
dex2oat.  This only worked before because DEX2OAT_XMS, etc. were blank
due to the first two  bugs, which resulted in --runtime-arg --runtime-arg
and anything starting with -- as the argument to --runtime-arg is
silently ignored.

Change-Id: Ifa30038b397355171fefcc5248eea033bb634036
2014-07-09 22:22:10 -07:00
Brian Carlstrom
cffe289dc6 Make dex2oat heap size product configurable [build]
Bug: 15919420
Change-Id: If92318a6e3d5b9c8c6a2d08a3371386fa5ad8f45
2014-07-08 11:33:45 -07:00
Ying Wang
b9aa5d43de Multilib support for odex
If the VM is libart and DEXPREOPT is enabled,
- For a Java library and the boot image, we build for both 1st arch and
  2nd arch.
- For an app, we build for the multilib arch the module is targeted for.
The odex file will be in <arch_name>/<module_name>.odex inside the same
dir where the jar/apk file gets installed.
Nothing changed if it's built for libdvm.

Bug: 14694978
Change-Id: I45118a83758b41d52d6c9e38f93f0ba2775a6c74
2014-05-18 22:04:58 -07:00