Commit graph

84 commits

Author SHA1 Message Date
Ying Wang
66c8e8c756 Don't prepend CC_WRAPPER to CLANG.
We have deferred the CC_WRAPPER prepending to binary.mk per module.

Bug: 22612634
Change-Id: If2c0549503989d17ff7be619fdd49c26fd78f0a5
2015-08-03 14:06:58 -07:00
Evgenii Stepanov
6708b6c99c 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: I937d202077b6e433ba476c075d31be818b662d53
2015-05-12 13:40:29 -07:00
Chih-Hung Hsieh
0ba68bafa3 Upgrade x86 gcc to 4.9 and disable devirtualization.
Also filter out gcc-only flags -Wno-clobbered and -fno-devirtualize
when compiled with clang/llvm.

BUG: 19872411
Change-Id: I6de57583be04da607f569df65e93531787dbb789
(cherry picked from AOSP commit 90036610dd)
2015-05-06 00:24:18 +00: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
f68002187a Don't warn on definition of possibly reserved identifiers.
Change-Id: Icfcfa94aac0503c97dee0ff4d0cd49107201526d
2015-03-25 17:28:57 -07: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
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
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
22b6c5c2c1 Add unknown flag to CLANG_CONFIG_UNKNOWN_CFLAGS.
BUG: 18108271
Change-Id: Id929cad31340d2946027603c1c8c8fb1cb60f66a
2014-10-23 16:39:09 -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
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
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
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
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
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