History log of /art/build/Android.common_build.mk
Revision Date Author Comments
48c3ce6733efbc545605b1bfe2ddbdf95a04edf3 03-Mar-2016 Stephen Hines <srhines@google.com> Enable clang for ARM builds.

Bug: http://b/25130937

We disable the integrated assembler for the ARM interpreter because
Clang can't handle the syntax present.

(cherry picked from commit a388c5a6291dbfb9a8366181a752050f4898d4ff)

Change-Id: Iefd5ba922eec54a2167e8a057c459b289aaf2ef3
07f6818ef68046d4749963b3bd59f7e93cf43fa9 10-Mar-2016 Vladimir Marko <vmarko@google.com> ART: Do not use vixld - workaround to fix dex2oatds.

This is a quick workaround for ODR violations caused
by linking libvixl.a compiled without VIXL_DEBUG with
the libartd-compiler.a compiled with VIXL_DEBUG.

Bug: 27588884
Change-Id: Ib1af165f177f125f03cdd99777dff4c2912f6405
a388c5a6291dbfb9a8366181a752050f4898d4ff 03-Mar-2016 Stephen Hines <srhines@google.com> Enable clang for ARM builds.

Bug: http://b/25130937

We disable the integrated assembler for the ARM interpreter because
Clang can't handle the syntax present.

Change-Id: I978d3f78e25819bb76ccb0f7f4b91a88e4b5a2de
1fdabe6dbe82eabc71d96b900d5a4ed4cb0a0a45 19-Feb-2016 Andreas Gampe <agampe@google.com> Revert "Do not build art with clang for mips64"

This reverts commit 610a1420fe400d3f638fc0dadb1a012d2ac3ad19.

Bug: 25928358
Change-Id: I3fe8777ead2bd067c071277a7c15b2442f15567f
37ba27acc3bb0937ee75f1215b86c3b5b872a356 26-Jan-2016 Hiroshi Yamauchi <yamauchi@google.com> Temporarily use -fstack-protector for the read barrier config.

Instead of -fstack-protector-strong.

To avoid a major performance regression.

Bug: 26744236
Bug: 12687968

Change-Id: I299247589e2bb6939393d30bdc54c15ce0f04b2a
1cab143cd1cf4e4a889e8c9e4503ab0bbe31ab64 19-Dec-2015 Colin Cross <ccross@android.com> Re-enable optimization for clang arm64 art builds

The clang bug is fixed, remove -O1 from clang arm64 art builds.

Bug: 23256622
Change-Id: I3f2f6d1e84c5484fd499a94593f1dd53a4a66fbe
ceb07b3285eaab350a8cd12f7d74be3e40a255dd 10-Dec-2015 Mathieu Chartier <mathieuc@google.com> Revert "Revert "Add support for LZ4 compressed image files""

Needed to call compiler_driver_->SetSupportBootImageFixup(false).

Bug: 22858531

This reverts commit 83d4d72aa0e4170209ab50c67ba22e46b71352c1.

Change-Id: Iaed6a810a0c088f1f2c57cf2f12087f3978a3de1
83d4d72aa0e4170209ab50c67ba22e46b71352c1 10-Dec-2015 Nicolas Geoffray <ngeoffray@google.com> Revert "Add support for LZ4 compressed image files"

Tentative. Looks like it breaks image_test for hammerhead:
art/compiler/linker/arm/relative_patcher_thumb2.cc:36] Check failed: target_offset & 1u == 1u (target_offset & 1u=0, 1u=1)

Bug: 22858531

This reverts commit c6f41b5b3ca3d7ac3c12ad3995ffef4e831973a0.

Change-Id: I9bc5738a8b5c8f8bc8b73309f9420fd691bc79a9
c6f41b5b3ca3d7ac3c12ad3995ffef4e831973a0 05-Dec-2015 Mathieu Chartier <mathieuc@google.com> Add support for LZ4 compressed image files

Added dex2oat option --image-format=(store|lz4). Using lz4 means
that the main image section (all data other than header and bitmap)
are stored in a compressed state.

N5 results:
Boot image size: 8067128 -> 2827605
Decompression time 18.93ms
Decompression rate: 426MB/s

Patchoat is not currently supported since it maps the source image
directly. In order to support compressed images we would need to
recompress the output image and then write it back out to a file.
Also there are not many cases where we would want to patch a
compressed image since they are going to be dirty memory when
uncompressed anyways. Might as well just patch as we are loading.

Bug: 22858531

Change-Id: I8c54ccf73408273011161a61bb891736735074d9
610a1420fe400d3f638fc0dadb1a012d2ac3ad19 27-Nov-2015 Lazar Trsic <Lazar.Trsic@imgtec.com> Do not build art with clang for mips64

Clang generates illegal instruction on mips64r6 with -O0.
https://dmz-portal.mips.com/bugz/show_bug.cgi?id=2218

BUG: 25928358

Change-Id: I8ccd644f1509b4b341384fa67facc07cb966dfa8
5295bc2c35cddf2b31396dddfddb1998f681b3a4 21-Oct-2015 Andreas Gampe <agampe@google.com> ART: Disable Clang for arm

Disable Clang for arm32 until a fix for the issue is found.

Bug: 25130937
Change-Id: Ia33f387b89ac8d1e8eac9a2782c45f038b9e8a1a
8069d9f1b587fef93252cd5135f59c038302f7fb 15-Oct-2015 Alex Light <allight@google.com> Allow changing the optimization level of a build with env variable.

This is useful for debugging.

Change-Id: I60e61cdb53a00d74cf619d56991f9d11ab9ae0c4
2e287754fcc0f3ecd10fcc9623800d935618360a 02-Oct-2015 Hiroshi Yamauchi <yamauchi@google.com> Make it possible to change the read barrier type as build config.

Bug: 12687968
Change-Id: Ib43dab4d4e68a5a962347fcc2163c3100cb5b760
409e80901468f6c746eeae5c6e93ceedf1d8c711 01-Oct-2015 Nicolas Geoffray <ngeoffray@google.com> Don't force the boot image to using quick.

Instead, put the debuggable flag.

Also, remove obsolete ART_USE_OPTIMIZING_COMPILER environment
variable.

Change-Id: Idde00da0d063aa461faa0308134f3b420de9fe0a
d4720665b27f51ee231b0cfe97417ad00d841003 14-Sep-2015 Pirama Arumuga Nainar <pirama@google.com> Revert "Revert "Re-enable Clang's -Wpessimizing-move""

This reverts commit 4a37953377092ade93c15c72ad49cde4adaabd94.

Change-Id: Iae3bab9b104c1391070b329ef6a6a73b836189c8
4a37953377092ade93c15c72ad49cde4adaabd94 14-Sep-2015 Pirama Arumuga Nainar <pirama@google.com> Revert "Re-enable Clang's -Wpessimizing-move"

This reverts commit 8f5d2d84efb90e7220dd42c7aa104dbc19c52f4e.

Change-Id: I24fa681c0639bc4bf7af1b821f620780cd7a474d
8f5d2d84efb90e7220dd42c7aa104dbc19c52f4e 13-Sep-2015 Pirama Arumuga Nainar <pirama@google.com> Re-enable Clang's -Wpessimizing-move

The warning on variant_map.h is fixed by
https://android-review.googlesource.com/#/c/170745/.

Change-Id: I802dd26538637ff276b7c24c1f5bca280b0bc428
f54cde646bbf5df7c506b42fce53a24ce7d8a2e9 02-Sep-2015 Ivan Krasin <krasin@google.com> Increase max stack frame for sanitizers to handle x86.

Currently, when building asan-ified Android image
for aosp_x86-eng, it surpasses the limit for the
stack frame size and stops the compilation.

The resulting image (after increasing the limit)
was tested in the emulator.

Change-Id: I99c4871f38abab526bdf28575f44400432ec61ba
50fa993d67f8a20322c27c1a77e7efcf826531fc 11-Aug-2015 Alex Light <allight@google.com> Svelter libart-compiler

Added new environment variable ART_{TARGET,HOST}_CODEGEN_ARCHS which
may be set to 'all', 'svelte' or a space separated list of architectures.

When compiled with ART_{TARGET,HOST}_CODEGEN_ARCHS='all' (the default
value) dex2oat will be able to generate output for all supported
architectures.

When compiled with ART_TARGET_CODEGEN_ARCHS='svelte'
only the architectures of the TARGET will be included. When
ART_HOST_CODEGEN_ARCHS='svelte' all architectures the target includes
and the host architectures will be included on the host dex2oat.

If a list of architectures is given only those will be included.

Change-Id: I87f4ad0131ab1b37544d8799e947ce4733b6daec
bc0d79be56b258b87064e94d3a34f45207ad8f32 17-Aug-2015 Dan Albert <danalbert@google.com> Only apply aarch64 clang WAR to the target.

Note that the ART_TARGET_CLANG_CFLAGS_$(arch) was actually broken over a
year ago. This patch fixes that and drops the no longer needed
-DNVALGRIND for clang aarch64.

Bug: http://b/23256622
Change-Id: I749db286c0fd533aeb50744b323c1faddf951d79
b47bad5e7f0a0a433f24d3742b22bea31d16e12b 17-Aug-2015 Dan Albert <danalbert@google.com> Force Clang aarch64 builds to -O1.

Bug: http://b/23256622
Change-Id: Icab87964576f12a671e255500dec901f3558e7ad
4382f1ef6ab2d6992d330cc8b43057d9139a1243 05-Aug-2015 Andreas Gampe <agampe@google.com> Revert "Revert "ART: Use bionic TLS slot for thread-self""

This reverts commit 50832b6804d15ea5ddfe99a2753a09111b5bfe37.

Fix clearing the TLS on detach.

Change-Id: I75ed5ccccb4f31800e5f893055e96067a9695258
50832b6804d15ea5ddfe99a2753a09111b5bfe37 05-Aug-2015 Andreas Gampe <agampe@google.com> Revert "ART: Use bionic TLS slot for thread-self"

This reverts commit b81535875ff46d1630c76091fe969a9eb7fc4d16.

Breaking tests, need to investigate.

Change-Id: Iab8c4f6136e6cb9bd6cf3c3495aa33962ef890ee
b81535875ff46d1630c76091fe969a9eb7fc4d16 29-Jul-2015 Andreas Gampe <agampe@google.com> ART: Use bionic TLS slot for thread-self

Use a private bionic TLS slot to store self instead of using
pthreads.

Change-Id: Icc86a2b7590734637366f9d5e41a5c6d18cc5772
676ff8e35bf15a7551d264598cfaf1e97bcfa9aa 24-Jul-2015 Calin Juravle <calin@google.com> Enable art host static builds only for checkbuilds.

Change-Id: I42cc850089a5ecbcc201699f0b996da4fd959bb3
90443477f9a0061581c420775ce3b7eeae7468bc 17-Jul-2015 Mathieu Chartier <mathieuc@google.com> Move to newer clang annotations

Also enable -Wthread-safety-negative.

Changes:
Switch to capabilities and negative capabilities.

Future work:
Use capabilities to implement uninterruptible annotations to work
with AssertNoThreadSuspension.

Bug: 20072211

Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
093f1b4c3007d52a75186175d184ad7f58aaa0df 14-Jul-2015 Hiroshi Yamauchi <yamauchi@google.com> Add ART_TEST_DEBUG_GC to help with debugging gc.

ART_TEST_DEBUG_GC is meant to be used to easily set the GC
configuration to the one that currently needs debugging in a
continuous test.

Bug: 19894268
Change-Id: I566e44360fc4cd47b3448e194cc8c16c9f498b7f
1e13374baf7dfaf442ffbf9809c37c131d681eaf 20-May-2015 Evgenii Stepanov <eugenis@google.com> Generalize Valgrind annotations in ART to support ASan.

Also add redzones around non-fixed mem_map(s).
Also extend -Wframe-larger-than limit to enable arm64 ASan build.

Change-Id: Ie572481a25fead59fc8978d2c317a33ac418516c
15144b806664ba32de6ec2229a825123462a2260 09-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Add -Wno-pessimizing-move to Clang flags

Upstream clang has a new diagnostic '-Wpessimizing-move' that warns when
a std::move call prevents copy elision. The warning (which turns into
an error with -Werror) is triggered for
art/runtime/base/variant_map.h:261

Add -Wno-pessimizing-move to ART build rules until this warning can be
safely handled.

Change-Id: I7aff68abb6c44a5d64170b0d959c9537b89b5e16
0e26f464d94eeb8cc09d881c46adfe35640c8d9a 09-Jul-2015 Calin Juravle <calin@google.com> Fix makefile test against host os.

Change-Id: I7637845277012a189bf5f3598f9f0b1f599fbf75
4895ea4eb55a06003cc08cda55a6dca1c42a1794 02-Jul-2015 Calin Juravle <calin@google.com> Disable static builds for mac and asan.

- asan doesn't support static linkage
- we don't need a static build of dex2oat for mac

Change-Id: I7eddd19f1f47e8b2a67ecc0aaf40cb70941febdd
dc5616146966369550f66e2a8866e142763bbefe 02-Jul-2015 Calin Juravle <calin@google.com> Enable ART_BUILD_HOST_STATIC for check builds.

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

Change-Id: Icde39b770781095af7bd87ae6b907ad97a8a05da
e1b6e974ad2e5695bc166cb363050208d77ded45 16-Jun-2015 Evgenii Stepanov <eugenis@google.com> Disable -Wframe-larger-than when building SANITIZE_TARGET.

The same has been done for SANITIZE_HOST some time ago.
AddressSanitizer adds redzones around local variables, increasing
function frame size by 2x to 3x.

Bug: 21785137
Change-Id: If53456894a2e6e38318b681dbc69547b05b6f33c
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
1a1e77f1a5864352b8187bc01d0a3e6851e03cf7 28-May-2015 Dmitriy Ivanov <dimitry@google.com> Fix valgrind includes

external/valgrind structure has been changed
to reflect upstream projects struture.

Making corresponding changes to art includes.

Bug: http://b/21471495
Change-Id: I2434a270f88502528df82c4820afedb002b65b8d
(cherry picked from commit 6130f739d8f35e01037ba5c3ec5e5a1057900479)
6130f739d8f35e01037ba5c3ec5e5a1057900479 28-May-2015 Dmitriy Ivanov <dimitry@google.com> Fix valgrind includes

external/valgrind structure has been changed
to reflect upstream projects struture.

Making corresponding changes to art includes.

Change-Id: I2434a270f88502528df82c4820afedb002b65b8d
2501595993152b8200c0173f7e68f720c515e576 12-May-2015 Chih-Hung Hsieh <chh@google.com> Undo arm64 workaround.

Now we have new llvm to compile art for arm64 without -fno-vectorize.
BUG: 21080674

Change-Id: Id1b3a88ab9d4cf78b7f0dfd8cb435ed6e7ab7cb2
(cherry picked from commit b6cee946d44dc1e961c9656830b567e38104f896)
b6cee946d44dc1e961c9656830b567e38104f896 12-May-2015 Chih-Hung Hsieh <chh@google.com> Undo arm64 workaround.

Now we have new llvm to compile art for arm64 without -fno-vectorize.
BUG: 21080674

Change-Id: Id1b3a88ab9d4cf78b7f0dfd8cb435ed6e7ab7cb2
91ddd0d2db1f04368591d74505d8ea4c77c56030 01-May-2015 Duane Sand <duane.sand@imgtec.com> Re-enable clang for Mips/Mips64 targets.

The build-time errors described in
https://android-review.googlesource.com/#/c/120512
are no longer happening.

BUG: 18807290
BUG: 18789639

Change-Id: I195bbb7d102fecd6a6e6a3357b0863dd6fddb01f
848f70a3d73833fc1bf3032a9ff6812e429661d9 15-Jan-2014 Jeff Hao <jeffhao@google.com> Replace String CharArray with internal uint16_t array.

Summary of high level changes:
- Adds compiler inliner support to identify string init methods
- Adds compiler support (quick & optimizing) with new invoke code path
that calls method off the thread pointer
- Adds thread entrypoints for all string init methods
- Adds map to verifier to log when receiver of string init has been
copied to other registers. used by compiler and interpreter

Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
662226652394d0388b0f6a3c9f79a317de273c8f 07-Apr-2015 Andreas Gampe <agampe@google.com> ART: Turn off missing-noreturn for Mac

Too much stuff unimplemented and causing warnings.

Change-Id: I43bae875f1eca3cc24e03b0e7d6fdfd2adae0cbd
65b798ea10dd716c1bb3dda029f9bf255435af72 06-Apr-2015 Andreas Gampe <agampe@google.com> ART: Enable more Clang warnings

Change-Id: Ie6aba02f4223b1de02530e1515c63505f37e184c
758a801b66c134361a7b43f7e83f85d1fb800c4c 04-Apr-2015 Andreas Gampe <agampe@google.com> ART: Enable Clang's -Wdeprecated

Replace throw() with noexcept.

Add default copy constructors and copy assignment constructors for
cases with destructors, as the implicit definition is deprecated.

Change-Id: Ice306a3f510b072b00bec4d4360f7c8055135c9d
ca71458862be8505330b7fd5649a062f31d143dc 04-Apr-2015 Andreas Gampe <agampe@google.com> ART: Add Clang's -Wused-but-marked-unused

Add detection of wrong unused annotations. Fix our codebase.

Change-Id: I85cc20f2eac71c1ec6c5c7cd6efb08454a629634
79bd2bfa8f1602067fd381834206ed6b7e73a9be 20-Mar-2015 Hiroshi Yamauchi <yamauchi@google.com> Make it possible to enable tlab with a build parameter.

For testing.

Change-Id: I4d06a4db733b7fa09105f068028483cf88db7925
f3c7ba6a5759873138fbf4ae24a216dc0d87a3fe 24-Feb-2015 Jeff Hao <jeffhao@google.com> Remove ART_SMALL_MODE ifdefs.

WITH_ART_SMART_MODE now sets --compiler-filter options instead.
Has a corresponding change to /build

Bug: 19460766
Change-Id: I295ebbd49caa5341834141f7c2bbf8df830131ed
3e781622a67e6d83e76e1bf765e9d84b3c718dc9 25-Feb-2015 Hiroshi Yamauchi <yamauchi@google.com> Fix method_verifier_test with the SS collector.

Rename art_default_gc_type to ART_DEFAULT_GC_TYPE.

Bug: 19514492

Change-Id: I3c7920e7a84327c5908462e51e21199b89fb187d
7c3952f423b8213083d60596a5f0bf4237ca3f7b 20-Feb-2015 Andreas Gampe <agampe@google.com> ART: Add -Wunused

Until the global CFLAGS are fixed, add Wunused. Fix declarations
in the optimizing compiler.

Change-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000
e5f13e57ff8fa36342beb33830b3ec5942a61cca 24-Feb-2015 Mathieu Chartier <mathieuc@google.com> Revert "Revert "Add JIT""

Added missing EntryPointToCodePointer.

This reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.

Change-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af
a5ca888d715cd0c6c421313211caa1928be3e399 24-Feb-2015 Nicolas Geoffray <ngeoffray@google.com> Revert "Add JIT"

Sorry, run-test crashes on target:
0-05 12:15:51.633 I/DEBUG (27995): Abort message: 'art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast<uintptr_t>(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc=71e3366b code=0x71e3362d size=ad000000'
10-05 12:15:51.633 I/DEBUG (27995): r0 00000000 r1 0000542b r2 00000006 r3 00000000
10-05 12:15:51.633 I/DEBUG (27995): r4 00000006 r5 b6f9addc r6 00000002 r7 0000010c
10-05 12:15:51.633 I/DEBUG (27995): r8 b63fe1e8 r9 be8e1418 sl b6427400 fp b63fcce0
10-05 12:15:51.633 I/DEBUG (27995): ip 0000542b sp be8e1358 lr b6e9a27b pc b6e9c280 cpsr 40070010
10-05 12:15:51.633 I/DEBUG (27995):

Bug: 17950037
This reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.

Change-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3
2535abe7d1fcdd0e6aca782b1f1932a703ed50a4 17-Feb-2015 Mathieu Chartier <mathieuc@google.com> Add JIT

Currently disabled by default unless -Xjit is passed in.

The proposed JIT is a method JIT which works by utilizing interpreter
instrumentation to request compilation of hot methods async during
runtime.

JIT options:
-Xjit / -Xnojit
-Xjitcodecachesize:N
-Xjitthreshold:integervalue

The JIT has a shared copy of a compiler driver which is accessed
by worker threads to compile individual methods.

Added JIT code cache and data cache, currently sized at 2 MB
capacity by default. Most apps will only fill a small fraction of
this cache however.

Added support to the compiler for compiling interpreter quickened
byte codes.

Added test target ART_TEST_JIT=TRUE and --jit for run-test.

TODO:
Clean up code cache.
Delete compiled methods after they are added to code cache.
Add more optimizations related to runtime checks e.g. direct pointers
for invokes.
Add method recompilation.
Move instrumentation to DexFile to improve performance and reduce
memory usage.

Bug: 17950037

Change-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca
40e7f0e25fe8c0d50e1ade5c28730bb07fe399ce 03-Feb-2015 Nicolas Geoffray <ngeoffray@google.com> Go back to -O2.

Stack space suffers otherwise.

Change-Id: I890a9714acd8500981c3d41df0f5f7fd63d48f8f
7b7e524c86a67f7357bbcfd0e7bde07ded50cca2 03-Feb-2015 Andreas Gampe <agampe@google.com> ART: Fix assembler_thumb_test

Fix the inconsistent calls. This was bad practice, requiring that
shape meant arm32 and thumb were not interchangeable.

Also fix an error in the assembler itself for tst and teq.

Change-Id: I50242801002aa81cc17bfaa53eb8b7c1d9488fbc
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
685fbe422ce8103933f709b29c97bbe32647c75e 27-Jan-2015 Andreas Gampe <agampe@google.com> ART: Clean up some build flags

Remove some no-longer necessary build flags.

Change-Id: Iea85a21689c20931b88d0e84b84410652b66b38d
c23f0d88bee65433a94f84c7cabe50be863905a5 24-Jan-2015 Hiroshi Yamauchi <yamauchi@google.com> Make it possible to enable read barriers at build time.

Bug: 12687968
Change-Id: I26ec55063c2d5ff0181e628c1002bfa609815b29
1a5c40672783fac98aca5a04ac798a0a0014de65 15-Jan-2015 Andreas Gampe <agampe@google.com> ART: Mips64 runtime support

Interpret-only Mips64 runtime support.

Change-Id: Iee22d0c8c77105d9b2f03a67dc4e09957fe0ab0a
89866b76de53945228eee9c89ee63a784fe5aba7 14-Jan-2015 Andreas Gampe <agampe@google.com> ART: Only give Clang warning when Clang is active

Do not pollute output with Clang warning if we were supposed to
compile with Clang.

Change-Id: I1ee764dcfe0581e09a350cb01fdf0ba06dd18b56
86bb22e188f587ba64a0e62ae5f44363d573345d 19-Dec-2014 Chih-Hung Hsieh <chh@google.com> Do not use clang for mips target.

Clang assembler cannot compile some inlined assembly code
in valgrind_malloc_space-inl.h:192:5: error: used $at without ".set noat"
However, clang generated assembly code for runtime/mirror/array.cc
cannot be compiled by gas.

BUG: 18789639
BUG: 18807290
Change-Id: Ifdeb3c50f11cefc7f0d62c1d36fdd1f8b9344fb4
bced67d061049b607ce02a9813ef9dd0c87f8081 07-Jan-2015 Andreas Gampe <agampe@google.com> ART: Fix Clang CFLAGS inclusion

Only include the CFLAGS if Clang is not explicitly disabled for the
architecture.

Change-Id: Ic63d7c8018f633a9b20a4ff9285d6380426017a5
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
a28ff0f8a4df47a53041a69e611b841d8d38b3a1 08-Dec-2014 Ying Wang <wangying@google.com> Revert "Fix VM-less builds."

This reverts commit 62753c474b83546f5f40ca114530a3f377a51bbc.

Bug: 18465297
Change-Id: I800198949e3837f8dab3ad966aeb7dac5d7911c0
b0d22f178c0a8d1ee7d3692f282bb46c53cc2036 08-Dec-2014 Hiroshi Yamauchi <yamauchi@google.com> Make it possible to enable heap poisoning via make variable.

If ART_HEAP_POISONING=true, build with heap poisoning enabled.

Bug: 8367515
Change-Id: I818e86047e6dd99b5bc9920713ef943a65b677e6
62753c474b83546f5f40ca114530a3f377a51bbc 02-Dec-2014 David 'Digit' Turner <digit@google.com> Fix VM-less builds.

This patch modifies Android.common_build.mk to avoid breaking the build
when trying to generate a system image that doesn't include a VM (which
is useful for low-level emulator feature testing, not general Android
development).

BUG=18581643

Change-Id: Ib75ebf14d3e9c8fc2ac591c7edd2ab4d6ff2ca89
3029df6d212894647ba0e5c23443c40912c6ecc8 03-Dec-2014 Mathieu Chartier <mathieuc@google.com> Print memory usage in dex2oat shutdown

Example on mako:
I/dex2oat (31071): dex2oat took 31.195s (threads: 2) arena alloc=1013KB java alloc=13MB native alloc=32MB free=1490KB

Bug: 18069309

Change-Id: I08eac00842be35d4e659bddc8513f2062be725c9
6c7cdc5eb809a72e5d0457d0220f9ad8458fe831 02-Dec-2014 Dan Albert <danalbert@google.com> Don't force color diagnostics.

Clang does this automatically for you now, and forcing it causes ugly
(and difficult to parse) error diagnostics for non-color terminals.

Change-Id: I5ceb673ad50ad99cb78c733d18ac7dbfe8f978d3
32f5b4d2c8c9b52e9522941c159577b21752d0fa 25-Nov-2014 Serban Constantinescu <serban.constantinescu@arm.com> Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug.

This patch updates the interface to VIXL 1.7 and enables the debug version of
VIXL when ART is built in debug mode.

Change-Id: I443fb941bec3cffefba7038f93bb972e6b7d8db5
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
cd195fe131842ad9ca7909203d479d325feaf9dd 26-Nov-2014 Mathieu Chartier <mathieuc@google.com> Add a way to change the IMT size

Useful for having smaller imts on memory constrainted devices.
Setting ART_IMT_SIZE=x will change the size of the IMT.

(cherry picked from commit 8ee96437f8cd24e1eb0b2adc6cef3346ed4b6a98)

Change-Id: Ia74946ffc57ad32de5a8d60be3412462f19f8076
8ee96437f8cd24e1eb0b2adc6cef3346ed4b6a98 26-Nov-2014 Mathieu Chartier <mathieuc@google.com> Add a way to change the IMT size

Useful for having smaller imts on memory constrainted devices.
Setting ART_IMT_SIZE=x will change the size of the IMT.

Bug: 17643507
Change-Id: Ia6bcfcb067c7e21c7f3003cf6254e4b2666ef169
9bb492a33c97e72d0c43a4ee968e34cc32534981 26-Nov-2014 Nicolas Geoffray <ngeoffray@google.com> Add ART_USE_OPTIMIZING_COMPILER flag.

Change-Id: I86065aec5bfe59729c6a4064a3e54d5b523ca45c
88f21ca9e1c48d75346577b48dc143c02f57fa4a 18-Nov-2014 Mathieu Chartier <mathieuc@google.com> Fix transitive equality error in set.

SubstringComparator used to be broken since it didn't have transitive
equality (ex. ab a ac). Now we use normal string comparison with
set.lower_bound saves an additional 12 bytes.

Also up frame size to 2700 to fix build.

Change-Id: Ie8d41faef37591e7feed1f5d2ad6258430b8ffb6

(cherry picked from commit 4b8b4693ee19efbd2d8692ca0b47b71f3b7da663)
8366ca0d7ba3b80a2d5be65ba436446cc32440bd 17-Nov-2014 Elliott Hughes <enh@google.com> Fix the last users of TARGET_CPU_SMP.

Everyone else assumes SMP.

Change-Id: I7ff7faef46fbec6c67d6e446812d599e473cba39
4b8b4693ee19efbd2d8692ca0b47b71f3b7da663 18-Nov-2014 Mathieu Chartier <mathieuc@google.com> Fix transitive equality error in set.

SubstringComparator used to be broken since it didn't have transitive
equality (ex. ab a ac). Now we use normal string comparison with
set.lower_bound saves an additional 12 bytes.

Also up frame size to 2700 to fix build.

Change-Id: Ie8d41faef37591e7feed1f5d2ad6258430b8ffb6
98b8bcf433e7bd8f1a447f7bf8d6cf80ec505c5e 15-Nov-2014 Dan Albert <danalbert@google.com> Up the stack size limit for SANITIZE_HOST.

Change-Id: I7c507a6a2e8de534f0e09e961d13db0223eee891
4ad5cd3e7d519484559ef778d96fb3f0be8919fa 12-Nov-2014 Ian Rogers <irogers@google.com> Modify the behavior of thread suspend shootouts.

The thread doing the suspension doesn't attempt to suspend the other thread
unless it knows another thread isn't trying to suspend it. Use the suspend
count, and its lock, for this purpose.
Re-enable ThreadStress test.
Bug: 15446488

Change-Id: Idd34410c7b89d8abd6973e5699a15ca699472c78
277ccbd200ea43590dfc06a93ae184a765327ad0 04-Nov-2014 Andreas Gampe <agampe@google.com> ART: More warnings

Enable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general,
and -Wunused-but-set-parameter for GCC builds.

Change-Id: I81bbdd762213444673c65d85edae594a523836e5
6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f 31-Oct-2014 Ian Rogers <irogers@google.com> Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.

Fix associated errors about unused paramenters and implict sign conversions.
For sign conversion this was largely in the area of enums, so add ostream
operators for the effected enums and fix tools/generate-operator-out.py.
Tidy arena allocation code and arena allocated data types, rather than fixing
new and delete operators.
Remove dead code.

Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b
63fc30e201a74dbad9422a6dbd4c39e4b60ac4c5 25-Oct-2014 Andreas Gampe <agampe@google.com> ART: Create and use multiple core images

Update test infrastructure to understand several core variants.
Now compiles three core.art/oat variants:

* core.art/oat, default-compiled
* core-interpreter.art/oat, interpret-only
* core-optimizing.art/oat, optimizing compiler

The run-test variant implies which core variant is used.

Change-Id: Ieeaf2df90faee2b04c209b950897e77806205fe4
ee0ebc81ba294710f90f0c8c934db1debae437aa 22-Oct-2014 Andreas Gampe <agampe@google.com> ART: Fix common_build CFLAGS

Actually use the additional art_clang_cflags.

Change-Id: I2b5c5dacfdbffaa9b9c1e7a6fdb8ad79d8536fe8
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
50fe6daa14e4f1f43ccacce9f03003570ea8c09f 17-Oct-2014 Ian Rogers <irogers@google.com> x86 build fix.

Remove -fkeep-inline-functions from debug builds, having it there causes
missing dependencies when we include system/core headers for the target on x86.

Change-Id: Ice5c6f0469f604efb58dfacf2ab6bb3183429850
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
59c07060a6fbb93e455b44f00098cafb8e7e26cc 10-Oct-2014 Ian Rogers <irogers@google.com> Work around ICE bugs with MIPS GCC and O1.

Also, work around GCC warning bugs where array accesses with explicit
bounds checks are flagged as being out-of-bounds. Significantly, clean-up
the HandleScope so the array accesses don't appear out-of-bounds at compile
time.

Change-Id: I5d66567559cc1f97cd0aa02c0df8575ebadbfe3d
647b1a86f518d8db0331b3d52a96392b7a62504b 10-Oct-2014 Ian Rogers <irogers@google.com> Fix 2 new sets of clang compiler warnings.

Fix issues that are flagged by -Wfloat-equal and -Wmissing-noreturn.
In the case of -Wfloat-equal the current cases in regular code are deliberate,
so the change is to silence the warning. For gtest code the appropriate fix is
to switch from EXPECT_EQ to EXPECT_(FLOAT|DOUBLE)_EQ.
The -Wmissing-noreturn warning isn't enabled due to a missing noreturn in
gtest. This issue has been reported to gtest.

Change-Id: Id84c70c21c542716c9ee0c41492e8ff8788c4ef8
fc787ecd91127b2c8458afd94e5148e2ae51a1f5 10-Oct-2014 Ian Rogers <irogers@google.com> Enable -Wimplicit-fallthrough.

Falling through switch cases on a clang build must now annotate the fallthrough
with the FALLTHROUGH_INTENDED macro.
Bug: 17731372

Change-Id: I836451cd5f96b01d1ababdbf9eef677fe8fa8324
611e1db69aff00f297d0d59c47af3c9ae563eb7b 09-Oct-2014 Nicolas Geoffray <ngeoffray@google.com> Makefile cleanups.

Also add the DEX2OAT_FLAGS to the generation of core.oat/core.art.

Change-Id: I5d113fad460b2e14fc652816069adba29ca744b8
88c05693f090bc2562a530a4696082229de98840 04-Oct-2014 Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> Respect USE_CLANG_PLATFORM_BUILD for art builds

Without this patch, ART_TARGET_CLANG is set to false unconditionally.
It should be set to whatever USE_CLANG_PLATFORM_BUILD requests, if the
latter is set.

Change-Id: I29c4397c308a1549c2097aad2c997fe732be27ac
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
d642a91052cd28735bf38cc4a79421ec24d1ee72 02-Oct-2014 Ian Rogers <irogers@google.com> Colorize warnings when building with clang.

Change-Id: Icbb26779852d2fc2344bac597d43c4301646ac90
07140838a3ee44a6056cacdc78f2930e019107da 01-Oct-2014 Ian Rogers <irogers@google.com> Enable -Wunreachable-code

Caught bugs in DeoptimizeStackVisitor and assemble_x86 SIB encoding.
Add UNREACHABLE macro to document code expected to be unreachable.
Bug: 17731047

Change-Id: I2e363fe5b38a1246354d98be18c902a6031c0b9e
29b3841ad8c1c18ee7ddd2d8cab85806b3d62eaa 13-Aug-2014 Andreas Gampe <agampe@google.com> ART: Set default visibility to protected

Set default visibility of symbols to protected. This allows the
linker to optimize internal calls and helps avoid plt calls.

Make almost all assembly stubs hidden, as -fvisibility does not
seem to apply to them. Change the assembly tests accordingly. Also
allows to clean up previous hacks to avoid plt calls.

Bug: 16974467

(cherry picked from commit 235e77bd9f19e4faefda109be40f8744f3a66f40)

Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652
235e77bd9f19e4faefda109be40f8744f3a66f40 13-Aug-2014 Andreas Gampe <agampe@google.com> ART: Set default visibility to protected

Set default visibility of symbols to protected. This allows the
linker to optimize internal calls and helps avoid plt calls.

Make almost all assembly stubs hidden, as -fvisibility does not
seem to apply to them. Change the assembly tests accordingly. Also
allows to clean up previous hacks to avoid plt calls.

Bug: 16974467
Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652
1740eca19de8870a319033eacde16793ef391825 25-Jul-2014 Dehao Chen <dehao@google.com> Remove the per-project FDO support. Use the common FDO support from build/core.
LOCAL_FDO_SUPPORT indicates if the module should enable FDO builds.

Change-Id: I1eab8bf418b7ceb060eea18bdd304a06597af3d3
e1b3cc7059461027ec767c78ee21d1f0e17be69c 24-Jul-2014 Stephen Hines <srhines@google.com> Increase limit to 2600 on host clang builds for frame size.

Change-Id: I573e1bcdc7a935145e88077def9c90a5573d2e90
137e5b22fe6672134dd2c7bb11b2ab26aff4724a 17-Jul-2014 Stephen Hines <srhines@google.com> Update frame-larger-than limit to 2440 for new clang.

Bug: 16362912

The latest version of clang is generating larger frames on elf_writer_quick.cc
and dex2oat.cc than we had previously encountered. This change unblocks the
LLVM rebase temporarily.

Change-Id: I20d9f88959b91e0509e58f01c22532720225f44d
1159727e271ad3dbc5f84859e3f3c463842e821e 24-Jul-2014 Stephen Hines <srhines@google.com> Increase limit to 2600 on host clang builds for frame size.

Change-Id: I573e1bcdc7a935145e88077def9c90a5573d2e90
67a4338c5cc91ad3a8a3b99f06e1cf03b232d156 17-Jul-2014 Stephen Hines <srhines@google.com> Update frame-larger-than limit to 2440 for new clang.

Bug: 16362912

The latest version of clang is generating larger frames on elf_writer_quick.cc
and dex2oat.cc than we had previously encountered. This change unblocks the
LLVM rebase temporarily.

Change-Id: I20d9f88959b91e0509e58f01c22532720225f44d
a59dd80f9f48cb750d329d4d4af2d99d72b484d1 03-Jul-2014 Alex Light <allight@google.com> Runtime can now be set to require relocation

Add a pair of runtime flags -Xrelocate and -Xnorelocate that can force
the runtime to require that all files that are run are relocated, to
prevent attacks based on the known art base address.

Add support for running patchoat on oat files compiled without an image.

Change run-test to have new --prebuild and --relocate flags.

Bug: 15358152

Change-Id: I91166c62dd1ab80e5cbcb7883a2cd0d56afca32d
997660dec8b10bba56276f35a9ee8d7ce9d62fc2 08-Jul-2014 Dehao Chen <dehao@google.com> Adds PGO_GEN and PGO_USE for libart and libart-compiler.

PGO_GEN=device_path is used to build an instrumented binary. The profile will be stored in the specified path in device.
PGO_USE=host_path is used to build an PGO-optimized binary. The profile should be pre-stored in the specified path in host.

Bug: 16153819
Change-Id: Ib56f8707df009f290608ca66f669db06e65815c1
d0996831baeeb1daeae1bb1cd77dd041238e46d0 25-Jun-2014 Ian Rogers <irogers@google.com> Fix various test dependencies.

(cherry picked from commit 665de8a1710d2418f60d3bffdc99bdac32252530)

Change-Id: I461b1a963262d48b5caa0e3492b7b923b29755c8
665de8a1710d2418f60d3bffdc99bdac32252530 25-Jun-2014 Ian Rogers <irogers@google.com> Fix various test dependencies.

Change-Id: I2e4761f4cc061f74319a7b64ebe67c553d5297df
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
ea521dccd5dea59bcdfda7cc61cdd413152a8890 25-Jun-2014 Sebastien Hertz <shertz@google.com> Really use GCC for ARM64

Restores change https://android-review.googlesource.com/98911 lost in change
https://android-review.googlesource.com/98456.

Change-Id: Ie11f807c554dbfa812a70b8a183966f388018276