Commit Graph

34 Commits

Author SHA1 Message Date
Joe Onorato 401ffaeb75 Turn off excess printing during the build which makes errors harder to find.
Change-Id: I588de5ddc0aa7dcaacc4ea185c13c2fa3748888a
2016-03-09 15:25:07 -08:00
Colin Cross 52dcb2f816 Install boot.art extra files individually
The rule that builds boot.art also produces boot.oat, boot-*.art, and
boot-*.oat as a side effect, and the install rule for boot.art was
installing them using *.art and *.oat.  This meant that PDK builds had
no rule to install the extra files, so it used the ones from the
platform.zip file instead of the locally built ones.

Generate a list of the files that should be produced by the boot.art
build, and manually create install rules for them that depend on the
built boot.art and are depended on by the installed boot.art.

Bug: 27546601
Change-Id: I9734491c3179bca2d4b2ae13b0c6a03e4c26b0b2
2016-03-08 18:00:05 -08:00
Jeff Hao d1d3fd933f 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.

Change-Id: I4437a2d43bc9b9695516bc4b90a5b59a147e13d5
2015-12-23 17:37:35 -08:00
Ying Wang c01f2dcb10 Disable .toc optimization for host modules.
Host binaries may be run during the build process and the internal
implementation of the shared libraries makes a difference for the build
result. This change makes sure host tools get re-linked and re-run when
any of its dependency libraries gets updated.
DEX2OAT is such a host tool. We also changed DEX2OAT as full dependency
of dex-preoptimization, so we rebuild the odex files if DEX2OAT itself,
or any dependency libraries changed.

Bug: 24597504
Change-Id: Idf0d9be82ccebd826d9c5b405a39cff437e0af29
2015-12-15 10:00:19 -08:00
Fredrik Roubert 8a3dd242ac Remove $(DEX2OAT) from DEX2OAT_DEPENDENCY when USE_DEX2OAT_DEBUG is set.
Currently, DEX2OATD_DEPENDENCY is created by appending $(DEX2OATD) to
the value of DEX2OAT_DEPENDENCY and then if USE_DEX2OAT_DEBUG is set,
DEX2OAT_DEPENDENCY is set to DEX2OATD_DEPENDENCY, adding a dependency
on $(DEX2OAT) even in configurations where this will not be built.

This change removes DEX2OATD and DEX2OATD_DEPENDENCY entirely to instead
assign dex2oat or dex2oatd to DEX2OAT depending on USE_DEX2OAT_DEBUG,
making it possible to build with these flags set:

USE_DEX2OAT_DEBUG=true
ART_BUILD_HOST_NDEBUG=false
ART_BUILD_HOST_DEBUG=true
ART_BUILD_TARGET_NDEBUG=false
ART_BUILD_TARGET_DEBUG=true
make build-art-host

Change-Id: I4fa75d1b7e9751c73c43ec943fd8446cc231a070
2015-07-28 11:54:08 -07: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
Richard Uhler 820fe32d46 Store odex files in oat/<isa>/ directory.
Previously odex files were stored alongside the dex location as:
  dex location: /foo/bar/base.apk
  odex location: /foo/bar/<isa>/base.odex

This changes where odex files are stored, adding an "oat" directory:
  dex location: /foo/bar/base.apk
  odex location: /foo/bar/oat/<isa>/base.odex

See also the corresponding change in platform/art and
platform/frameworks/native.

Bug: 19550105
Change-Id: I4c6be4f0c41ff175904846db8e360c4af815b265
2015-03-18 12:41:31 -07:00
Andreas Gampe 06d86e929d Build: Fail preopting apps when there are verifier errors
Expectation is that classes in pre-compiled apps should be structurally
sound and not cause a hard failure.

Bug: 19606409
Change-Id: Idc9da4d4c6bd259555671c657d3414a97940717f
2015-03-05 19:18:18 -08:00
Nikola Veljkovic a57aaa3664 [MIPS64] Set ART base address for mips64
Set ART base address for mips64 to the same value as for mips32.

Change-Id: Idd3a05c87867bce9eb769cfec412102944703a43
2014-12-23 13:50:18 +01: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
Ying Wang 0c9b3bac65 Install preloaded-classes as a standalone configuration file
Install preloaded-classes as a standalone configuration file
/system/etc/preloaded-classes, so we can configure different file per product.
To override the default frameworks/base/preloaded-classes, just override
in your product configuration makefile with PRODUCT_COPY_FILES before it
inherits from build/target/product/base.mk: if there are multiple items
in PRODUCT_COPY_FILES with the same destination, the first one takes
precedence.

Bug: 18305157
Change-Id: I937632b4a1aa73310ec90e73fd708fbd0c704a21
2014-11-17 11:26:29 -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 4c0c390f30 Fix typo.
Change-Id: I738ad878a2961d118b5a89bf7d434606df2fad92
2014-10-07 11:17:09 +01: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
Ian Rogers 87f0d006f2 Vary non-image Xmx for dex2oat on MIPS.
The image Xmx is already fixed at 64m. The issue is in the non boot image case.

Change-Id: Idd508187ce8ac3d3c8dbe357c74bc33a5c8185dd
2014-07-16 22:25:35 -07:00
Ian Rogers 7d70f830bc Fix the MIPS build.
Use an override for the dex2oat Xmx value when cross-compiling.
Bug: 16221224

Change-Id: Iaeac95cd50a0bae7817ee7da23b3cf25246f1d6d
2014-07-16 18:06:02 -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 966c1e0cae Add HOST_PREFER_32_BIT to support 32-bit-by-default multilib build
We already support pure 32-bit and 64-bit-by-default multilib build.
With HOST_PREFER_32_BIT we can build 32-bit-by-default multilib build.
This will be lest disruptive during the period we transition to
64-bit-by-default.

Bug: 13751317
Change-Id: I0d56ce4abbe4afeaacfd70d709f6a349791c0722
2014-05-20 18:03:21 -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
Ian Rogers 334497b8b6 Place ISA in ART boot image name.
Depends upon:
https://android-review.googlesource.com/#/c/94096/2

Change-Id: I79bec60a17ea7cf9214e56f8035d4a1b80b0eeb6
2014-05-12 15:17:25 -07:00
Ian Rogers 5d186aee8e For 64-bit, use 32-bit DEXPREOPT if zygote64 isn't enabled.
Change-Id: Ia95d74517f8182031d6044ae55559010a98ec5ca
2014-04-18 15:23:40 -07:00
Nicolas Geoffray 38c0ac7386 Merge "Use debug versions of dex2oat explicitly." 2014-04-02 08:45:56 +00:00
Nicolas Geoffray ed154c3ba6 Use debug versions of dex2oat explicitly.
Change-Id: Ie7c238908a5739af752a08fec1a04914026a8f96
2014-04-01 08:43:26 +01:00
Mathieu Chartier 1da02a1ae1 Merge "Change LIBART_IMG_TARGET_BASE_ADDRESS to 0x70000000" 2014-03-28 19:19:13 +00:00
Ying Wang 8c7e74ee05 Fix embedded build
1) Disable dexpreopt if DALVIK_VM_LIB isn't set up by the product.
2) DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES is moved to config.mk,
for it's only decided by target arch.
3) Move Java module input from embedded.mk to base.mk.

Change-Id: Ife70b0cd8cee2e5c92f356c808affa56f494b49a
2014-03-20 12:13:10 -07:00
Mathieu Chartier 3408ca0e0d Change LIBART_IMG_TARGET_BASE_ADDRESS to 0x70000000
Required for getting ART with valgrind on device working since
valgrind maps things in the 0x60000000 address range.

Bug: 13323732

Change-Id: I05efdbf3fe5acd1418e1d4ced5844154fb4c5d37
2014-03-19 16:52:43 -07:00
Nicolas Geoffray 5fd9a32c4f Remove host-prefix command line argument to dex2oat.
Change-Id: If4a962976d1e8a283d6b682112a1b12d328d8dbb
2014-03-04 17:06:40 +00:00
Brian Carlstrom 8fb5dfc5c7 build: PRODUCT_DEX_PREOPT_IMAGE_IN_DATA
(cherry-picked from commit cd337c71ee65b17529a67af34d4c0b2824a4f175)

Change-Id: I6d8ab3b3cf52f6a6b15f1c8e8d00cdf59042436b
2014-01-28 11:29:58 -08:00
Brian Carlstrom ced4bff58e Add DEXPREOPT support for ART
Change-Id: I24d0d7b2a23a769f5d69bd4dc14be22e1475b759
2013-12-17 14:44:00 -08:00