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
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
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
Expectation is that classes in pre-compiled apps should be structurally
sound and not cause a hard failure.
Bug: 19606409
Change-Id: Idc9da4d4c6bd259555671c657d3414a97940717f
Allow a compiled-classes file for pre-opting.
Bug: 18410571
(cherry picked from commit 4fec0bb265)
Change-Id: I8c69dd0fb8c04aaae0c4f062049cc9cce7d755c7
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
Also, add it to the ANDROID_BUILD_PROPERTIES.
Remove non-default instruction set features.
Bug: 18056890
Change-Id: I9169cdfecbb176f62b941852948222edc3f511fd
- 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
Change DexPreOpt to include patch information of all compiled files so
we can relocate at runtime.
Bug: 15358152
Change-Id: Ibe92d8b55a24bbf718b0416a21b76e5df7a2de26
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
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
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
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
Required for getting ART with valgrind on device working since
valgrind maps things in the 0x60000000 address range.
Bug: 13323732
Change-Id: I05efdbf3fe5acd1418e1d4ced5844154fb4c5d37