History log of /art/build/Android.executable.mk
Revision Date Author Comments
ea6f8d87d5396cf450c6dfb6f17159c7babcad87 10-Dec-2015 Roland Levillain <rpl@google.com> Fix the build-art-multi-executable Make function.

Follow-up fix to
https://android-review.googlesource.com/#/c/185537.

Bug: 26051370
Change-Id: I891abe5ec2a2eae775b9791050654602861798f4
3045cfe0ae439aa94cf7b770a9e329c7edc1fc8a 10-Dec-2015 Roland Levillain <rpl@google.com> Fix imgdiag build rules.

Adjust build rules to avoid building a 64-bit imgdiag
executable on host when HOST_PREFER_32_BIT is true.

This CL addresses an imgdiag related build issue that
appeared on the ART Buildbot after system/core was unpinned
from the master-art manifest
(https://android-review.googlesource.com/#/c/185580), used
by some of our Buildbot configurations:

ninja: error: 'out/host/linux-x86/obj/SHARED_LIBRARIES/libbacktrace_intermediates/export_includes', needed by 'out/host/linux-x86/obj/EXECUTABLES/imgdiag_intermediates/import_includes', missing and no known rule to make it

Bug: 26051370
Change-Id: I8f3b3c89fb8da0c37a1ffb21b6d835e7ede1e71a
f6010eca09e943616b069e5bb38ee3589134e7bb 22-Sep-2015 Yabin Cui <yabinc@google.com> Fix static build when libbacktrace links llvm libraries.

Bug: 22229391

Change-Id: I8a2f3471cc1915e1e4e1eea0898219614e289ef3
754a4457ff34aa35336284e633be7ac0a23a683d 21-Jul-2015 Ying Wang <wangying@google.com> Prefer 32-bit host executables on Mac.

Bug: 22527295
Change-Id: I2cb1d3086b65b8227e6bdac9c0485fdc452f1e9c
9b369143615cb0eb836d2f1864d7d76da0668f1b 02-Jul-2015 Calin Juravle <calin@google.com> Fix mac build: use -lrt only on linux.

Change-Id: I25e6058d9003fa52ef3c8bd153c2108712ce7f96
65e069df6f864102b062fc04de8877f8230034a8 08-Jun-2015 Calin Juravle <calin@google.com> Build statically linked version of dex2oat.

Change-Id: Icde39b770781095af7bd87ae6b907ad97a8a05da
01aaf6ef3e3e35cc8e41cf3fe899a7bf337042f4 19-Jun-2015 Calin Juravle <calin@google.com> Allow for sig chain to be disabled.

Tools like dex2oat or patchoat don't need the sig chain or the fault
manager. This also enables building a statically link version of
dex2oat.

Change-Id: I9897728cac48acade854bb027bfde860628ebf84
12bd7210bb2f5738e33dfa3f2f1cba2e0aab4955 04-Jun-2015 Roland Levillain <rpl@google.com> If heap poisoning is on, pass the relevant flag to LOCAL_ASFLAGS.

This change ensures assembly files honoring heap poisoning
(notably used by stub_test) are compiled with
-DART_HEAP_POISONING=1 when this feature is turned on.

Bug: 21621105
Change-Id: I13fe456cd2733a09bdfd3a9808cfd70513b14698
31fb26054349db03b3f1627fe975ed099ade69dd 01-Oct-2014 Dan Albert <danalbert@google.com> Add options for building/testing with coverage.

acov --clean
mm -B NATIVE_COVERAGE=true ART_COVERAGE=true test-art-host
acov --host

-B is needed because you need to be sure you rebuild *all* of ART with
coverage.

Change-Id: Ib94ef610bd1b44dc45624877710ed733051b7a50
f36df544d421aa60fc4cf8a5db6356b45f97953b 29-Jan-2015 Dan Albert <danalbert@google.com> Remove libcxx.mk cruft.

This is on by default now. No need to leave it in the makefiles.

Change-Id: I20eab7426da4bbbf8b70ffc5b9af7b97487d885d
3774335b08076117d6950cd472cdd59a167470b5 13-Nov-2014 Igor Murashkin <iam@google.com> Add a new imgdiag tool to diff boot.art/core.art against a process

Analyze the dirty memory pages of a running process per-object,
this allows is to to fine-tune the dirty object binning algorithm in
image writer.

Also:
* Factor out oatdump command line parsing code into cmdline.h
* Factor out common build rules for building variations of binaries
* Add a gtest for imgdiag

Bug: 17611661
Change-Id: I3ac852a0d223af66f6d59ae5dbc3df101475e3d0
956af0f0cb05422e38c1d22cbef309d16b8a1a12 11-Dec-2014 Elliott Hughes <enh@google.com> Remove portable.

Change-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc
7ccf48e10e83c159e2149744d5261cbeddf7c0e4 11-Dec-2014 Dan Albert <danalbert@google.com> Don't use the version script for executables.

The version script was forcing all the ASAN symbols to be hidden,
which caused any ASAN instrumented shared libraries used by these
executables (such as libc++) to be unable to find these symbols.

Bug: 18671691
Change-Id: I7839a10041d5f75ce43b59920675b2eff0837606
e7bc70b7c5d704a9ecc5d3b6e0851921e59ba9af 20-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Link libsigchain.a instead of sigchain.o

Relative paths may sometimes lead to failed builds
if sources are built in particular order.

Also it is possible to export symbols from static lib
with LOCAL_WHOLE_STATIC_LIBRARIES variable.

(cherry picked from commit e49a4f6db74f4e66486a6aaf6564f997a94e230f)

Bug: 18701723
Change-Id: I6d62594c2e84020d67254747c1fd465e1144920e
088b16e202904114c0fe13900e517b1c15c981c1 04-Dec-2014 Andreas Gampe <agampe@google.com> ART: Wire up a valgrind-wrapped dex2oat run

Extend build-art-executable to understand multilib=both, in which
case a stem is necessary. Use name32 for the 32b version, and name
for the 64b version (or only version).

Create both 32b and 64b dex2oat on the host.

Extend the core generation rules to allow a wrapper. Create rules
to run with valgrind: valgrind-test-art-host-dex2oat.

Currently this is not wired up to valgrind-test-art-host, as valgrind
reports an error on exit.

Note: this takes a long time, as by default the debug version of
dex2oat is used. The author has seen runs of about 6 minutes.

Bug: 18605772
Change-Id: I32c270d2cf8a104f154bdf91875670b03d3f5d3b
e49a4f6db74f4e66486a6aaf6564f997a94e230f 20-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Link libsigchain.a instead of sigchain.o

Relative paths may sometimes lead to failed builds
if sources are built in particular order.

Also it is possible to export symbols from static lib
with LOCAL_WHOLE_STATIC_LIBRARIES variable.

Change-Id: I6d62594c2e84020d67254747c1fd465e1144920e
f4450a359a08c09b88cb64c4a2ea25f983535dfb 15-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Fix mac build (second attempt)

It appears that the version of mac ld with
-export_dynamic is pretty recent.

Remove -export_dynamic to fix build for older
mac versions (?)

(cherry picked from commit 8b5b69813ef4d718db2e38e51867883511a3eeea)

Change-Id: I272d4b2c95411cc8126f27468f5199ff932fc9ef
09eff05e08865660c049d1d38cdeb93662e95f0d 14-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Fixing mac build

MacOS static linker does not understand --export-dynamic
and --version-script. According to man ld there is
-export_dynamic option which should do the same
thing.

(cherry picked from commit 1d74e57fa22fbcad1e14d776c771472b2d8438fb)

Change-Id: If9c096e099c8c070b62dda87dd0ed3ce77addcd6
7f1fa9e802efa4cc6ded166ce090f7c33d5546ba 07-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Remove libsigchain from LD_PRELOADS

Link sigchain.cc statically with dalvikvm, app_process,
surfaceflinger, dex2oat, patchoat and objdump.

Replace libsigchain.so with dummy implementaions to avoid
situations when it is used incorrectly.

Bug: 15345057
Bug: 15426766

(cherry picked from commit f57874dddefc03fef9ad36fbdd87e39a08a8d641)

Change-Id: I07fe3ca4eeef423d78d7e9a639f03fc59aae3b29
677cd61ad05d993c4d3b22656675874f06d6aabc 15-Oct-2014 Ian Rogers <irogers@google.com> Make ART compile with GCC -O0 again.

Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on
architecture.
Add to instruction_set_test to warn when InstructionSetFeatures don't agree
with ones from system properties, AT_HWCAP and /proc/cpuinfo.
Clean-up class linker entry point logic to not return entry points but to
test whether the passed code is the particular entrypoint. This works around
image trampolines that replicate entrypoints.
Bug: 17993736

(cherry picked from commit 6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3)

Change-Id: I3e7595f437db4828072589d475a5453b7f31003e
6f3dbbadf4ce66982eb3d400e0a74cb73eb034f3 15-Oct-2014 Ian Rogers <irogers@google.com> Make ART compile with GCC -O0 again.

Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on
architecture.
Add to instruction_set_test to warn when InstructionSetFeatures don't agree
with ones from system properties, AT_HWCAP and /proc/cpuinfo.
Clean-up class linker entry point logic to not return entry points but to
test whether the passed code is the particular entrypoint. This works around
image trampolines that replicate entrypoints.
Bug: 17993736

Change-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23
8b5b69813ef4d718db2e38e51867883511a3eeea 15-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Fix mac build (second attempt)

It appears that the version of mac ld with
-export_dynamic is pretty recent.

Remove -export_dynamic to fix build for older
mac versions (?)

Change-Id: Ibc3b2f9a0aeec9125cd73b7df0cf22de9e8e4d16
1d74e57fa22fbcad1e14d776c771472b2d8438fb 14-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Fixing mac build

MacOS static linker does not understand --export-dynamic
and --version-script. According to man ld there is
-export_dynamic option which should do the same
thing.

Change-Id: I8cde8c6c7305bebbbcc9dded143fa5cdaf386d65
f57874dddefc03fef9ad36fbdd87e39a08a8d641 07-Oct-2014 Dmitriy Ivanov <dimitry@google.com> Remove libsigchain from LD_PRELOADS

Link sigchain.cc statically with dalvikvm, app_process,
surfaceflinger, dex2oat, patchoat and objdump.

Replace libsigchain.so with dummy implementaions to avoid
situations when it is used incorrectly.

Bug: 15345057
Bug: 15426766
Change-Id: If0b7f59a59824e30aa0c33dad76c7a44932180de
afd9acc30bdd11cdd12d8209eb994cb371c65e33 17-Jun-2014 Ian Rogers <irogers@google.com> Multilib ART host.

Build ART for the host as a multilib project with dalvikvm32 and dalvikvm64
running as 32 or 64-bit repsectfully. Note, currently multilib host builds
are not the default, you make the so by setting BUILD_HOST_64bit=1.
Extend tests to execute in both 32 and 64-bit modes. By default both 32 and
64-bit tests are run, add 32 or 64 to the end of a test name to run it in
purely that flavor.
Given the extra spam, modify oat tests to only generate console output when
the test fails.
Change the test harness so that common commands are run when a test should be
skipped, when it passes or when it fails. Use these commands to generate a
summary of passing, skipped and failing tests. Tests will be skipped if they
are known to be broken or if a test has already failed. Setting the variable
TEST_ART_KEEP_GOING=true will force working tests not to be skipped.
In this change all tests running on the optimizing compiler are marked broken
due to breakages running them in a multilib environment.
Break apart Android.common.mk into its constituent parts, along with other
pieces of reorganization.

Stylistic nit, we refer to make rule targets as targets thereby overloading
the term target. While consistent with make's terminology, its confusing with
the Android notion of target. I've switched to just calling targets rules to
avoid confusion in host tests.

Change-Id: I5190fc3de46800a949fbb06b3f4c258ca89ccde9
5ca4eaace8ba513f97309bbdc2e156de4b1d648a 29-May-2014 Andreas Gampe <agampe@google.com> ART: Make LOCAL_CLANG architecture dependent for the target

Be selective for which target we compile with Clang. Currently we
only want to compile with Clang for ARM64, which means we need to
be careful about ARM, which is the second architecture for that.

Bug: 15014252

(cherry picked from commit 9689e3768621130b2536564f4e00fcb6b3d25df4)

Change-Id: I312e1caea08f2f3a20304b27f979d3c7b72b0a04
ffddfdf6fec0b9d98a692e27242eecb15af5ead2 03-Jun-2014 Tim Murray <timmurray@google.com> DO NOT MERGE

Merge ART from AOSP to lmp-preview-dev.

Change-Id: I0f578733a4b8756fd780d4a052ad69b746f687a9
9689e3768621130b2536564f4e00fcb6b3d25df4 29-May-2014 Andreas Gampe <agampe@google.com> ART: Make LOCAL_CLANG architecture dependent for the target

Be selective for which target we compile with Clang. Currently we
only want to compile with Clang for ARM64, which means we need to
be careful about ARM, which is the second architecture for that.

Bug: 15014252
Change-Id: I239591f65eab537deac39a25bd20530dce5c4786
2a0e954ecf7c60e6ec62d64b9382cc4ee447e224 21-May-2014 Dan Albert <danalbert@google.com> Move art host to libc++

Change-Id: Ia51a4fdfdbae7377130a43c401c2d8d241671d1e
700a402244a1a423da4f3ba8032459f4b65fa18f 20-May-2014 Ian Rogers <irogers@google.com> Now we have a proper C++ library, use std::unique_ptr.

Also remove the Android.libcxx.mk and other bits of stlport compatibility
mechanics.

Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
ba0c51fd282c4f47b95230c5444e76f342900cfa 16-May-2014 Ian Rogers <irogers@google.com> Switch ART to libc++.

TODO: remove all vestiges of stlport.

Change-Id: I95a3cb0b53d0898f0a5d388b606e79522f4d85e0
bd5ea6a2f7c61c4cd7b66fead1bedd96e938369d 17-Apr-2014 Ian Rogers <irogers@google.com> Preparation for transition to libc++.

Move the dependency on libc++ to its own makefile so that we can switch in a
single place between libc++ and stlport.

Change-Id: Ie61e7d054dcd049e36d5e7298c27d8a4abe6edf7
d74754320e4706796ebb1d4b413dc1fede6e4854 20-Mar-2014 Colin Cross <ccross@android.com> force dex2oat target executables to be compiled for 32-bit

64-bit dex2oat doesn't support 32-bit targets yet, force dex2oat
target executables to compile 32-bit for now by passing in a
value for LOCAL_MULTILIB to build-art-executable.

Bug: 13764385
Change-Id: I41adba1e64f373e4b61a3c13af2592ed4f7d0b57
afbaa1aab02cfe519d00336870b1bcd24b61378d 26-Mar-2014 Andreas Gampe <agampe@google.com> Build changes to build multilib tests

Test files will be emitted into directories for both first and second
target architectures. Going with the naming scheme for binaries,
single-architecture and 32b cases have the standard name, and
64b goes into a directory with "64" suffix.

In multi-architecture setups, the default concrete test targets are
extended with a "32" and "64" suffix, e.g., test-art-target-oat-JniTest64.
The suffix-less form is linked to the primary architecture target (usually 64).
That means running combined targets, e.g., test-art-target-oat, will only
test the primary architecture right now.

Fixed target run tests calling the right dalvikvm. Fixed library search
path for tests derived from CommonRuntimeTest.

Missing in this work-in-progress is correct handling of dex2oat for the
secondary architecture. To make it work on 64b, comment out line 101
in build/Android.executable.mk

Change-Id: I3d260994e6efe8b73b56c71994053cc9392943a9
cae10f73bdad63774a3a8bc67d568b131f9bd591 01-Apr-2014 Andrew Hsieh <andrewhsieh@google.com> Add -lpthread -ldl to link executable/tests

The new binutils-2.23 based linker in
prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6
no longer implicity adds dependencies on *so an executable needs.
eg.

ld -o barrier_test barrier_test.o common_runtime_test.o ... -lartd

produces error messages read

art/runtime/thread-inl.h:43: error: undefined reference to 'pthread_getspecific'
art/runtime/common_runtime_test.h:219: error: undefined reference to 'dlsym'
external/gtest/src/../include/gtest/internal/gtest-port.h:1482: error: undefined reference to 'pthread_getspecific'

because libartd.so DT_NEEDED libdl.so and libpthread.so, and new linker no longer
implicitly add both to dependencies. Explicitly add -lpthread -ldl to fix the issue

Change-Id: Ic29c68480b2ed55d282be949640b9158411f213d
2269d2a647dbd4ad60a32be0238eda4db844d95b 20-Mar-2014 Colin Cross <ccross@android.com> HACK: force target art executables to be compiled for 32-bit

64-bit dex2oat doesn't support 32-bit targets yet, force all
art executables to compile 32-bit for now.

Change-Id: If69f0a45e55104a5e915a9c58afa9009aa68b71c
dc781a13ddb4dabf646bb45d0c53b65cab948e5b 05-Feb-2014 Colin Cross <ccross@android.com> art: convert makefiles to support multilib build

Convert makefiles to allow for building two architectures at the
same time. More changes may be necessary to get the tests to
build.

Change-Id: I02ba11706b7e5b5592d76e43c167bcbf0e665b93
1bd2ceb3a8c68ae6ea1f9627b588a7bc7a74487f 06-Nov-2013 Brian Carlstrom <bdc@google.com> Make missing DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES an error

Change-Id: I3ca23e4db80c8ab8a86da6408cf38daccd4cfaf1
7020278bce98a0735dc6abcbd33bdf1ed2634f1d 23-Oct-2013 Dave Allison <dallison@google.com> Support hardware divide instruction

Bug: 11299025

Uses sdiv for division and a combo of sdiv, mul and sub for modulus.
Only does this on processors that are capable of the sdiv instruction, as determined
by the build system.

Also provides a command line arg --instruction-set-features= to allow cross compilation.
Makefile adds the --instruction-set-features= arg to build-time dex2oat runs and defaults
it to something obtained from the target architecture.

Provides a GetInstructionSetFeatures() function on CompilerDriver that can be
queried for various features. The only feature supported right now is hasDivideInstruction().

Also adds a few more instructions to the ARM disassembler

b/11535253 is an addition to this CL to be done later.

Change-Id: Ia8aaf801fd94bc71e476902749cf20f74eba9f68
fa50baa45bf7c82e489bd66bbba70544f7981997 02-Aug-2013 Brian Carlstrom <bdc@google.com> Restore build-art minimal build

Change-Id: I0f4f2e8c6d2505a339cb9a1175d30ed9b229c45d
025218c7e4330a4942b14f9a8f1f68bd3390261c 31-Jul-2013 Elliott Hughes <enh@google.com> Clean up stlport usage.

Change-Id: I133cd88f1da37f6f801a9e07a78ae23b671cf4f1
7940e44f4517de5e2634a7e07d58d0fb26160513 12-Jul-2013 Brian Carlstrom <bdc@google.com> Create separate Android.mk for main build targets

The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep. They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.

Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
51c2467e8771b56e25ae4f17f66522f979f57a7e 12-Jul-2013 Brian Carlstrom <bdc@google.com> libart-compiler cleanup

- Move compile-time code to src/compiler and libart-compiler
OatWriter, ImageWriter, ElfWriter, ElfFixup, ElfStripper, stub generation
- Move ClassReference and MethodReference to remove MethodVerifier dependency on CompilerDriver
- Move runtime_support_llvm.cc out of src/compiler and next to runtime_support.cc
- Change dex2oat and gtests to directly depend on libart-compiler
- Move non-common definitions from Android.common.mk to more specific makefiles
- Add LOCAL_ADDITIONAL_DEPENDENCIES on appropriate makefiles

Change-Id: I897027e69945914128f21f317a92caf9255bc600
fa42b4410d49134a8e63dc2196be4013d286f2d6 17-Jun-2013 Brian Carlstrom <bdc@google.com> Move to new art dalvikvm

Change-Id: Ib04bc9853b7084965fa0c9899c3e5f5ac42d4ce7
cd5d0422ac07b03220970a3606f8b402a3636528 18-May-2013 Ian Rogers <irogers@google.com> Clang build support, -Wthread-safety with GCC 4.6.

Change-Id: Idccb4daa012c66a6ece3f7a037c9c2c029beba64
52e55cbc6d18694556176b58ef79b5ae52c8039c 22-Mar-2013 Brian Carlstrom <bdc@google.com> Remove gcc-based tsan support

Change-Id: I145331e295f69e99408e03cb59df26fb337510f5
265091e581c9f643b37e7966890911f09e223269 30-Jan-2013 Brian Carlstrom <bdc@google.com> Remove ExtractCodeAndPrelink and switch Portable to MCLinker

Change-Id: Ia2459c7da6b79e0a1c0f1148c6e28ad9cbbe27a2
c928de90ad22ecdf83c18a07008409595f13d3b1 27-Feb-2013 Ian Rogers <irogers@google.com> Remove Iceland.

ART_USE_LLVM_COMPILER is removed and when necessary ART_USE_PORTABLE_COMPILER
is used in #ifdefs.

Change-Id: Iffa9ce5b0246c7c427ccc4e67ecc134624632e55
c531cefbfb5394413122e9f57d211ba436cff012 18-Oct-2012 buzbee <buzbee@google.com> Eliminate #ifdef ART_USE_QUICK_COMPILER

One of several steps towards having a single compiler build.
In this CL, we introduce a compiler_backend command-line option
to select between Quick, Quick w/ GBC, Portable and Iceland
back ends. The Iceland option is temporary, and will go away once
we combine with Portable. The Quick variants are with
and without GBC conversion. In time, those will converge to a
single option.

All uses of "#if defined(ART_USE_QUICK_COMPILER)" are eliminated. All
previous uses in the Quick compiler have been converted to runtime
tests. On the llvm side, ART_USE_QUICK_COMPILER was previously
used to differentiate between Portable and Iceland builds. Those
usages have been replaced with ART_USE_PORTABLE_COMPILER, and in
a following CL will also be converted to run-time tests.

As of this CL, we're still generating separate libraries for
Quick and Portable/Iceland. Next up is elminating the target-specific
libraries for Quick-arm, Quick-x86 and Quick-mips. Once that is
complete, we will consoldate Quick and Portable into a single build.

To build either Iceland or Portable, touch USE_PORTABLE_COMPILER or
USE_LLVM_COMPILER as usual. Otherwise, the build will default
to Quick (non-GBC).

Change-Id: Ic86c56f51710c9b06d4430b71a429ae12903cc47
21d28f510eb590f52810c83f1f3f37fe5f4adf46 12-Jun-2012 Shih-wei Liao <sliao@google.com> GBC Expander. Removed lir.

Change-Id: If8d13e36f1e6d82c2a7f7bfec62b8fb41fd8cdaa
2cfc639fc803bf67e3d2a961f2b637220c86d5f7 07-May-2012 buzbee <buzbee@google.com> Foundation for Quick LLVM compiler

Ready for review - probably better get this cleaned up and
checked in even though much work remains.

Basic conversion from MIR to GreenlandIR and from GreenlandIR
back to LIR. Support sufficient to run Fibonacci test.

Note some structural changes in MIR to support this work:
o retaining incoming label for phi nodes
o constant propagation
o include object reference detection in type inference pass

Change-Id: I8ba63c73e76d071aa40cae0f744e598b96f68699
e94d9b23c52ec0f36c8a132914eac33bc707faff 22-May-2012 Shih-wei Liao <sliao@google.com> Add dex_lang as common frontend to lir and LLVM. dex_lang + bc2lir =
Greenland

First commit of Greenland compiler: It's working in the sense of oat
tests. E.g., mm test-art-host-oat-Fibonacci. It shows the correct
bitcode before lir.

Change-Id: I91cbb02188325eb1fa605ed71ec7108fd2b0dbb9
c4c9881e5d22432f3f1a30eeec5aa109dfc08a7d 11-Mar-2012 Shih-wei Liao <sliao@google.com> Fix the LLVM build. Separate out libart-compiler-llvm.so.

After this refactoring:
If (!USE_LLVM_COMPILER), I pass the test-art and boot the phone alright.
The behavior is the same for non-LLVM builds as before. Multi-target
art-compiler shared libraries are generated as before.
If (USE_LLVM_COMPILER), I generate libart-compiler-llvm.so successfully.

Note that the ideal refactoring for the next step will be to always build
art-compiler and LLVM-[arm|mips|x86] shared libraries. Currently, we
haven't removed all the ifdefs for libart.so yet, so this is not ideal yet.
Reason for not-done-yet is that the next step requires discussions.
I can remove all the ifdefs today, but then the (!USE_LLVM_COMPILER)
build will incur extra fields and overhead.

This refactoring allows us to restore the LLVM build situation to be before
the breakage yesterday, so we can continue making forward progress again.

One difficulty in the refactoring is that LLVM is not a method compiler
in default, unlike (!USE_LLVM_COMPILER). LLVM actually compiles an LLVM module
at a time normally. So we need to do more call backs and tell
libart-compiler-llvm.so in each invocation where we are in terms of
OatCompilationUnit.

Another difficulty is that currently our LLVM compiler is not
multithreaded and requires locking, unlike (!USE_LLVM_COMPILER). So more
callbacks are needed. This will be fixed when we fix the multithreading
issue.

Change-Id: I93bce21b6d673254188f2a60b1a7f91b508e497f
06e3ad4a651c2c58dba5e865cd06d2f98462bf1d 07-Feb-2012 Elliott Hughes <enh@google.com> Turn on some basic tsan annotations.

The most useful bit here is that tsan now knows the names of our threads.

Change-Id: I8eef8f31e954ffc373555b392d6d9678d76ead34
a6cc893c4b142cd410fc956963b6f5a014e983ad 04-Jan-2012 Brian Carlstrom <bdc@google.com> Add installd support to dex2oat

Change-Id: Id1a64403ccea7dc2c1e8b8340d33d383d4045a33
89521898b56f2ebc3fb68acfb6bc6dde9b6f5c38 08-Dec-2011 Brian Carlstrom <bdc@google.com> Merge art-cache dex files into oat files

Change-Id: I5a327a4e0b678bd9dabb12de4e21ef05e3fefd0b
3b6baaa203fa63f1522b2172a1645f90412afdae 15-Oct-2011 Elliott Hughes <enh@google.com> Bring our native stack usage down.

I'd have preferred to have a 512-byte limit, but there are some monsters
in the verifier; 2000-line functions and the like. I'm also not policing
tests (except for one silly one). They can use all the stack they like.

This fixes the IntMath test (the stack overflow test was failing because
we were using more than 4KiB to throw!).

Change-Id: I7e53e2fde2b39fde1910f8ee5b1712e8a66069c7
b7bbba49d88eae58223d9878da4069bf6d7140bf 13-Oct-2011 Brian Carlstrom <bdc@google.com> Add oatopt drop in replacement for dexopt

Change-Id: I094375230af2d9a88e30245b390cac71be7b50f4
0796af03edc06d92bb8d631f1c0c23befdae2315 12-Oct-2011 Brian Carlstrom <bdc@google.com> Fix Object::IsSoftReference

Also changed -Xzygote to default boot.art and log arguments

Finally Makefile work:
- separate out test dependencies
- changed zygote with art to work by replacing libdvm with libart[d]
- changed Makefile defines to name and error check their arguments
This was to fix bug in generating ART_TARGET_EXECUTABLES
where we used $(1) when we meant $(3)

Change-Id: I7ef6008eff1fe99b59d151b6793e8fd8ea5304d4
bc512351f95163157712cbf1a35e38f00355bde2 17-Sep-2011 Brian Carlstrom <bdc@google.com> Remove redundant libgtest_host linkage

Change-Id: I2932347166fa993c7125c32ecf6a3497462f3115
78128a63b2615744760b7f8ab83df9764a5d4a95 16-Sep-2011 Brian Carlstrom <bdc@google.com> oatdump

FROM MAKE:
mm dump-boot-oat

ON HOST:
oatdump --dex-file=$ANDROID_PRODUCT_OUT/system/framework/core.jar --image=$ANDROID_PRODUCT_OUT/system/framework/boot.oat --strip-prefix=$ANDROID_PRODUCT_OUT
oatdump --boot-dex-file=$ANDROID_PRODUCT_OUT/system/framework/core.jar --boot=$ANDROID_PRODUCT_OUT/system/framework/boot.oat --dex-file=$ANDROID_PRODUCT_OUT/system/framework/art-test-dex-HelloWorld.jar --image=$ANDROID_PRODUCT_OUT//system/framework/art-test-dex-HelloWorld.oat --strip-prefix=$ANDROID_PRODUCT_OUT

ON TARGET:
adb shell oatdump --dex-file=/system/framework/core.jar --image=/system/framework/boot.oat
adb shell oatdumpd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat

Change-Id: Iad2ae40a9cf2dc28799ff5dc5222d50f1bc6b39f
8692721dd8a3679ca874c3d1be0cecb62ff148f6 15-Sep-2011 Brian Carlstrom <bdc@google.com> Fix ClassLinker::LinkInterfaceMethods bug

Also:
- Expanded class_linker_test with additional vtable and iftable coverage
- Added -fkeep-inline-functions where it works on host for debugging
- Added disabled test for running command line Fibonacci with oatexec

Change-Id: Ie295551e42493c7cca05684e71e56bf55bd362a4
1d3f114124b140629a7d22fa5cfa20ab8fc96934 13-Sep-2011 Elliott Hughes <enh@google.com> Support 32-bit volatiles.

Change-Id: If40ead8e13986d589ac1d1637034e25fc4108189
4b620ffb1b4d0c96a94bb3afe314f35d53990ec6 11-Sep-2011 Brian Carlstrom <bdc@google.com> Finish moving state to managed heap

Change-Id: I8a3b0e353b30268a05d6ed8ea0a6a4bead100660
69b15fb098162f19a4c20e6dccdcead04d9c77f0 03-Sep-2011 Brian Carlstrom <bdc@google.com> Working dex2oat and oatexec

adb shell dex2oatd --dex-file=/system/framework/core.jar --image=/system/framework/boot.oat --base=0x50000000 "'--method=Ljava/lang/System;logI(Ljava/lang/String;)V'" "'--method=Ljava/lang/System;log(CLjava/lang/String;Ljava/lang/Throwable;)V'"
adb shell dex2oatd --boot-dex-file=/system/framework/core.jar --boot=/system/framework/boot.oat --dex-file=/system/framework/art-test-dex-HelloWorld.jar --image=/system/framework/art-test-dex-HelloWorld.oat
adb shell oatexecd -Xbootclasspath:/system/framework/core.jar -Xbootimage:/system/framework/boot.oat -classpath /system/framework/art-test-dex-HelloWorld.jar -Ximage:/system/framework/art-test-dex-HelloWorld.oat HelloWorld

09-05 17:58:18.912 2385 2385 I System : Hello, world!

Change-Id: I53e534068584f0c3a837313e4d517a0e4a7154fc