Commit graph

306 commits

Author SHA1 Message Date
Chih-Hung Hsieh
8fdda6e495 Accept environment variables DEFAULT_*_TIDY_CHECKS
* Define DEFAULT_GLOBAL_TIDY_CHECKS/DEFAULT_EXTERNAL_VENDOR_TIDY_CHECKS
  only if it is not already defined.

Bug: http://b/27779618
Test: build with WITH_TIDY=1 and define those variables.
Change-Id: I201c9da3769d6ef658a75d4a1bf42ec6816d4069
2016-10-04 10:18:02 -07:00
Chih-Hung Hsieh
f3ae1a441e Merge "Use DEFAULT_EXTERNAL_VENDOR_TIDY_CHECKS for vendor/google_devices" am: 3d38042a00 am: c3118d2cd2 am: 2a9f96a1ee
am: 80d9efd0a3

Change-Id: I47140fc6faba804ff2a943a5b67d6d7217e05b25
2016-10-01 00:36:03 +00:00
Chih-Hung Hsieh
10efc73c06 Use DEFAULT_EXTERNAL_VENDOR_TIDY_CHECKS for vendor/google_devices
Many source files under vendor/google_devices
are old third party code with too many clang-tidy
misc-macro-parentheses warnings.

Test: build with WITH_TIDY=1
Change-Id: I79248af3ece9c7a4436b8cf5e6c25f224fd8201b
2016-09-30 14:50:43 -07:00
Stephen Hines
83dd356704 Merge "Switch to using clang-3289846." am: 7ec2a39c3f am: 523543b17c am: f01330d8df
am: 6ac9550c6a

Change-Id: I4159bec7fd9bb68d4d7f266d098c9fca17130fcd
2016-09-29 03:28:40 +00:00
Stephen Hines
183b142ac9 Switch to using clang-3289846.
Bug: http://b/30252254
Test: Built/boot platform using latest prebuilts.
Change-Id: I7c9357a99afec323fd766e93b5d5e941e9e06244
2016-09-28 08:51:55 -07:00
Dan Willemsen
a802bf5714 Merge "Remove spaces from DEFAULT_TIDY_HEADER_DIRS" am: f69e48b30b am: 785d69a849 am: b4b610278b
am: 28666571b4

Change-Id: Ia50c9f7b042e8494ec2a4509159a5591949e5a11
2016-09-27 01:31:24 +00:00
Dan Willemsen
69811f89d6 Remove spaces from DEFAULT_TIDY_HEADER_DIRS
I'm preparing to move this to Soong, and it's simpler to compare if the
spaces are removed here (to match the other lists in this file).

Test: WITH_TIDY=true; compare build.ninja before and after change
Change-Id: Ib27a19a36ebb1132300a8c1eeace1202685dfc4c
2016-09-26 16:02:15 -07:00
Chih-hung Hsieh
6afe656b6d Merge "Define DEFAULT_TIDY_HEADER_DIRS." am: 9d66e2c2ef am: 84be3dc50a am: 59ac695071
am: e28fd9f2e4

Change-Id: I40f077e04438e2b3c54887d82a782af460304aa3
2016-09-08 20:42:34 +00:00
Chih-hung Hsieh
9d66e2c2ef Merge "Define DEFAULT_TIDY_HEADER_DIRS." 2016-09-08 20:24:07 +00:00
Chih-Hung Hsieh
0a33f65cc8 Define DEFAULT_TIDY_HEADER_DIRS.
Let clang-tidy report warnings in header files in the
system and current directories but not the external
and vendor directories.

Test: build with WITH_TIDY=1
Change-Id: I1723b8eb95948961fb7164a19989e0a926e5bf8a
2016-09-06 20:06:28 -07:00
Colin Cross
57546850da Merge "Remove HOST_PREFER_32_BIT" am: 182ff5e2e7 am: a128976547 am: 0ab4eb9734
am: 3de35b8ada

Change-Id: Id379d498af36fd393cfe22ddb54d3b5e61accd2c
2016-09-03 00:47:21 +00:00
Colin Cross
70e0ac6bc1 Remove HOST_PREFER_32_BIT
HOST_PREFER_32_BIT was used during the switch to 64-bit host tools to
keep the SDK building as 32-bit, but is never set any more.

Change-Id: I874f89c7d1e9cd8c9d4c879048d81a4362ce4dce
2016-09-02 13:20:52 -07:00
Pirama Arumuga Nainar
4e0c2b2dda Merge "Switch to prebuilt clang-3217047" am: 3500ddfe1b am: c3c8abdf2a am: c328dd288c
am: 944bb9aec5

Change-Id: I7a799b03d648341439cae65cff9aa5392e5c37a7
2016-08-29 20:44:22 +00:00
Pirama Arumuga Nainar
3500ddfe1b Merge "Switch to prebuilt clang-3217047" 2016-08-29 19:38:34 +00:00
Pirama Arumuga Nainar
6290aac57a Switch to prebuilt clang-3217047
Bug: http://b/30421084
Change-Id: I41acd016992a0c5043b6ea018f205fad44c88b9e
Test: Tested build, boot and common usage for several devices in AOSP
and internal branch.
2016-08-26 21:57:29 +00:00
Chih-hung Hsieh
08a4f17004 Merge "Suppress clang-tidy checks in frameworks/compile/mclinker." am: a9ee94f441 am: 5c2ca39c58 am: 920f36ad97
am: 385c2af183

Change-Id: I494a02910f420d099ecdd9ddd87ac87629399dcf
2016-08-25 02:46:22 +00:00
Chih-Hung Hsieh
b9ea8d191d Suppress clang-tidy checks in frameworks/compile/mclinker.
Too many warnings need to wait for upstream changes.
Test: build with WITH_TIDY=1.

Change-Id: I0b1272049ad757670182668db130512a538b3096
2016-08-23 11:07:19 -07:00
Chih-Hung Hsieh
cef6ce03c9 Merge "Clarify default tidy check lists." am: ce4c49c2f2 am: 94a2c5f6b7 am: fba612f125
am: 7e2a95ff2f

Change-Id: I3f8ec4c49ada8dd90ccc312054d85a0d6de8c7b2
2016-08-17 18:51:03 +00:00
Chih-Hung Hsieh
97032ccda3 Clarify default tidy check lists.
* Sort all enabled and disabled checks.
* Disable google-default-arguments for external and vendor projects.

Bug: http://b/27779618
Change-Id: I59e6eaf84fddf54bd89eb71a2189d73b64968057
Test: build with WITH_TIDY=1.
2016-08-16 15:47:56 -07:00
Chih-hung Hsieh
952c3d9c68 Merge "Simplify DEFAULT_LOCAL_TIDY_CHECKS." am: 4d9d191ee7 am: e79eae70f4 am: b847aeabd6
am: ded6bb0ee6

Change-Id: I28ec914e5dff04990474655f94964c331646441d
2016-08-08 23:45:09 +00:00
Chih-hung Hsieh
4d9d191ee7 Merge "Simplify DEFAULT_LOCAL_TIDY_CHECKS." 2016-08-08 23:22:13 +00:00
Chih-Hung Hsieh
fac1926481 Simplify DEFAULT_LOCAL_TIDY_CHECKS.
* Now each local directory path is matched against multiple
  patterns and only the last matched one will be used,
  or the DEFAULT_GLOBAL_TIDY_CHECKS is used.

Bug: http://b/27779618
Change-Id: I786e6cacd8a680a034b4bc09f561f658177d9b17
Test: build with WITH_TIDY=1.
2016-08-08 15:01:59 -07:00
Chih-hung Hsieh
18e3c9401e Merge "Make it an error when LOCAL_CLANG is false." am: 9204b776bb am: f329021c0f am: aefdd322de
am: b1012bd713

Change-Id: I49c29e4db7b4c7f8263ed758e516f43c49fbf4ca
2016-08-05 22:44:18 +00:00
Chih-Hung Hsieh
2ee4c1abbf Make it an error when LOCAL_CLANG is false.
Only projects in LOCAL_CLANG_EXCEPTION_PROJECTS can set LOCAL_CLANG to false.
Add external/gentoo/integration to this white list.

Bug: 30575506
Change-Id: Icd508686bc2eb8b9d400200166df80115af20da1
Test: build and find new warning in build.log
2016-08-05 11:21:20 -07:00
Chih-Hung Hsieh
3d723c3312 Add projects not compiling with clang.
Bug: 30575506
Change-Id: Iffe9bebb3f063f52a3cc879176ed7c0f3ae8652a
2016-08-03 14:44:27 -07:00
Chih-Hung Hsieh
3ea1e51ebe Allow late binding of LOCAL_CLANG_EXCEPTION_PROJECTS.
* INTERNAL_LOCAL_CLANG_EXCEPTION_PROJECTS is defined later in other config.mk.
Bug: 30575506
Test: build and find new warning in build.log

Change-Id: If5341a856d1792add38c80a15b8deae39f156138
2016-08-03 11:57:30 -07:00
Chih-Hung Hsieh
82c78c5445 Allow some bionic tests to compile with gcc.
bionic/tests has some test cases compiled with both gcc and clang.

Bug: 30575506
Change-Id: I68576a931021089ecc6b9c9d14ef0b3e3cf05e2d
Test: build and find new warning in build.log
2016-08-03 10:42:10 -07:00
Chih-Hung Hsieh
d9cd1fafb5 Issue warning on projects with LOCAL_CLANG set to false.
* LOCAL_CLANG_EXCEPTION_PROJECTS is the list of project prefixes.
* New warning message is detected by warn.py as high severity.

Bug: 30575506
Change-Id: I87a38b2ba6bab1d2e5e7a9d5ec9557f0e609727c
Test: build and find new warning in build.log
2016-08-02 16:10:49 -07:00
Chih-Hung Hsieh
c868293abc Add performance* to default global tidy checks.
* This enables 5 performance related checks:
    performance-faster-string-find
    performance-for-range-copy
    performance-implicit-cast-in-loop
    performance-unnecessary-copy-initialization
    performance-unnecessary-value-param
* Recognize these new warnings in warn.py.

Bug: http://b/27779618
Change-Id: I7af3fdc262dd44db90d3b62eb37c5eac5a2eaa01
Test: build with WITH_TIDY=1 and run warn.py with build.log
2016-07-26 14:36:54 -07:00
Chih-Hung Hsieh
c21ddbdcce Recognize new clang and clang-tidy warnings.
* Count new clang-tidy warnings:
    google-runtime-references
    google-runtime-operator
* Count new clang warnings:
    -Wconst-conversion similar to -Wliteral-conversion
    -Wundefined-var-template
* Modified static analyzer warning message about
    "Null passed to a callee that requires a non-null ..."
* Disable google-runtime-references by default and
  disable misc-macro-parentheses in vendor projects;
  too many old C/C++ code have this warning.

Change-Id: Ib35e0af85875aada17c92b0237b76cd5ae3bfcc8
Test: build with clang-tidy.
2016-07-20 14:45:01 -07:00
Pirama Arumuga Nainar
d1c2ff4f06 Switch to prebuilt clang-3016494
Test: Tested build, boot and common usage for Arm, Arm64, x86, x86_64,
Mips images in AOSP and internal branch.

Bug: http://b/29823425
Change-Id: I97299c8b41ff9d3ac7019a349aa569609a099233
2016-07-19 20:32:21 +00:00
Dan Willemsen
6e22c756fc Drop CLANG and CLANG_CXX in the environment
We'll explicitly pass these variables to the static analyzer builds in
binary.mk

Bug: 29071982
Change-Id: Ifc7633d36f5785fe16b63f54b885396c2cab542a
2016-06-06 13:13:50 -07:00
Dan Willemsen
056609ccfe Remove unnecessary variables
These are all either recently unused due to the removal of CFLAGS/etc,
or have been exported by Soong and are no longer necessary.

Change-Id: I5930d43fda21acc8202b3d8ea010fbefb6ae4cf1
2016-05-25 21:23:20 -07:00
Dan Willemsen
02268f01df Move to a single clang unknown flags list
Soong is using a single list of unknown clang flags for all
architectures, instead of the per-architecture list here. Collapse this
down to a single list as well so that it can be verified against the
Soong list, and eventually replaced by the Soong version.

Change-Id: If43cd892105da5155907c05965a74b835920a369
2016-05-19 15:33:54 -07:00
Dan Willemsen
174feb906f Remove (C|CPP|CONLY|LD)FLAGS checked by Soong
At the beginning of every build, Soong has exported its version of these
variables, and has been ensuring that when sorted, the result is the
same. So these variables all have the same flags of the Soong ones, but
may be in different orders. We don't believe any of the remaining order
differences matter. As we remove the Make definitions, the exported
Soong variables will take over.

This only removes lines that change one of these variables:

  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]HOST_CROSS_GLOBAL_LDFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]HOST_GLOBAL_LDFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CONLYFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_CPPFLAGS
  [2ND_][CLANG_]TARGET_GLOBAL_LDFLAGS

Many other variables are unnecessary now too, but those will be removed
in another change. For those we can ensure the build.ninja file does not
change, but we expect it to change here due to the ordering differences.

Change-Id: I0bd0778706d02ee27b2784dd8dc6b2c71d37bd3a
2016-05-18 18:10:04 -07:00
Dan Willemsen
30b57cd7d5 Merge "Remove make variables exported from Soong" 2016-05-18 00:36:46 +00:00
Dan Willemsen
7701eaa5b2 Remove redundant clang cppflags
Cppflags always get added to cflags, so we don't need to duplicate clang
cppflags extras that are already in the clang cflags extras

Change-Id: Ic099f565f20fd993fc0713c033fbc5154373c98f
2016-05-17 00:42:41 -07:00
Dan Willemsen
4863dafcb1 Remove make variables exported from Soong
These have all been strictly checked by Soong, so the values currently
match. Just remove them so that the make variables exported by Soong
will take over.

This also removes some of the GCC reconfiguration, since we haven't
implemented that in Soong. If it becomes useful in the future, we'll
implement it there.

Some things like TARGET_TOOCHAIN_ROOT can nearly be removed, but are
used before the Soong-exported make_vars.mk is loaded. In that case,
added to the clang cflags, so it can be removed once the cflags are
removed.

Others, like LLVM_PREBUILTS_VERSION are loaded even earlier -- in
envsetup.sh before we've even configured Soong. So for now, keep the
Make definition, and continue ensuring it's the same as the Soong
version.

Change-Id: I554b27062ac43610828a8c06d640d919a2dc21ca
2016-05-16 20:39:58 -07:00
Chih-Hung Hsieh
e1ea9434c1 Add misc-macro-parentheses to default tidy checks.
* Disable this check in external projects.

Bug: 28705665
Change-Id: Ia44a15765fd637dae36b5e0f2b59ee4280b139c9
2016-05-11 13:43:11 -07:00
Treehugger Robot
f948dddfe0 Merge "Remove -mcpu=cortex-a15 when adding -mcpu=krait" 2016-05-09 22:43:09 +00:00
Dan Willemsen
aeadf41e69 Remove -mcpu=cortex-a15 when adding -mcpu=krait
This is not necessary, since the later -mcpu=krait will override the
earlier -mcpu=cortex-a15, but is cleaner (and matches Soong).

Change-Id: I18301faf8a5cb5364617b3008bc8af461b7884f8
2016-05-09 14:55:10 -07:00
Dan Willemsen
593e670602 Revert "[MIPS] Temporarily disable Mips shared-textrel errors"
This reverts commit 3dfd20aea4 - the clang
version we are using has the mentioned permanent fix. The new build
system (Soong) uses a single list of unknown clang flags for all
architectures, so workarounds like this no longer work.

Change-Id: I64a83f3b52a9ca1d11a76df5a060a36f42e27e4b
2016-05-09 13:10:05 -07:00
Alistair Strachan
5ff9c81b6c Avoid accidentally using the host's native 'as' command.
When invoking clang for the host to assemble .S files, the -B flag
would not be provided, which allowed the host prebuilt clang to
use an 'as' from the native environment. Most of the time this
"just works", but some newer 'as' versions cause problems with
the older prebuilt toolchain, for example by generating
unsupported relocation types.

To avoid this problem, simply use the -B flag to tell clang to
invoke the assembler from the correct prebuilt gcc prefix.

Change-Id: I18ea4f37ae637b652cfd7321c41929f8be075342
Signed-off-by: Alistair Strachan <alistair.strachan@imgtec.com>
2016-05-05 16:29:08 -07:00
Pirama Arumuga Nainar
fa4ff9defd Merge "Update RS to use latest Clang-2812033 prebuilts as well." 2016-05-04 21:00:07 +00:00
Stephen Hines
348b81a404 Update RS to use latest Clang-2812033 prebuilts as well.
Change-Id: I62e294e2b8c882c235a6ac7518fa352acd46e055
2016-04-29 16:50:48 -07:00
Chih-Hung Hsieh
30f86e4ab8 Suppress google-* checks in vendor modules.
Too many warnings in vendor code that we cannot fix yet.

Bug: http://b/27779618
Change-Id: I8b65b1fd55c4e4d0dadf0617ab25962809237309
2016-04-29 15:16:59 -07:00
Stephen Hines
fb737e9002 Merge "Switch to clang-2812033." 2016-04-27 22:33:05 +00:00
Stephen Hines
e8b87607c8 Switch to clang-2812033.
Bug: http://b/25291096
Change-Id: I630b7e8a682e3c3b82ad9837b664c1155497618f
2016-04-26 14:34:24 -07:00
Chih-Hung Hsieh
460171a3e4 Add tidy.mk to set up global default checks.
* Default checks include only google* minus google-readability*.
* Some google-* checks are disabled for external projects.
* Each project can add more or disable checks through LOCAL_TIDY_CHECKS.

Bug: http://b/27779618
Change-Id: I83eed73bd2bddaace565a6dde532fb2036b4fac4
2016-04-25 12:17:03 -07:00
Stephen Hines
a58cefb683 Merge "Enable asan/ubsan for mips" 2016-04-20 04:44:39 +00:00
Dan Willemsen
1c4f8e0026 Remove extraneous /
This matches the line we use in Soong, and behaves no differently.

Change-Id: I4487f7f5555edd08dc67a22d547f8218d46ccd8f
2016-03-30 13:36:01 -07:00
Pirama Arumuga Nainar
6721b1d185 Merge changes from topic 'rebase_r256229'
* changes:
  Switch to clang-2690385
  Update RenderScript build rules for rebase to LLVM r256229
2016-03-18 21:54:51 +00:00
Pirama Arumuga Nainar
760aec5fdf Switch to clang-2690385
http://b/26987366

Change-Id: I1226f24b50319e321ea538362b2f26fcd227ca39
2016-03-17 13:30:22 -07:00
Pirama Arumuga Nainar
41f4b242e3 Update RenderScript build rules for rebase to LLVM r256229
http://b/26987366

- Use clang-2690385 to build RenderScript toolchain.
- Use armv7-linux-androideabi as the triple used to build RenderScript
  runtime libraries.

Change-Id: I582e8b25bbc38b101a2e765028ed61edbce7bdc2
2016-03-17 13:30:02 -07:00
Chih-Hung Hsieh
ad741e6d66 Link in ASAN library if my_global_santitize is set.
* When my_global_santitize is set and requires ASAN,
  link with ASAN library even when local module is not
  instrumented with ASAN, unless the local module is
  the ASAN library itself.
* Add -Wl,--as-needed to my_ldflags for shared libraries
  so that unneeded ASAN library would not become
  a dependent of the built .so file.
* Change shared file and executable file link argument order
  so that -Wl flags will have effect on linked-in libraries.
* Remove unused ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES.

BUG: 27614834

Change-Id: I4eda6003f1f24e498cba91c043dbe1fabe522686
2016-03-15 16:53:46 -07:00
Stephen Hines
c503d8ef58 Switch to clang-2658975.
Bug: http://b/27482631

This fixes an issue where krait compiles were not passing the proper
flags to the assembler when -no-integrated-as is used. This was
preventing ART from switching to clang in some cases.

Change-Id: I24966bf1ff84305df3586ab01d1aae7d5922aa11
2016-03-04 14:40:56 -08:00
Duane Sand
cc1a0fdde1 Enable asan/ubsan for mips
Change-Id: I1f3c89d6ca08d109e7d2a6d32448ff248a98daac
2016-02-29 15:42:38 -08:00
Stephen Hines
352bccb65e Update to use the latest clang-2629532.
Bug: http://b/25642296
Change-Id: Ib6c94bc57f7145c1cc9b14338126132fc4648509
2016-02-23 21:58:06 -08:00
Elliott Hughes
eb295fccb4 clang now supports -fdebug-prefix-map=.
Change-Id: Id0569831f09845871d8e6990c310516bea5a2510
2016-02-19 13:34:57 -08:00
Chih-Hung Hsieh
765c1ea6d7 Use newest clang static analyzers.
* When WITH_STATIC_ANALYZER is set and non-zero, and clang compiler is used,
  call new clang ccc-analyzer or c++-analyzer.
* Otherwise, if WITH_SYNTAX_CHECK is set and non-zero,
  call compiler with -fsyntax-only.
* Replace "--sysroot=path" with "--sysroot path", to work with ccc-analyzer.
* ccc-analyzer executes the original compilation command to generate
  object files before calling clang with --analyze to do static analysis.
* When clang is called with --analyze, macro __clang_analyzer__ is defined.

BUG: 13287788

Change-Id: I5edb25b52998d871385dd000778db2ce83224078
2016-02-11 16:43:51 -08:00
Dan Willemsen
9ecbf83259 Add 64-bit windows cross-compiles
This is mostly the same as the existing 2ND_HOST / HOST_CROSS support.

The interesting thing I did here was make x86 the 'first' architecture,
and x86_64 the second. This way LOCAL_MULTILIB := first defaults to
32-bit windows modules.

  windows-x86/bin   <- defaults to 32-bit executables
  windows-x86/lib   <- 32-bit libraries, like before
  windows-x86/lib64 <- 64-bit libraries
  windows-x86/obj   <- 32-bit intermediates
  windows-x86/obj64 <- 64-bit intermediates

Then modules are registered with the names:

  host_cross_liblog    <- 32-bit, like before
  host_cross_liblog_64 <- 64-bit

Bug: 26957718
Change-Id: I9f119411acb43e973ec1e6bca3c1dc291c91556c
2016-02-05 16:33:18 -08:00
Stephen Hines
cdb52b5186 Fix LLVM_RTLIB_PATH for new prebuilts.
This moved from lib/ to lib64/, but wasn't noticed because no one builds
with the profiler on by default.

Change-Id: I0155263b4a50437ea0864338fb34baefc3df59d2
2016-02-04 11:43:41 -08:00
Stephen Hines
6ef329eb4d Switch to clang-2577113.
Bug: http://b/25282907

This is actually based on clang/LLVM upstream revision r256229.

Change-Id: I335be68f196e5b55ac2816fa854e97b841b54240
2016-02-01 23:37:14 -08:00
Colin Cross
41fed8c082 Merge "Don't force color diagnostics outside of ninja" 2016-02-01 18:57:50 +00:00
Stephen Hines
49b695375c Add an RS_CLANG variable as well for RenderScript.
Change-Id: I33a73c4c2b19aa17bc18a64c92a86565111de3d0
2016-01-22 15:11:58 -08:00
Stephen Hines
96d2a8c5e4 Add clang rules for RS_LLVM_* tools.
This change adds new variables for RS_LLVM_* tools, which correspond
to the version of LLVM checked in currently to external/, instead of
mapping to the latest host prebuilts. This will help prevent version
differences for newer IR generated by the updated host prebuilts, which
then might not be readable with the on-device LLVM bits we build from
external/.

Change-Id: I6c7b0fa9082e9c8244cc508cb23960569a057740
2016-01-21 23:50:53 -08:00
Colin Cross
dbd43849fb Don't force color diagnostics outside of ninja
Building with USE_NINJA=false and piping build output to a file will
result in ANSI color codes in the build output.  Only force ANSI codes
on when building with ninja, which strips the ANSI codes when writing
build output to a non-TTY.

Change-Id: Ifd2fb53799fd99c23b7ad91cdb84d943bf707db0
2016-01-13 14:05:54 -08:00
Dan Willemsen
d1baa0f001 Remove -Wa,noexecstack from unsupported arm clang flags
This was marked as unsupported only on arm[64], even though it works.
For soong, we want to keep a single list of unsupported clang flags
for all architectures.

Change-Id: I9c4ae0f255c549d2346ba7abae57e22c86ddcc61
2016-01-12 15:54:57 -08:00
Evgenii Stepanov
18733b9b0c Merge "Remove RPATH for AddressSanitizer." 2015-12-21 18:32:36 +00:00
Evgenii Stepanov
bbd944a25d Remove RPATH for AddressSanitizer.
RPATH was used in order for ASan executables to prefer ASan libraries
under /data. Now ASan executables use a special loader (linker_asan),
which implements this logic. RPATH is no longer needed.

Change-Id: Ic7a39b022267b80bd0ce3e95a2e822eb308a1fba
2015-12-21 10:29:54 -08:00
Elliott Hughes
505e4ec646 Be smarter about stack-protector on the host.
Some projects are still built with our host GCC 4.8, which doesn't
support -fstack-protector-strong. The combo .mk files are used by
GCC and clang, so it's not safe to turn on -fstack-protector-strong
there. Instead, do it in the clang-specific .mk for now.

We can clean this up when elfutils (the last code built for the host
with GCC that I'm aware of) is built by clang. We'll be able to
remove the host GCC prebuilts too!

Change-Id: I314b9eab071c132a8e2cb8cc779a75ae8abb12e2
2015-12-14 13:20:59 -08:00
Stephen Hines
af9e29d040 Merge "Rename AArch64 ASan target runtime library to match upstream convention." 2015-11-19 16:14:08 +00:00
Stephen Hines
bf45029dc4 Rename AArch64 ASan target runtime library to match upstream convention.
Rename from
 libclang_rt.asan-arm64-android.so
to
 libclang_rt.asan-aarch64-android.so

Change-Id: I6d73f458f437440c1de5bc72d2188d392c80cb98
2015-11-18 22:13:16 -08:00
Dan Albert
2d6d5c6e53 Really allow overriding the LLVM prebuilts path.
Not sure why my previous testing was working without this, but kati is
a bit pickier about ?= vs :=.

Change-Id: I80243a3c93dec7fd9b8e6f92e2c6cc956706ace0
2015-11-18 18:01:31 -08:00
Dan Albert
8b1d17706f Allow overriding the LLVM prebuilts path.
The automated build will need to do a two stage build, and we want to
do that without altering the source directory. Building with
`make LLVM_PREBUILTS_BASE=/path/to/prebuilts` will build using an
arbitrary toolchain instead of the installed one.

Bug: http://b/17441393
Change-Id: I4ff5c5224fbb8ebeb3a752907d6c4cd0a925aa1e
2015-11-13 23:06:07 -08:00
Stephen Hines
e8119e96fc Switch from clang 3.6 to new clang repository (with 3.8).
This reverts commit f7dbab16ff.

Bug: 23396112

Switch from "-fsanitize-undefined-trap-on-error" to
"-fsanitize-trap=all". The former ends up accidentally leaving
unresolved calls to __ubsan* helper functions in the object file with
clang 3.8. The latter is used when we don't include address sanitizer,
and replaces any misbehavior with a direct call to abort().
2015-11-09 16:32:11 -08:00
Stephen Hines
f7dbab16ff Revert "Switch from clang 3.6 to new clang repository (with 3.8)."
This reverts commit 1332828b6e.

Bug: 25141123

Change-Id: Idd5d8757095b2b370046a84aea76bc95e16f3876
2015-10-21 09:09:38 -07:00
Stephen Hines
f5782d6097 Merge "Switch from clang 3.6 to new clang repository (with 3.8)." 2015-10-21 00:18:05 +00:00
Dan Willemsen
6a66a887ba Stop encoding absolute paths in symbols
GCC & Clang encode the current working directory into the symbol files.
Even if the binaries are stripped before being installed, the build-id
hash will be different. This means that two different checkouts will
produce different installed binaries, even if the sources are identical.

To prevent this, set PWD=/proc/self/cwd, so that it replaces the
absolute path with the static path /proc/self/cwd. With GCC, use
-fdebug-prefix-map to remove that static path. Our clang does not yet
support this flag, but it was merged in r250094.

This does change the behavior when using gdb -- you now need to be in
$ANDROID_BUILD_TOP before gdb will load the sources.

Bug: 24204119
Change-Id: I792d65b042b7a3fdc78d567c5a6e93cdf0141b9b
2015-10-14 17:30:11 -07:00
Stephen Hines
1332828b6e Switch from clang 3.6 to new clang repository (with 3.8).
Bug: 23396112

Switch from "-fsanitize-undefined-trap-on-error" to
"-fsanitize-trap=all". The former ends up accidentally leaving
unresolved calls to __ubsan* helper functions in the object file with
clang 3.8. The latter is used when we don't include address sanitizer,
and replaces any misbehavior with a direct call to abort().

Change-Id: I8a67461b45f5f1dd9f2d179b6b64a4ca905e999f
2015-10-01 10:42:15 -07:00
Colin Cross
ba9bc4d70f am 0d97557d: Merge "Enable color output from gcc and clang"
* commit '0d97557d3d6f56cf6dfdb7552d4f1471d56dfabe':
  Enable color output from gcc and clang
2015-09-25 23:17:02 +00:00
Colin Cross
63e3b0294f Enable color output from gcc and clang
Force gcc and clang to always output color diagnostics.  Ninja will
strip the ANSI color codes if it is not running in a terminal.

Bug: 24273983
Change-Id: Ic9252549bfacf3bbb3f4b9d20f63010fc24ac21d
2015-09-24 22:39:17 -07:00
Colin Cross
45b0c8f163 am c180dd0b: Merge "Revert "disable Krait for Mac builds to avoid assembler issues""
* commit 'c180dd0bfc55ae222f143dc86a333caf000cbf03':
  Revert "disable Krait for Mac builds to avoid assembler issues"
2015-09-25 01:11:48 +00:00
Colin Cross
c180dd0bfc Merge "Revert "disable Krait for Mac builds to avoid assembler issues"" 2015-09-25 01:07:52 +00:00
Colin Cross
737cc70b50 Revert "disable Krait for Mac builds to avoid assembler issues"
This doesn't seem to be a problem any more, and mac builds
that differ from linux builds is causing other problems.

This reverts commit 7c40fb95dc.

Bug: 24339250
Change-Id: I8a0da11df42d58ba9c3ded4571f1db870f400a21
2015-09-25 00:30:34 +00:00
Dan Albert
d9f9836e5e am 3ee9daac: Merge "Remove WITHOUT_(HOST|TARGET)_CLANG."
* commit '3ee9daac6a3bf8d2a9030b99f62595330f22cafa':
  Remove WITHOUT_(HOST|TARGET)_CLANG.
2015-09-16 23:31:41 +00:00
Dan Albert
32f7ff14ce Remove WITHOUT_(HOST|TARGET)_CLANG.
This is unused.

Change-Id: Ibc461fef02c82d110718003aceffb943c930ffe6
2015-09-16 15:43:00 -07:00
Dan Willemsen
c98d9a9d0f am f1c09d7f: Merge "Add HOST_CROSS_OS"
* commit 'f1c09d7fbd92a08cc51950a7d35fb5f7fc564a20':
  Add HOST_CROSS_OS
2015-09-09 18:19:13 +00:00
Dan Willemsen
057aaea54a Add HOST_CROSS_OS
Instead of using recursive make to change the HOST_OS when building the
windows SDK under linux, add the concept of cross-building to another
host os.

Bug: 23566667
Change-Id: I6dc525b601b6251d458d197c30bf4660d7485502
2015-09-09 18:12:29 +00:00
Evgenii Stepanov
d259ecd171 am 617770c1: Merge "Add AddressSanitizer linker flags for x86."
* commit '617770c133330fc06070e97ce39bbf065c749c97':
  Add AddressSanitizer linker flags for x86.
2015-09-02 20:18:12 +00:00
Ivan Krasin
b83e171c8d Add AddressSanitizer linker flags for x86.
This is the 1/4 change required to get AddressSanitizer
for Android x86 to work.

Change-Id: I848805af34fdd32a313c991504d6014f9b97ab88
2015-09-02 11:59:45 -07:00
Elliott Hughes
f04f391b5f am 4548e7f4: Merge "Remove AndroidConfig.h."
* commit '4548e7f49dbec05c8b8187b0ea9e746fc47ec5d3':
  Remove AndroidConfig.h.
2015-08-28 19:59:18 +00:00
Elliott Hughes
43146118aa Remove AndroidConfig.h.
This change leaves soong references.

Change-Id: Iee32b6b97ad9711f69e999c9d01f01d71562b63f
2015-08-28 10:31:28 -07:00
Chih-hung Hsieh
2cc00c305c am 3eccd047: am 59c858fc: Merge "Remove special x86 flag that disables tail call optimization."
* commit '3eccd04784d4a92e224bf0e6917f9a3b0353da1d':
  Remove special x86 flag that disables tail call optimization.
2015-08-18 22:22:23 +00:00
Chih-hung Hsieh
59c858fc94 Merge "Remove special x86 flag that disables tail call optimization." 2015-08-18 22:11:03 +00:00
Stephen Hines
7b6af490e9 am 5d17a7e2: am 2e08cb6e: Merge "Add -mfpu=neon-vfpv4 if cpu is krait"
* commit '5d17a7e2adf505fd7a97782f54856c86a237369d':
  Add -mfpu=neon-vfpv4 if cpu is krait
2015-08-15 02:18:58 +00:00
Stephen Hines
2e08cb6e1b Merge "Add -mfpu=neon-vfpv4 if cpu is krait" 2015-08-15 02:04:55 +00:00
Ying Wang
c7b8ee0974 am 66c8e8c7: Don\'t prepend CC_WRAPPER to CLANG.
* commit '66c8e8c756fb1790cac792b32ba2de057c3b1b4e':
  Don't prepend CC_WRAPPER to CLANG.
2015-08-03 21:21:01 +00:00
Ying Wang
3e3d7b5ce5 Don't prepend CC_WRAPPER to CLANG.
We have deferred the CC_WRAPPER prepending to binary.mk per module.

Bug: 22612634
Change-Id: If2c0549503989d17ff7be619fdd49c26fd78f0a5
(cherry-pick from commit 66c8e8c756)
2015-08-03 14:08:54 -07:00
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