Commit graph

234 commits

Author SHA1 Message Date
Evgenii Stepanov
68f8620ccb am 59b0dad7: am 55f3c4c2: Merge "Fix AddressSanitizer link order and multilib setup."
* commit '59b0dad7272118e39be180eef24ffa50c0ffdf17':
  Fix AddressSanitizer link order and multilib setup.
2015-04-27 23:14:37 +00:00
Evgenii Stepanov
f0b15e173b Fix AddressSanitizer link order and multilib setup.
ASan runtime library (when using dynamic linking) must be the first
dependency of the main executable to achieve correct symbol
interposition. This matches how the clang driver works.

In multilib setup, ASan-RT name depends on the target arch:
  /system/lib/libclang_rt.asan-arm-android.so
  /system/lib64/libclang_rt.asan-arm64-android.so

We also set RPATH to /system/lib/asan or /system/lib64/asan
to have a place for ASan-only versions of system libraries.

Change-Id: I5c0cdb89e5e08a1950eb276e406da9f31a6e52dd
2015-04-27 14:48:35 -07:00
Dan Albert
c2bc25496d am 07607526: am 63082eab: am b6874440: Merge "Add support for a partial ubsan build."
* commit '07607526b8701f471869aecbd89fe4ea1990251e':
  Add support for a partial ubsan build.
2015-04-17 20:14:13 +00:00
Dan Albert
b5b2ffe3be Add support for a partial ubsan build.
Some of the ubsan checks expose a few pathological performance cases
in clang, and thus aren't suited to be used in SANITIZE_HOST.

This mode is also supported on the target despite not having the
target runtime libraries for ubsan by generating traps.

Change-Id: I0b0f0a08ca84d72e44e2174a66726b1c5e5cad7e
2015-04-17 11:37:03 -07:00
Dan Albert
97952ce8ac am 3bc25d69: am 683a387e: am 4ed95088: Merge "Add support for ubsan."
* commit '3bc25d69580b5cdedd834fe6accf9cc27c0fb102':
  Add support for ubsan.
2015-04-15 22:56:21 +00:00
Dan Albert
4ed9508842 Merge "Add support for ubsan." 2015-04-15 22:06:15 +00:00
Pirama Arumuga Nainar
30314ea5ff am 1a2fd2eb: am 05130993: am dbecad05: Merge "Use -Wno-format-pedantic to disable overly aggressive format string warning."
* commit '1a2fd2eb1ac5160feb020b65a030c9b2c66d5dfc':
  Use -Wno-format-pedantic to disable overly aggressive format string warning.
2015-04-10 21:58:51 +00:00
Stephen Hines
b992bfcf33 Use -Wno-format-pedantic to disable overly aggressive format string warning.
Bug: 20148343

The latest clang warns on "%p" being used with non-void pointer types, which
would require a great deal of cleanup in several sub-projects.

Change-Id: I4175d5cf8709504455067c906a2eb8ccc8e25432
2015-04-10 09:12:38 -07:00
Dan Albert
08cca28f92 Add support for ubsan.
Rather than adding LOCAL_UB_SANITIZER, LOCAL_THREAD_SANITIZER, etc for
each new sanitizer, deprecate LOCAL_ADDRESS_SANITIZER in favor of
LOCAL_SANITZE that mirrors the behavior of -fsanitize=<sanitizers>.

For example, the following will use both asan and ubsan:

    LOCAL_SANITIZE := address undefined

We'll leave LOCAL_ADDRESS_SANITIZER around for compatibility until we
can clean up the tree.

Change-Id: I8a62315129d4753f8e992584ca6db1e5dfdd4d2a
2015-04-08 15:52:04 -07:00
Elliott Hughes
3101e61f5e resolved conflicts for merge of e04e91b1 to master
Change-Id: I537065b0810ea8525401778824c4810c5e7ef433
2015-04-03 07:43:46 -07:00
Chih-Hung Hsieh
9205bc1da6 Filter out gcc flags that are not recognized by clang.
Change-Id: I04e95fc3b0cb2825bf90a55916f89d25fa9fc475
2015-04-02 14:42:20 -07:00
Dan Albert
57d71306a5 am 8f7338d9: am dc8d7092: am 0064c51e: Merge "Use prebuilt libclang_rt.profile."
* commit '8f7338d9b145379ea9c51b7e551509a2d8f0f24e':
  Use prebuilt libclang_rt.profile.
2015-04-02 18:49:26 +00:00
Dan Albert
343ed674e3 Use prebuilt libclang_rt.profile.
Bug: 17574078
Change-Id: I4838cd5d125a0b2bf76aad2fdaef1ee3122687e8
2015-04-01 19:03:22 -07:00
Stephen Hines
55ae50dc1d am 95212b90: am 31f35975: am 9a98c47c: Merge "Don\'t warn on definition of possibly reserved identifiers."
* commit '95212b900b7a9a205d6f8b79dc3fcc07576c18cd':
  Don't warn on definition of possibly reserved identifiers.
2015-04-01 22:09:03 +00:00
Stephen Hines
9a98c47c64 Merge "Don't warn on definition of possibly reserved identifiers." 2015-04-01 18:50:29 +00:00
Chih-hung Hsieh
cdac639599 am 29b415aa: am 1e9b11f4: am d63c78e0: Merge "Allow -mcpu=cortex-a15 for clang"
* commit '29b415aa7781b27fc4948307acc5961cd702dac2':
  Allow -mcpu=cortex-a15 for clang
2015-03-27 23:49:27 +00:00
Stephen Hines
f68002187a Don't warn on definition of possibly reserved identifiers.
Change-Id: Icfcfa94aac0503c97dee0ff4d0cd49107201526d
2015-03-25 17:28:57 -07:00
Bernhard Rosenkränzer
a24a9a8e62 Allow -mcpu=cortex-a15 for clang
Clang 3.6 (including the snapshot present in AOSP) added support for
-mcpu=cortex-a15 -- there's no need to fall back to generic armv7-a
anymore.

Change-Id: I8a582261ac35e32f8f1def1d244cf83f2096520d
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2015-03-25 16:59:46 +01:00
Chih-Hung Hsieh
44fe7554c8 Remove special x86 flag that disables tail call optimization.
Clang's tail call optimization for position independent code
only works when the callee was called (bound in GOT) before
the jump through GOT.
It does not work for some lazy bound Android tail callee.
We used special flag to disable all tail call optimization.

This change removes that global flag and depends on
clang compiler fix from upstream or the temporary patch in
https://android-review.googlesource.com/#/c/142241

See proposed llvm changes and pointers to llvm bugs in
https://android-review.googlesource.com/#/c/142792

Change-Id: Idb6e98d6b5f0e4c3676884b69eb3e767eba2491a
2015-03-25 00:19:16 +00:00
Chih-Hung Hsieh
7e44d7febf Filter out gcc only flags.
They are currently used in some vendor projects.

Change-Id: Iff30966cba3b2941a8921cc35bb3ed1e4fea0bad
2015-03-19 15:17:06 -07:00
Chih-Hung Hsieh
78df832481 Filter out unsupported flag: -fprefetch-loop-arrays
Change-Id: I55ba9045948a910ebd76c09f9f4ebb6b37eed1e7
2015-03-05 16:02:04 -08:00
Chih-Hung Hsieh
73e734bea5 Disable tail call optimization and use -mstackrealign to boot up on fugu.
http://llvm.org/bugs/show_bug.cgi?id=15086,
llvm tail call optimization is wrong for x86.

For Android/x86 to use SSE* instructions safely, stack should be 16-byte
aligned before JNI function call, which isn't true for all x86 device,
so -mstackrealign should be the default.

BUG: 19234330
Change-Id: I4c6676366788772dbe64fd7f0dd33b3ed5c9b80e
2015-03-02 16:50:39 -08:00
Miao Wang
9b2908b4f6 Make bcc-compat able to pick the right mtriple flag for Renderscript
Compat Lib.

Change-Id: Ifb3093ebc392d107e874cee3a67b5f6e942c6e0a
2015-01-12 17:20:28 -08:00
Tim Murray
7c40fb95dc disable Krait for Mac builds to avoid assembler issues
Change-Id: Ie98f4dbc2cef92798ec08b43b93e7e0339a92a92
2014-12-09 14:28:57 -08:00
Dan Albert
b58fb4aac6 Let clang decide ASan linker flags for the host.
Pass -fsanitize=address instead of manually specifying asan libraries
and other linker flags.

Note that we enable LOCAL_ALLOW_UNDEFINED_SYMBOLS by default for host
builds because ASAN only links symbols in the final executable, so
there will _always_ be undefined symbols in intermediate libraries.

Bug: 18208352
Change-Id: Ief55ab296e94974560eeb10507ec8d90f0025d5c
2014-12-05 14:52:56 -08:00
Stephen Hines
433f1614b0 Switch to Clang 3.6.
This change also defaults C compilations with clang to gnu99, and turns off
the -Winconsistent-missing-override flag, since we need further cleanup to
turn it on. -finline-functions is an unnecessary flag that only gcc needs.

Change-Id: I1cfcaedca32d9e3c248a6aa9460603205901c491
2014-12-03 15:11:09 -08:00
Stephen Hines
1568029218 Add more support for GLOBAL_CONLYFLAGS.
This will be necessary to support -std=gnu99 mode for clang 3.6, which
defaults to C11 mode (unlike prior releases that use C99).

Change-Id: Iea84582f9f12ba76b988463cbc0a20bd61042538
2014-12-01 15:36:26 -08:00
Ying Wang
a69e59623b am 478eda53: Merge "FORCE_BUILD_LLVM_COMPONENTS if HOST_PREFER_32_BIT."
* commit '478eda5365f866c830f957d6bd1aba3854d55bcc':
  FORCE_BUILD_LLVM_COMPONENTS if HOST_PREFER_32_BIT.
2014-11-07 00:58:32 +00:00
Ying Wang
e5d4e74f9f FORCE_BUILD_LLVM_COMPONENTS if HOST_PREFER_32_BIT.
Because we don't have 32-bit prebuilt libLLVM/libclang.

Change-Id: I86dac33e9bcbcb3d197f7d1e4c9d33bd4e7c473e
2014-11-06 14:11:33 -08:00
Stephen Hines
f1c5dd60b2 am 35e4ede5: Merge "Use automatic color option with the latest clang."
* commit '35e4ede5974053d05ae0f8791e60ba77a31907b3':
  Use automatic color option with the latest clang.
2014-11-04 17:44:44 +00:00
Stephen Hines
c141b85ef1 Use automatic color option with the latest clang.
Bug: 18187181

Now that I checked in the latest prebuilts, clang will automatically use
color on terminals and no color on redirection to files or non-terminals.

Change-Id: I9be00c44947946cc18ce59c936b7f45d0ce2b6fc
2014-11-03 23:42:10 -08:00
Ying Wang
7f18adc240 am 871b8df1: Merge "Add -fcolor-diagnostics to global clang cflags."
* commit '871b8df128b144f39d40889e463722a032c4d246':
  Add -fcolor-diagnostics to global clang cflags.
2014-10-30 23:43:02 +00:00
Ying Wang
c7d1a973b0 Add -fcolor-diagnostics to global clang cflags.
Bug: 18187181
Change-Id: Ifcbe34b685b1dfd7ffc801bcdad7bd8208e45f86
2014-10-30 12:22:29 -07:00
Ian Rogers
508e27bfd7 am 93cb8c7d: Merge "Specify -mcpu=krait for clang."
* commit '93cb8c7d951b89eeb1e3cee2433bffecc13fdb11':
  Specify -mcpu=krait for clang.
2014-10-29 12:32:37 +00:00
Ian Rogers
e270873407 Specify -mcpu=krait for clang.
Change-Id: I64682cddf57246341c1727ca16c56f7ce0c6fd0a
2014-10-28 15:50:02 -07:00
Chih-Hung Hsieh
736a146c3c am 717ebfc1: Merge "Add unknown flag to CLANG_CONFIG_UNKNOWN_CFLAGS."
* commit '717ebfc13182202ab38e17c0cd008924e9e5c4e9':
  Add unknown flag to CLANG_CONFIG_UNKNOWN_CFLAGS.
2014-10-28 04:48:54 +00:00
Chih-Hung Hsieh
54fd82d111 am 660f3c9a: Merge "Set default to Clang integrated assembler."
* commit '660f3c9ae9cb99f428fb62fb6a1256679eb9f138':
  Set default to Clang integrated assembler.
2014-10-24 13:02:00 +00:00
Chih-Hung Hsieh
22b6c5c2c1 Add unknown flag to CLANG_CONFIG_UNKNOWN_CFLAGS.
BUG: 18108271
Change-Id: Id929cad31340d2946027603c1c8c8fb1cb60f66a
2014-10-23 16:39:09 -07:00
Chih-Hung Hsieh
57c8a15edd Set default to Clang integrated assembler.
BUG: 17820427
Change-Id: I10a6ddd94aad083665164d7939990e148b3b6efb
2014-10-22 09:21:53 -07:00
Bill Yi
13466f0f79 Merge commit '66b3e31936b99436e01c473dca492126eea3e336' into HEAD 2014-10-22 08:45:57 -07:00
Ying Wang
18cd02257d Merge "Add -Wno-unused-command-line-argument to clang cflags to enable ccache." 2014-10-21 19:19:16 +00:00
Ying Wang
24e03369cf Add -Wno-unused-command-line-argument to clang cflags to enable ccache.
Previously ccache is disabled when it fails calling clang's preprocessor with
unused arguments (such as '-Wa,--noexecstack') in the command line.

See http://petereisentraut.blogspot.com/2011/05/ccache-and-clang.html.
(-Qunused-arguments suppresses more than
-Wno-unused-command-line-argument does.)

Change-Id: I6cde307632c8395c053eb28063d7844d93070562
2014-10-20 17:21:16 -07:00
Dan Albert
96983cba42 am cc0aa4da: am 28c265dd: Merge "We also need -rdynamic for host ASAN."
* commit 'cc0aa4dabd4bae2b17bc9de8f88e04e862d030b2':
  We also need -rdynamic for host ASAN.
2014-10-20 22:42:11 +00:00
Dan Albert
4ffe3f5b9f We also need -rdynamic for host ASAN.
Change-Id: Iee33ca85c25d9bf126be8318a3b837074ab10076
2014-10-20 13:54:27 -07:00
Dan Albert
66acb2a8ae resolved conflicts for merge of 96c22133 to lmp-dev-plus-aosp
Change-Id: I35a2f403e9e664536b45b5ac9185adf1e1a02442
2014-10-20 13:37:18 -07:00
Dan Albert
2daceaa83c Add support for ASAN in host modules.
Change-Id: Id9ed83499e0eb995f06e845c3153a50677d768b8
2014-10-20 11:37:18 -07:00
Chih-Hung Hsieh
25756c1422 am 8913e282: am 29373be8: Merge "Add -fPIC as default Clang mips ASFLAGS."
* commit '8913e28295a9f93121fa60f74a6ff39eadd2e86d':
  Add -fPIC as default Clang mips ASFLAGS.
2014-10-09 17:24:37 +00:00
Chih-Hung Hsieh
ce6300a5db Add -fPIC as default Clang mips ASFLAGS.
For mips target, gcc passes -KPIC to assembler by default,
but clang passes -KPIC only if -fPIC or -fpic is given.

BUG: 17895505
Change-Id: I7803adaf8ad7b40c6473872b67f4e0b4c502b38a
2014-10-08 15:41:29 -07:00
Stephen Hines
532376db67 am 56f688bc: Merge "Switch TBLGEN-related executables to use "BUILD_" instead of "HOST_"." into lmp-dev
* commit '56f688bce5f3229f065a94446d049bc3a055b92b':
  Switch TBLGEN-related executables to use "BUILD_" instead of "HOST_".
2014-10-01 23:01:29 +00:00
Stephen Hines
b34b7aeb31 Switch TBLGEN-related executables to use "BUILD_" instead of "HOST_".
Bug: 14416410
Change-Id: Ife2d7329795f229adcddc5c57b20aa96c56387c0
2014-09-30 02:37:20 -07:00
Stephen Hines
7a5d35b22a am 145eddfd: am 670018fd: Merge "Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables."
* commit '145eddfd229b118fadd4f4f255dbecc1a79b5e2b':
  Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables.
2014-09-26 19:53:06 +00:00
Stephen Hines
03b61bea0d am 3041b7d1: am 3cf20570: Merge "Use new variable LLVM_PREBUILTS_VERSION to simplify path construction."
* commit '3041b7d1f4f457082f8de50bba31adb479731d36':
  Use new variable LLVM_PREBUILTS_VERSION to simplify path construction.
2014-09-26 19:53:05 +00:00
Stephen Hines
f00896663e Remove unnecessary CLANG_CONFIG_EXTRA_*_C_INCLUDES variables.
These aren't needed now that we only use the compiler/headers that exist in
the prebuilts/clang directory.

Change-Id: I9978efb10815e92577d45629db324e0a5094f880
2014-09-25 22:35:16 -07:00
Lai Wei-Chih
8affa161fe Use new variable LLVM_PREBUILTS_VERSION to simplify path construction.
This removes the hard-coded '3.5' in the various paths and makes switching to
a new toolchain easier from the command line (m LLVM_PREBUILTS_VERSION=3.6).

Change-Id: I46b10eb2fc177a03528de9c7b433f8647f632081
2014-09-24 14:59:00 -07:00
Andrew Hsieh
360b851034 Change mips64 default to mips64r6 from mips64r2
Also add back mips flags previously can't be handled by clang

See aosp/build
  13066a8d4c
  10326b3d7f

Change-Id: Iedc8dadd24f72fbd9c5589eec34677c1827290f3
2014-09-04 19:01:22 -07:00
Stephen Hines
2f9fa52025 Merge "Fix build breakage due to incorrect bcc_compat RS_TRIPLE." 2014-09-03 16:02:09 +00:00
Stephen Hines
2138f5ecbc am 52626d2a: Fix build breakage due to incorrect bcc_compat RS_TRIPLE.
* commit '52626d2a7b4767905e8a369ddc8316c1290ad156':
  Fix build breakage due to incorrect bcc_compat RS_TRIPLE.
2014-09-03 14:34:52 +00:00
Stephen Hines
5c72544d48 Fix build breakage due to incorrect bcc_compat RS_TRIPLE.
Bug: 17333374
Change-Id: I13582ce0cde86f7b3728aa4f45a5197438d65a2d
(cherry picked from commit 52626d2a7b)
2014-09-02 21:46:25 -07:00
Stephen Hines
52626d2a7b Fix build breakage due to incorrect bcc_compat RS_TRIPLE.
Bug: 17333374
Change-Id: I13582ce0cde86f7b3728aa4f45a5197438d65a2d
2014-09-02 19:09:35 -07:00
Ying Wang
3b581732f6 am 067dd379: am cee38d55: Merge "[MIPSR6] R6 target options for clang"
* commit '067dd37952ce2df454623d4f849d079673b12f49':
  [MIPSR6] R6 target options for clang
2014-09-03 01:28:30 +00:00
Ying Wang
cee38d55f8 Merge "[MIPSR6] R6 target options for clang" 2014-09-03 01:02:54 +00:00
Stephen Hines
6aa90f75f6 am 6f8fe420: am ec8778e8: Merge "Fix RS_TRIPLE and RS_TRIPLE_CFLAGS."
* commit '6f8fe42043ab75860ac38c20e907976101a39f71':
  Fix RS_TRIPLE and RS_TRIPLE_CFLAGS.
2014-09-02 16:44:37 +00:00
Stephen Hines
41b83d6d3c Fix RS_TRIPLE and RS_TRIPLE_CFLAGS.
Bug: 17333374

Add RS_TRIPLE_CFLAGS to ensure that we build with the proper defines on
targets like x86. This also changes all build targets to use the
proper 32/64-bit triples when creating their runtime libraries.

(cherry picked from commit 039675adb8)

Change-Id: Ib7b5bb7aae5abcad9ab477a00e368179d0121091
2014-09-02 09:41:03 -07:00
Stephen Hines
ec8778e89f Merge "Fix RS_TRIPLE and RS_TRIPLE_CFLAGS." 2014-09-02 16:23:11 +00:00
Stephen Hines
039675adb8 Fix RS_TRIPLE and RS_TRIPLE_CFLAGS.
Bug: 17333374

Add RS_TRIPLE_CFLAGS to ensure that we build with the proper defines on
targets like x86. This also changes all build targets to use the
proper 32/64-bit triples when creating their runtime libraries.

Change-Id: I8f6175b1a14af6d03ee90f32069f3688ec227fb9
2014-08-29 15:20:05 -07:00
Chih-Hung Hsieh
1df281a08a am 9e59e663: am 90d5c7f6: Merge "Clang rejects -Wno-old-style-declaration flag."
* commit '9e59e66373a68782179f5522d125c8617ecd92a6':
  Clang rejects -Wno-old-style-declaration flag.
2014-08-27 02:50:29 +00:00
Chih-Hung Hsieh
60d2b58fa2 am 0b97fd8a: am b699b0ea: Merge "Clang does not recognize -Wno-literal-suffix."
* commit '0b97fd8acef5d69b2f0abf19493ec5640bbd2085':
  Clang does not recognize -Wno-literal-suffix.
2014-08-27 00:01:43 +00:00
Chih-Hung Hsieh
fb482c6d5d Clang rejects -Wno-old-style-declaration flag.
BUG: 17258227
Change-Id: I2a35263298ffd8dd7cda25183e185274cbf62b7b
2014-08-26 16:37:00 -07:00
Chih-Hung Hsieh
4d12b5788d Clang does not recognize -Wno-literal-suffix.
BUG: 17258227
Change-Id: I2d98e68daa780fbe0e127605840ae7edcb4e9880
2014-08-26 15:30:04 -07:00
Chih-Hung Hsieh
237a8ffedf am 9050234a: am f1c63b02: Merge "Add GCC only flags to clang .mk files."
* commit '9050234a5eb3b4395618a151aa752ebcfff9a3eb':
  Add GCC only flags to clang .mk files.
2014-08-26 04:17:43 +00:00
Chih-Hung Hsieh
0278174764 Add GCC only flags to clang .mk files.
BUG: 17258227
Change-Id: Iec9fdb21a9fa31e18a17704beb27bb493c9b7192
2014-08-25 16:49:53 -07:00
Duane Sand
02f285208c [MIPSR6] Add mips64r6 and mips32r6 targets
Add mips64r6 target and corresponding mips32r6 target.
Defaults remain as mips64r2 and mips32r2.

Apply -FP64A codegen subsetting to mips32r6 only.
Access FR=0 odd-numbered 32-bit float regs only via
double-prec even-numbered regs, not by single-prec ops.

(cherry picked from commit 6bab974cdc)

Change-Id: I447337ce56c15e86cec505d68a6b45294fc3ba77
2014-08-05 12:39:28 -07:00
Duane Sand
1d04a53ba3 [MIPS64] Enable mips64 clang
(cherry picked from commit 41ca444637)

Change-Id: I0b141c58c88fe86e3a59844f53acc9a0e0a5271c
2014-08-05 12:38:31 -07:00
Duane Sand
3c4fcd8451 [MIPS] Unite mipsel and mips64el 4.9 gcc toolchains
Use 4.9 mips64el toolchain for both 64- and 32-bit builds.
Tell ld when 32-bit links are required.
Override 4.9's changed defaults for mips floating point
register use, to get same assembler rules as 4.8 and earlier.

Also: drop unused  soft-fp build targets, cleanout redundant
compiler options, and remove extraneous Android.mk file.

(cherry picked from commit 6670e24aed)

Change-Id: I34d2f8fc6113c9d1670e3acff1aff48634b9fe1b
2014-08-05 12:28:44 -07:00
Duane Sand
13066a8d4c [MIPSR6] R6 target options for clang
Pass along new R6 target arch options and floating
point register model options to clang.
Also pass along older arch variants.

This patch depends on recent Mips extensions to 3.5 clang.
The new options are rejected by aosp's current 3.5 clang.
This only affects builds for mips32r6/mips64r6, not Android's
default builds for mips32r2.

Change-Id: Ic921dc14ced34a83143a82e322124b3ef035014a
2014-07-31 14:58:48 -07:00
Ying Wang
fe2f5fe5cf am e0383397: am e1a77930: Merge "Update host linux toolchain to gcc 4.8"
* commit 'e0383397a2be0be120da20cebd77e3f1f811a6b0':
  Update host linux toolchain to gcc 4.8
2014-07-31 18:04:20 +00:00
Elliott Hughes
1a6971b2f5 am c378352d: am d23798bf: Merge "[MIPSR6] Add mips64r6 and mips32r6 targets"
* commit 'c378352de8a07a7b8dabd444d130710ce1cb3eed':
  [MIPSR6] Add mips64r6 and mips32r6 targets
2014-07-30 23:30:07 +00:00
Elliott Hughes
81379e6590 am e4d54f31: am 0b3c42cb: Merge "[MIPS] Unite mipsel and mips64el 4.9 gcc toolchains"
* commit 'e4d54f317df641faf216e4000fbc3d091d3c1abc':
  [MIPS] Unite mipsel and mips64el 4.9 gcc toolchains
2014-07-30 23:30:05 +00:00
Ying Wang
b53efd68b5 am 18c20aae: am aea1cae4: Merge "Revert "Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang."""
* commit '18c20aae44b5736b673c8776202e1e76b6bd81cd':
  Revert "Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang.""
2014-07-30 16:22:00 +00:00
Elliott Hughes
d23798bfdc Merge "[MIPSR6] Add mips64r6 and mips32r6 targets" 2014-07-30 11:26:00 +00:00
Ying Wang
1b0fc43557 Revert "Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang.""
This reverts commit a4f84fdfed.
Added "export CCACHE_CPP2 := true" to work around ccache bug with clang.
See:
http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html

Change-Id: I2b1fa8fd59c3a113c4028a92a1d16018133c9792
2014-07-29 18:05:27 -07:00
David 'Digit' Turner
44ee3419e7 Update host linux toolchain to gcc 4.8
This patch ensures the build system uses the prebuilt gcc-4.8 toolchain
when building host Linux binaries, instead of the gcc-4.6 one.

Change-Id: I7b449650714ba4314a780827e0243f2af40ec82c
2014-07-31 19:51:40 +02:00
Marcin Kosiba
dc5be215db am bf4ac764: am 6be7d2e5: Merge "Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang.""
* commit 'bf4ac764cdc7bf6b09e30b79ca6088ef17de9e07':
  Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang."
2014-07-28 11:57:17 +00:00
Ying Wang
defccfe52f am 53e19fd4: am 45040bdb: Merge "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang."
* commit '53e19fd4e259ea47e6b81b8472fbdc6041ca7044':
  Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang.
2014-07-26 00:52:21 +00:00
Ying Wang
b169fb7822 Revert "Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang.""
This reverts commit a4f84fdfed.
Added "export CCACHE_CPP2 := true" to work around ccache bug with clang.
See:
http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html

Change-Id: I2b1fa8fd59c3a113c4028a92a1d16018133c9792
2014-07-30 10:14:37 -07:00
Tim Murray
72c70d14d4 resolved conflicts for merge of 2812b27c to lmp-dev-plus-aosp
Change-Id: I770fbf16affbd43b0750b50426298038e4b573b7
2014-07-24 14:27:05 -07:00
Duane Sand
6bab974cdc [MIPSR6] Add mips64r6 and mips32r6 targets
Add mips64r6 target and corresponding mips32r6 target.
Defaults remain as mips64r2 and mips32r2.

Apply -FP64A codegen subsetting to mips32r6 only.
Access FR=0 odd-numbered 32-bit float regs only via
double-prec even-numbered regs, not by single-prec ops.

Change-Id: I1740a6c658304b6c41242be58d68753e6f171658
2014-07-24 11:19:21 -07:00
Ying Wang
5de8ebc8f7 am 5d23800f: am 1bb9adb8: Merge "[MIPS64] Enable mips64 clang"
* commit '5d23800f2b61c03a97395815e94d2aa44eea8577':
  [MIPS64] Enable mips64 clang
2014-07-24 01:49:26 +00:00
Duane Sand
6670e24aed [MIPS] Unite mipsel and mips64el 4.9 gcc toolchains
Use 4.9 mips64el toolchain for both 64- and 32-bit builds.
Tell ld when 32-bit links are required.
Override 4.9's changed defaults for mips floating point
register use, to get same assembler rules as 4.8 and earlier.

Also: drop unused  soft-fp build targets, cleanout redundant
compiler options, and remove extraneous Android.mk file.

Change-Id: I86f1075266349edb2b08a7709b9f5472d8cfda32
2014-07-23 14:16:00 -07:00
Duane Sand
41ca444637 [MIPS64] Enable mips64 clang
Change-Id: I737f40ff1d4c71c21bea5159d1b0acee89fe32a2
2014-07-23 14:10:39 -07:00
Marcin Kosiba
6be7d2e5bb Merge "Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang."" 2014-07-23 19:31:58 +00:00
Dan Albert
a4f84fdfed Revert "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang."
This broke the world.

This reverts commit 3b7a4d811d.

Change-Id: Iefb01b8642a92bcc718d2c745e8ce1346ba50143
2014-07-26 20:35:06 +00:00
Tim Murray
92d79cbb41 Switch host builds to use Clang by default.
If LOCAL_CLANG is not set to false for a host module, clang will be used instead of gcc.

This also enables the integrated assembler by default for Darwin host builds.

bug 16172793

Change-Id: If7484c5dbcccce7d925bec97bff0a3e4c30e9434
2014-07-24 09:25:58 -07:00
Ying Wang
45040bdbb8 Merge "Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang." 2014-07-23 18:04:01 +00:00
Elliott Hughes
0b3c42cbc8 Merge "[MIPS] Unite mipsel and mips64el 4.9 gcc toolchains" 2014-07-23 17:53:27 +00:00
Marcin Kosiba
3b7a4d811d Introduce CC/CXX/JAVAC_WRAPPER to wrap the calls to clang.
This is essentially Ide800c24f0c2ebbb1cfb358bd8f99ec8a9d41253
applied to clang.

Change-Id: I883f9e9a31fff50a64568a06ef5248437344542b
2014-06-19 15:33:26 +01:00
Brian Carlstrom
3bd5abb4f9 am a44f9a35: am edbc4595: am d51730a6: Merge "Help catch common 32/64-bit errors."
* commit 'a44f9a35a284c600616a7f2213a861ecdefd5615':
  Help catch common 32/64-bit errors.
2014-06-17 23:38:48 +00:00
Brian Carlstrom
338d1e7f33 Help catch common 32/64-bit errors.
(cherry picked from commit cf5ea762e015bc044d251814d9062ef1df4dd49f)

Change-Id: I43eb93d41967c63acb0723083c0178019f1364d0
2014-06-17 15:23:49 -07:00
Ying Wang
f7988507f4 am 2d19cbd2: resolved conflicts for merge of 135e11df to klp-modular-dev-plus-aosp
* commit '2d19cbd279ed69c7202f089be174c35c1585f709':
  Switch to 32-bit-by-default host multilib build.
2014-06-11 19:26:30 +00:00
Ying Wang
2713fcebba Switch to 32-bit-by-default host multilib build.
Also we don't need to force LLVM built from source, for we already force
LLVM to be built as 32-bit.

Bug: 13751317
Change-Id: Ifadf1988d28b60cb06316de50f5bdc1834f1acc0
2014-06-09 17:48:05 -07:00
Tim Murray
a526c48982 am 45c39300: am 3c52ff07: am e564c0cb: Merge "Switch name from tblgen -> llvm-tblgen for consistency with upstream tools."
* commit '45c3930084180857d7b09c0859805506e7ede847':
  Switch name from tblgen -> llvm-tblgen for consistency with upstream tools.
2014-06-04 19:22:56 +00:00
Stephen Hines
5339640da6 Switch name from tblgen -> llvm-tblgen for consistency with upstream tools.
Change-Id: I7735fd88104ff95001dd5f88a1c387df9af993ad
2014-06-03 18:28:44 -07:00
Ying Wang
ae9ee9c0e7 am 71617605: am 8e2b2d8a: am b0143e2f: Merge "Add some more flags to CLANG_CONFIG_UNKNOWN_CFLAGS"
* commit '716176059ab8962c7049f91c83c82b1af9f2632a':
  Add some more flags to CLANG_CONFIG_UNKNOWN_CFLAGS
2014-05-22 18:28:06 +00:00
Ying Wang
b0143e2fff Merge "Add some more flags to CLANG_CONFIG_UNKNOWN_CFLAGS" 2014-05-22 17:38:01 +00:00
Ying Wang
a448430343 am 9e55ed53: am 47316a27: am 5137d458: Merge "Force to build llvm from source in 64-bit host build."
* commit '9e55ed53ef7dfebc759a2494503b19e33b0c47d7':
  Force to build llvm from source in 64-bit host build.
2014-05-16 19:05:40 +00:00
Ying Wang
6374153fbf Force to build llvm from source in 64-bit host build.
Bug: 13751317
Change-Id: I4a4150bfe21607eb7a2342bbd8120b431427eee5
2014-05-16 09:37:23 -07:00
Ying Wang
5077d6b4f8 am 0a2c133d: am 5b768a72: am f14653ce: Merge "x86_common.mk has been replaced by HOST_x86_common.mk"
* commit '0a2c133dc85e611b209244a6024a8390f338a63d':
  x86_common.mk has been replaced by HOST_x86_common.mk
2014-05-16 02:00:28 +00:00
Ying Wang
a303c4f546 x86_common.mk has been replaced by HOST_x86_common.mk
Change-Id: I19eea82bb35d3f65a2d894c687131a1eafbe2cc9
2014-05-15 18:50:06 -07:00
Ying Wang
8200231ae1 am e50f2d9f: am 40b49d30: am a74ade94: Merge "Support host multilib build"
* commit 'e50f2d9f32a27d8290692dbf99ab8b247ef9d553':
  Support host multilib build
2014-05-15 01:09:49 +00:00
Ying Wang
6feb6d5607 Support host multilib build
This change basically ported our target multilib to the host side.
It supports 2 host build modes: x86 and x86_64 multilib build.
For now you need to set "BUILD_HOST_64bit=true" to switch to x86_64
multilib build. Later we'll default to x86_64 build and have a flag
to force 32-bit only build, which may be needed by SDK build.

In host module definition, like in target ones, you can use the
following
LOCAL variables to set up multilib configuration:
LOCAL_MULTILIB: can be "both", "first", "32" or "64".
It also supports the same set of arch or 32-vs-64 specific LOCAL
variables.
By default, it builds only for the first arch.

To keep path compatibility, in x86_64 build files are still output to
out/host/linux-x86; Both 32-bit and 64-bit executables are in
out/host/linux-86/bin;
In x86_64 build 32-bit shared libraries are installed to
out/host/linux-x86/lib32
and 64-bit shared libraries are installed to out/host/linux-x86/lib;
32-bit object files are output to out/host/linux-x86/obj32 and 64-bit
object files
are output to out/host/linux-x86/obj.

Bug: 13751317
Change-Id: I6044f83b7db369a33e05209e8c588eb6dc83409f
2014-05-14 16:55:04 -07:00
Bernhard Rosenkraenzer
d6e11825c4 Add some more flags to CLANG_CONFIG_UNKNOWN_CFLAGS
Add some more gcc specific flags that are used somewhere in the tree
(e.g. external/chromium_org) to CLANG_CONFIG_UNKNOWN_CFLAGS

Change-Id: Icc572fdb6ea4ba818c4d18e430296589eb61bf55
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
2014-05-12 16:05:14 +02:00
Andrew Hsieh
9604c0680f am a01cb054: am c581e10a: am eca0043b: Merge "Disable canonical prefixes of system headers"
* commit 'a01cb05450c6435c9cdca58534ed00eafb07f6eb':
  Disable canonical prefixes of system headers
2014-05-09 17:06:54 +00:00
Andrew Hsieh
48f239c94f Disable canonical prefixes of system headers
GCC know a few pre-defined paths (relative to its location) to
search for headers, libraries, program, etc.  By default GCC prefixes
its own path(argv[0]) and calls realpath() which result in absolute
path with all symlink, . and .. removed.

It's usually good to have canonicalised paths, but absolute paths
in *.d file can cause unnecessary relinking when stale entries
in ccache cache hit

Add -no-canonical-prefixes (gcc>=4.6) and
-fno-canonical-system-headers (gcc>4.6) to disable realpath() on
prefixed paths

Change-Id: I58d739e61fb013015fb05a9c98b2132b307f915a
2014-05-09 22:12:49 +08:00
Tim Murray
f38dd880c9 am 09e044ea: am 6ac74e6d: am d720c5a2: Merge "Add -no-integrated-as for ARM64."
* commit '09e044ea813cc23b1d3b5ed99b20dea9ec7c5328':
  Add -no-integrated-as for ARM64.
2014-05-02 18:30:12 +00:00
Tim Murray
d720c5a2a6 Merge "Add -no-integrated-as for ARM64." 2014-05-02 18:21:34 +00:00
Tim Murray
93dc057826 am cf53e0e0: am 27fe9406: am 7e65b6c1: Merge "Remove tblgen and clang-tblgen from prebuilts."
* commit 'cf53e0e0aaf569d7e76472e2958dca5a44f45df2':
  Remove tblgen and clang-tblgen from prebuilts.
2014-04-30 23:35:46 +00:00
Tim Murray
6f144b8f65 Add -no-integrated-as for ARM64.
Change-Id: I7faba190554aa43f43b2eb164bdc7b3bfab68ef0
2014-04-30 15:55:52 -07:00
Tim Murray
75b58cc827 Remove tblgen and clang-tblgen from prebuilts.
Change-Id: I89fb74da5a516d0f768f72518a401216f8a5b1a8
2014-04-30 13:54:32 -07:00
Stephen Hines
46df181815 am f0dda8d0: am 9661b09f: am 9956bb6a: Merge "Build changes necessary for LLVM 3.5 switch."
* commit 'f0dda8d0cbb249be24a71776289b1d9ebe17faaf':
  Build changes necessary for LLVM 3.5 switch.
2014-04-25 22:51:38 +00:00
Tim Murray
43d5e1bbc4 Build changes necessary for LLVM 3.5 switch.
Change-Id: Icb6065daada7cb1d7425206830a4ef9e23454c03

Conflicts:
	core/clang/arm.mk
2014-04-24 13:14:32 -07:00
Andrew Hsieh
582e5ecb75 am aabe27cc: am 9754735f: am db55f602: Merge "Switch to new host prebuilt x86_64-linux-glibc2.11-4.6"
* commit 'aabe27ccfd7f372d75426181eeeede4a7f908179':
  Switch to new host prebuilt x86_64-linux-glibc2.11-4.6
2014-04-24 15:43:17 +00:00
Andrew Hsieh
dfde360b2c Switch to new host prebuilt x86_64-linux-glibc2.11-4.6
Change-Id: I763398d523bf4851a13722f72b12ec69d7a4bb4f
2014-04-23 14:47:00 -07:00
Ying Wang
6e048afb4b am ad60c86e: am f1a3d5e8: am 871bc703: Merge "Update build system for better Clang behavior on Mac."
* commit 'ad60c86eda1a975d6966f414b4a7065d97e7505b':
  Update build system for better Clang behavior on Mac.
2014-04-23 00:23:22 +00:00
Tim Murray
d318ba66f9 Update build system for better Clang behavior on Mac.
Change-Id: I1813954681b670807d7e3faaf6d5f5a769cc5f2e
2014-04-22 09:26:22 -07:00
Evgeniy Stepanov
5d8029f234 Update ASan configuration.
Change runtime library name to keep in sync with upstream.
Enable frame pointers in instrumented code for fast stack unwind.

Change-Id: I815912bb856c56c399639ea76ad4cb6b97961840
2014-04-16 10:52:10 +00:00
Tim Murray
125a3c9fb0 Always use prebuilt clang, even if we're explicitly building clang/LLVM.
This is needed for self-hosting Clang/LLVM.

bug 13588226

Change-Id: Ic98adc2b174b12ce046b7b65bbc28901a766a485
2014-04-01 16:08:51 -07:00
Tim Murray
02cefc93a8 Make Clang host builds hermetic on Linux.
This lays the groundwork for making builds hermetic on Darwin as well.
That will be fixed in a future patch.

bug 13435344

Change-Id: Iae82d0b9efad0598d682ff5fd4daa737aa607866
2014-03-24 19:38:47 -07:00
Ying Wang
ed56902c29 Remove arm64 clang build warning
Now we have enabled arm64 clang.
This change remvoed arm64 clang build warning and cleaned the
arm64 unknow c flags.

Change-Id: Ia583a78c6d364e603ff09df423aa34a6e03d0b9b
2014-03-18 15:58:13 -07:00
Tim Murray
b5f333bbef Work in progress to enable build system support for Clang.
Change-Id: I278b48bcd976afcbde8d86261da9b9b9efc9002c
2014-03-14 00:39:03 -07:00
Ying Wang
ba8b377d89 Split WITHOUT_CLANG to WITHOUT_HOST_CLANG and WITHOUT_TARGET_CLANG
Still keep WITHOUT_CLANG, which enables both.

Bug: 13402154
Change-Id: I32cb668223997719875751bf3d64f592d6086830
2014-03-10 18:59:12 -07:00
Stephen Hines
7bc754bca9 Switch to LLVM 3.4 prebuilts in AOSP.
Change-Id: I064e953fb1bf69e7e321616647aab88dcc39af76
2014-02-19 09:03:00 -08:00
Stephen Hines
6d5dd2367a Fix incorrect x86 build rules.
combo/TARGET_x86*.mk mistakenly added TARGET_GLOBAL_CFLAGS to their
linker command lines. This results in clang builds not working properly,
since they strip some unknown flags from TARGET_GLOBAL_CFLAGS.

Change-Id: I60a1ff5df70305323134435e4ae107ea7acfe8ea
2014-02-13 09:24:29 -08:00
Colin Cross
b0ef9111ac fix 2nd target clang prebuilt paths
Change-Id: I4c196221bd377e30bbff1aafa265952e29c85cb5
2014-02-11 12:48:12 -08:00
Ying Wang
1f9828387d Refactor llvm_config.mk and support the 2nd arch
1. Following the setup of gcc in build/core/combo/,
we added the [HOST|TARGET]_<arch>.mk clang config files,
and load only the configs needed by the current product.
2. Added support for the 2nd arch.

Change-Id: I2a383418a9688a050b39492f8e489d40eeeb5f2d
2014-02-07 09:11:22 -08:00