Commit Graph

537 Commits

Author SHA1 Message Date
Chih-hung Hsieh 89dbee61ff Merge "Switch to clang-r346389." 2018-12-05 18:24:12 +00:00
Haibo Huang 9ae1005f63 Remove denver from soong am: 47c9d4c8a3
am: 9223081372

Change-Id: I9a6f28e148340cc0700fda13bfc065fe32682fa4
2018-12-04 23:37:39 -08:00
Haibo Huang 9223081372 Remove denver from soong
am: 47c9d4c8a3

Change-Id: Ie63b19efa16354b8e6003bca7e4330cd03c2981c
2018-12-04 23:29:36 -08:00
Haibo Huang 47c9d4c8a3 Remove denver from soong
Test: build
Change-Id: If740c2aaa321dee01f5d99c37171390e15f62c62
2018-12-04 19:39:48 -08:00
Haibo Huang 7ae1eb16f1 Remove denver64 from soong am: f46b1cb06e
am: 238f6c330d

Change-Id: I640a9e965b47ae5269818a2076ca1389e0a748ff
2018-12-04 16:44:14 -08:00
Haibo Huang 238f6c330d Remove denver64 from soong
am: f46b1cb06e

Change-Id: I400a0bcabbb3ebd63136a28e6cf58314f4b499e8
2018-12-04 16:35:13 -08:00
Haibo Huang f46b1cb06e Remove denver64 from soong
Test: build
Bug: 73545680
Change-Id: I6b213a1d83275c566fd6142a07550094240528c4
2018-12-04 21:01:50 +00:00
Chih-Hung Hsieh 3567e62f97 Switch to clang-r346389.
* Add -fno-sanitize=implicit-integer-sign-change when
  there is any integer related sanitizer, and this check
  is not explicitly specified.
  Android core does not boot with this new sanitizer yet.
* Filter out -fno-sanitize=implicit-integer-sign-change
  from tooling flags.

Bug: 119329758
Bug: 119557795
Test: make checkbuild, boot, go/clang-r346389-testing
Change-Id: I709de569cb73d070fc4958e2b4387f4041bc5438
2018-12-04 19:50:45 +00:00
Yi Kong b910379c91 Merge "Revert "Revert "Remove unnecessary warning suppression""" am: 3a33fe535e
am: 9d256a5aa1

Change-Id: I76bdf7af21564068168fa3cad9b3934f7d6f2bf4
2018-12-04 01:52:57 -08:00
Yi Kong 9d256a5aa1 Merge "Revert "Revert "Remove unnecessary warning suppression"""
am: 3a33fe535e

Change-Id: I81421f5340798c181c7f9b72faea5bc433bc0ed5
2018-12-04 01:47:51 -08:00
Yi Kong 3a33fe535e Merge "Revert "Revert "Remove unnecessary warning suppression""" 2018-12-04 09:30:54 +00:00
Yi Kong 734a07c66d Revert "Revert "Remove unnecessary warning suppression""
This reverts commit afedf3bdc9.

Build failure fixed.

Change-Id: I46e7e222c2b5bfa5b1846f3fe87444afb70f1b31
2018-12-04 00:42:27 +00:00
Zhizhou Yang 9759e5e76a Merge "Do not generate SHT_RELR relocations before API 28" am: 89df00c216
am: e74941431e

Change-Id: Ib4b63e48374e239dc71318e1d39c76087ae5d75b
2018-12-03 12:20:17 -08:00
Zhizhou Yang e74941431e Merge "Do not generate SHT_RELR relocations before API 28"
am: 89df00c216

Change-Id: I76f45bbea868f137906074dfda233ecad02d9caa
2018-12-03 11:27:53 -08:00
Treehugger Robot 89df00c216 Merge "Do not generate SHT_RELR relocations before API 28" 2018-12-03 18:40:59 +00:00
Yi Kong ec10bb5d51 Merge "Revert "Remove unnecessary warning suppression"" am: cf492adb34
am: 1e8681d22f

Change-Id: I2debeb50164d6c5f8d516fe66a6870d34f9dd3eb
2018-11-30 15:47:19 -08:00
Yi Kong 1e8681d22f Merge "Revert "Remove unnecessary warning suppression""
am: cf492adb34

Change-Id: If2941e0eb1a19194bce00af67e5e81aab6368286
2018-11-30 15:42:10 -08:00
Yi Kong cf492adb34 Merge "Revert "Remove unnecessary warning suppression"" 2018-11-30 23:20:11 +00:00
Elliott Hughes de93ddd67e Merge "C++17: switch the default." am: 3633e8641e
am: 0d64de3c0f

Change-Id: Ib6c1c6ba366276da72523acdd111c20a4f7a8b38
2018-11-30 14:14:58 -08:00
Elliott Hughes 0d64de3c0f Merge "C++17: switch the default."
am: 3633e8641e

Change-Id: I45e98afc8f6fce72ca98ec40c251ffee1f860dea
2018-11-30 14:09:50 -08:00
Zhizhou Yang 9100b1d83d Do not generate SHT_RELR relocations before API 28
This patch fixes an issue that SHR_RELR relocation is not supported by
SDK version earlier than API 28. We only turn it on when SDK is not
used, or SDK version is newer than or equal to API 28.

Test: m -j48 for aosp_taimen-userdebug
Bug: http://b/119086751
Change-Id: I33124ae4f35fb8c00ae9103e8c04e2d4ccd5fec3
2018-11-30 22:07:35 +00:00
Elliott Hughes 3633e8641e Merge "C++17: switch the default." 2018-11-30 22:03:45 +00:00
Vishnu Nair afedf3bdc9 Revert "Remove unnecessary warning suppression"
This reverts commit ee53a98e31.

Reason for revert: build break

Change-Id: I065b702d6eaa2e72d47a2b7a404fdd7fe51661c3
2018-11-30 21:01:30 +00:00
Yi Kong a9c6ec0c95 Merge "Remove unnecessary warning suppression" am: da5cf6a7f3
am: 779ec3a2dc

Change-Id: I581200aa4df67c8ab7076bfbfa9b110b8c15e5ec
2018-11-30 12:05:28 -08:00
Yi Kong 779ec3a2dc Merge "Remove unnecessary warning suppression"
am: da5cf6a7f3

Change-Id: I84ae0cb712c26ff4941aaea583bfa467378292a5
2018-11-30 11:51:03 -08:00
Yi Kong da5cf6a7f3 Merge "Remove unnecessary warning suppression" 2018-11-30 19:24:35 +00:00
Nikita Iashchenko 3d043a6ebb Merge "Revert "C++17: switch the default."" am: a9e5a40bb8
am: 1ba2e34897

Change-Id: I853197b418817bd09e99b43f5b875a1260619907
2018-11-30 08:26:50 -08:00
Nikita Iashchenko 1ba2e34897 Merge "Revert "C++17: switch the default.""
am: a9e5a40bb8

Change-Id: I29aa03b1dbb6b149fd3c393070d89461a1815d73
2018-11-30 08:22:29 -08:00
Elliott Hughes 34e4e416e7 C++17: switch the default.
Bug: http://b/111067277
Change-Id: I07af7cd9e65a6e238d7d256c65927fe128a0f052
Test: builds
2018-11-30 16:03:06 +00:00
Nikita Iashchenko a9e5a40bb8 Merge "Revert "C++17: switch the default."" 2018-11-30 14:27:16 +00:00
Jerome Gaillard 80e1b1250c Merge "Add flags for Windows assembly builds" am: ba0653cdb4
am: dacb269342

Change-Id: Iea9ad5904ffb2eef10354faf1989e8239fd0c552
2018-11-30 04:47:39 -08:00
Jerome Gaillard dacb269342 Merge "Add flags for Windows assembly builds"
am: ba0653cdb4

Change-Id: I7e60185582a0a55e81529d353fbd633873b7a408
2018-11-30 04:43:31 -08:00
Jerome Gaillard ba0653cdb4 Merge "Add flags for Windows assembly builds" 2018-11-30 12:30:06 +00:00
Nikita Iashchenko 7a782203b9 Revert "C++17: switch the default."
This reverts commit c35fc0e130.

Reason for revert: fix broken targets in the internal master.

Change-Id: I70447a05ae5b2afa7efc7ab21c0432e651cab1ba
2018-11-30 11:15:16 +00:00
Elliott Hughes 60bc94c195 Merge "C++17: switch the default." am: b44bdb2be3
am: 92fbd0699e

Change-Id: Ibd90ee82cb36c3e3884d42e016414e09ab60a39f
2018-11-30 00:47:34 -08:00
Elliott Hughes 92fbd0699e Merge "C++17: switch the default."
am: b44bdb2be3

Change-Id: Ib4fd903bd957d3114e9c7e87712497ea65eb9a17
2018-11-30 00:32:12 -08:00
Treehugger Robot b44bdb2be3 Merge "C++17: switch the default." 2018-11-30 08:06:02 +00:00
Jerome Gaillard 80fec097b1 Add flags for Windows assembly builds
This is necessary to build libjpeg for Windows.

Test: lunch sdk, make libjpeg
Change-Id: I6ace0e524d1d710b5ce78320e7a06777511d1634
2018-11-29 15:47:31 +00:00
Stephen Hines cafef7bd53 Merge "Support Qualcomm Kryo 385 CPU variant." am: c027b309f1
am: 8284a728de

Change-Id: I6d4166c54bf7d274db52c9fbbdbd65d25c232ddd
2018-11-29 00:13:28 -08:00
Stephen Hines 8284a728de Merge "Support Qualcomm Kryo 385 CPU variant."
am: c027b309f1

Change-Id: I69def413ca375096f37620398a44462e2779b753
2018-11-29 00:06:55 -08:00
Stephen Hines c027b309f1 Merge "Support Qualcomm Kryo 385 CPU variant." 2018-11-29 07:23:40 +00:00
Elliott Hughes c35fc0e130 C++17: switch the default.
Bug: http://b/111067277
Test: builds
Change-Id: I5065b03218772bf8cf8173f3d9808b3f0a484dc5
2018-11-28 21:45:23 -08:00
Elliott Hughes f4346985f2 Merge "Bump "experimental" C++ to C++2a." am: 4afedfadb2
am: d1ad118bbe

Change-Id: I11636172901425896137ef45834af95886580087
2018-11-28 18:12:16 -08:00
Elliott Hughes d1ad118bbe Merge "Bump "experimental" C++ to C++2a."
am: 4afedfadb2

Change-Id: Ia9a4ad9a8f479ad9c6169a96c7b8bdc03a7b6b3b
2018-11-28 18:03:15 -08:00
Elliott Hughes 37976122aa Bump "experimental" C++ to C++2a.
C++17 is so last year.

Test: treehugger
Change-Id: Ifd5e6d4a4837fe037837c49c31ee2fe1499e2d79
2018-11-28 14:16:39 -08:00
Artem Serov d3072b0c7c Support Qualcomm Kryo 385 CPU variant.
Support Kryo 385 cpu variant which should be used for
Qualcomm Snapdragon 845.

Motivation:
  kryo385 CPU *IS NOT* an Arm Cortex-A75.

Particular problem:
  Cortex-A75 CPU must support optional ARMv8.2 dot product
  feature; kryo385 CPU (Qualcomm Snapdragon 845) doesn't
  support it.

Test: Builds when kryo385 is used as cpu variant.
Test: Pixel 3 boots to GUI with kryo385 as CPU variant
      with this patch on AOSP 9.0.0 r16.

Bug: 119564566

Change-Id: I62ffb46b1977b48446c6c1ca1400b1b39f7a8457
2018-11-21 10:15:07 +00:00
mtk15504 65abdb4ccf Merge "Add to support armv8-2a on 2nd arch. variant" am: 4855c4f460
am: 140673036a

Change-Id: I66eac86090b8e2d2ceaf3214d91c56f1117f9a2b
2018-11-13 17:16:16 -08:00
mtk15504 140673036a Merge "Add to support armv8-2a on 2nd arch. variant"
am: 4855c4f460

Change-Id: I8f41d50bdf6e0a67a76e59e1bf559476422eb5fb
2018-11-13 17:09:11 -08:00
Treehugger Robot 4855c4f460 Merge "Add to support armv8-2a on 2nd arch. variant" 2018-11-14 00:51:53 +00:00
Pirama Arumuga Nainar b93dcecf53 Merge "Switch to clang-r344140b" am: 07002e0101
am: 79423121f7

Change-Id: Ic59acefeefc494c0fc7916b5a1830c87e938ea13
2018-11-13 12:56:02 -08:00
Pirama Arumuga Nainar 79423121f7 Merge "Switch to clang-r344140b"
am: 07002e0101

Change-Id: Iaef6a26cf87b64d2aa702ef68c4203e9a8a5e308
2018-11-13 12:52:22 -08:00
Pirama Arumuga Nainar 538be1f81c Switch to clang-r344140b
Bug: http://b/119270185

This prebuilt has a cherry-pick to fix PGO instrumentation.

Test: m ANDROID_PGO_INSTRUMENT=all,
      Build and boot a few devices in internal branch.
Change-Id: I97ca17fbc039a17db57b2749a1adf2ef981c5918
2018-11-13 17:21:01 +00:00
mtk15504 270ba75991 Add to support armv8-2a on 2nd arch. variant
Add arch. variant option to support cores that implement armv8-2a ISAs.

Test: set TARGET_2ND_ARCH_VARIANT := armv8-2a, build successful and 32bit app launch ok

BUG: 118414869
Change-Id: I755b8858726bd887068923123bad106aed7b1ec8
2018-11-13 16:40:38 +08:00
Chih-Hung Hsieh 7d07fa514e Revert "Add lld --no-rosegment flag to work with unwinder." am: 2fcac47e9d
am: c23b5b56d4

Change-Id: I957d31d1d8869f6815d430a6b57baa43e387188e
2018-11-12 16:40:08 -08:00
Chih-Hung Hsieh c23b5b56d4 Revert "Add lld --no-rosegment flag to work with unwinder."
am: 2fcac47e9d

Change-Id: I3f623e6e6fafe9031dae5bf550311ce51b54af83
2018-11-12 16:06:42 -08:00
Chih-Hung Hsieh 2fcac47e9d Revert "Add lld --no-rosegment flag to work with unwinder."
This reverts commit b18814e7a4.

Reason for revert: The originating bug is now fixed.

Test: make checkbuild
Change-Id: Iabcfbeed5977336fc27fb1ccbad269c1fa81ef6e
2018-11-12 21:09:28 +00:00
Yi Kong ee53a98e31 Remove unnecessary warning suppression
All instances of no-self-assign-overloaded warning have been fixed,
remove the suppression flag.

Test: m checkbuild
Change-Id: I70d9d6f721b36ebb5c3974893f79a09e4b1d1f4d
2018-11-09 23:09:19 +00:00
Peter Collingbourne fba1664069 Stop passing the gold plugin path to llvm-ar. am: abde584fd1
am: e4d64808a3

Change-Id: I0e7b39f7f91eeda21ecafd44bc214d830a42c558
2018-11-08 22:16:19 -08:00
Peter Collingbourne e4d64808a3 Stop passing the gold plugin path to llvm-ar.
am: abde584fd1

Change-Id: I29bac88f000c1e0c430c8b8651ec99e9d14939e4
2018-11-08 22:11:46 -08:00
Peter Collingbourne abde584fd1 Stop passing the gold plugin path to llvm-ar.
llvm-ar takes a --plugin argument but it is ignored for compatibility,
so passing it has no effect.

Change-Id: I4fc51d226d66cf2a43462d3d4ccc12e6e5ebb226
2018-11-08 20:13:16 -08:00
Yi Kong 0ea551a11e Merge "Revert "Prevent clang from using the x18 register on arm64."" am: ec2f6cba80
am: 3d317f2b24

Change-Id: Ieb7d9c080e287366f307392108bc2e2b84c10ea8
2018-11-08 17:46:31 -08:00
Yi Kong 3d317f2b24 Merge "Revert "Prevent clang from using the x18 register on arm64.""
am: ec2f6cba80

Change-Id: Iac8612907d9bfd38fc67392483b76233e73317d7
2018-11-08 17:42:26 -08:00
Yi Kong ec2f6cba80 Merge "Revert "Prevent clang from using the x18 register on arm64."" 2018-11-09 01:32:34 +00:00
Yi Kong 8c3c0f50d0 Revert "Prevent clang from using the x18 register on arm64."
This reverts commit 98d8580c3a.

Change no longer needed with the new LLVM toolchain update.

Bug: 112907825
Bug: 111759196
Change-Id: Ife3ce47a602dd850ac84bb51abc70c0ca157776e
2018-11-08 21:07:08 +00:00
Yi Kong e9190f2218 Merge "Update clang to r344140" am: 8a89f21746
am: 0d607467ec

Change-Id: I4c39a764b677667881e301c262f6c5298990d756
2018-11-06 17:52:22 -08:00
Yi Kong 0d607467ec Merge "Update clang to r344140"
am: 8a89f21746

Change-Id: I33b83790907fb82e8cb73370dad587d51f1e504b
2018-11-06 17:48:20 -08:00
Yi Kong 53ed59ef35 Update clang to r344140
Bug: 111759196
Test: Test various targets in AOSP and internal branches.
      For Googlers, go/clang-r344140-testing
Change-Id: I70fc5a2824de698d78c95ce2acd42eff9c5ebe15
2018-11-01 23:13:25 +00:00
Chih-hung Hsieh c29e55d439 Merge "DO NOT MERGE, Make default -Wimplicit-fallthrough as error." 2018-11-01 17:51:41 +00:00
Alex Light f3040a608e Merge "Remove -fno-emulated-tls from linux_bionic" am: d6bb90dc0d
am: 26559baeed

Change-Id: I6e8469b0134aa95da1eceff247422d5d16264119
2018-11-01 09:26:02 -07:00
Alex Light 26559baeed Merge "Remove -fno-emulated-tls from linux_bionic"
am: d6bb90dc0d

Change-Id: I601f6aef28d2391149e6dabd8afd93956ce3566b
2018-11-01 09:21:21 -07:00
Alex Light d6bb90dc0d Merge "Remove -fno-emulated-tls from linux_bionic" 2018-11-01 16:15:35 +00:00
Alex Light a08ae8487c Remove -fno-emulated-tls from linux_bionic
This was preventing tools using 'thread_local' from compiling and is
not needed. Bionic fully implements TLS.

Test: cd tools/dexter/slicer; mma
Bug: 31559095
Change-Id: Ib362ad8bc950726080356b61ccae83f155ce040b
2018-10-31 11:18:22 -07:00
Chih-Hung Hsieh 53390f2557 DO NOT MERGE, Make default -Wimplicit-fallthrough as error.
Other branches might still have this warning for some build targets.

Bug: 112564944
Test: make checkbuild
Change-Id: I3db52b8a60bb28861fc9ba963a7d1cd1fe49e903
2018-10-31 18:04:22 +00:00
Chih-Hung Hsieh d6022447f1 DO NOT MERGE, Make default -Wimplicit-fallthrough as error.
Other branches might still have this warning for some build targets.

Bug: 112564944
Test: make checkbuild
Change-Id: Ic2474aa4e09904c046714182bd90409def0e826d
2018-10-31 17:59:54 +00:00
Peter Collingbourne 63c6361f91 Merge "Enable safe ICF with LLD." 2018-10-27 00:59:55 +00:00
Treehugger Robot 33195833de Merge "Enable SHT_RELR sections to encode relative relocations." 2018-10-25 21:02:44 +00:00
Peter Collingbourne 486e42c353 Enable safe ICF with LLD.
Support for safe ICF was added to LLD in LLVM r337429. This reduces
the size of sailfish system.img by 7.6MB.

The address-significance tables created by Clang to support LLD's
implementation of safe ICF are incompatible with ld -r. Therefore we
need to pass -fno-addrsig to the compiler to prevent it from creating
an address-significance table when building a cc_object.

Change-Id: I83e28741e6b3cdf09566447d2658ce48594f2074
2018-10-25 13:40:28 -07:00
Peter Collingbourne 98d8580c3a Prevent clang from using the x18 register on arm64.
This is achieved via the compiler flag -ffixed-x18 for non-LTO builds
and the linker flag -plugin-opt -mattr=+reserve-x18 for LTO builds.

This change should be reverted once we upgrade past LLVM r340889
which does this by default on Android.

Bug: 112907825
Bug: 111759196
Change-Id: I05473ddbb98319d87d442425b4d715647eae3a38
2018-10-24 23:40:49 +00:00
Dan Willemsen 9ff34c0ca8 Update linux_bionic configuration
Add a missing toolchain method, don't require modules to opt in to
linux_bionic.

Bug: 31559095
Test: attempt to build host bionic
Change-Id: Ia5c8e2f127b88f56191b7abc389d5329cfdb0720
2018-10-22 15:46:03 -07:00
Rahul Chaudhry 1ffac8e636 Enable SHT_RELR sections to encode relative relocations.
Proposal for adding SHT_RELR sections in the generic-abi is at
https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg

This CL requires clang-r328903.

The following test results are on clang-r339409.

Size comparison for "aosp_marlin-userdebug":
$ du -B1 -s {none,pack,relr,both}/out/target/product/marlin/system
1014616064      none/out/target/product/marlin/system
1001074688      pack/out/target/product/marlin/system
1004273664      relr/out/target/product/marlin/system
1000099840      both/out/target/product/marlin/system

none contains a build with no packing (--pack-dyn-relocs=none).
pack contains a build with current settings (--pack-dyn-relocs=android).
relr contains a build with relr packing only (--pack-dyn-relocs=relr).
both contains a build with both options enabled (--pack-dyn-relocs=android+relr).

With --pack-dyn-relocs=android+relr, lld will encode the relative
relocations in a SHT_ANDROID_RELR section, and pack the rest of
the dynamic relocations in a SHT_ANDROID_REL(A) section.

--pack-dyn-relocs=android was saving us 13,541,376 bytes (1.35%) (none - pack).
--pack-dyn-relocs=relr will save us 10,342,400 bytes (1.03%) (none - relr).
--pack-dyn-relocs=android+relr is saving us 14,516,224 bytes (1.45%) (none - both).

Size comparison for the "system/bin" directory:
$ du -B1 -s {none,pack,relr,both}/out/target/product/marlin/system/bin
29413376        none/out/target/product/marlin/system/bin
28319744        pack/out/target/product/marlin/system/bin
28258304        relr/out/target/product/marlin/system/bin
28180480        both/out/target/product/marlin/system/bin

--pack-dyn-relocs=android was saving us 1,093,632 bytes (3.72%) (none - pack).
--pack-dyn-relocs=relr will save us 1,155,072 bytes (3.93%) (none - relr).
--pack-dyn-relocs=android+relr is saving us 1,232,896 bytes (4.19%) (none - both).

Bug: None
Test: Built aosp_marlin-userdebug image, boots on device.
Test: Built aosp_x86_64-userdebug image, boots in emulator.
Change-Id: Ibb726c3b9d87688f387a7f2974fdae9bfc24efc9
2018-10-22 20:29:39 +00:00
Logan Chien aceb86e345 Merge "Remove flags from ClangLibToolingUnknownCflags"
am: 0b6bcd4014

Change-Id: I7f7e9e80052e748c1d92f46fee4552c1b4a45a2b
2018-10-17 03:08:54 -07:00
Logan Chien 0b6bcd4014 Merge "Remove flags from ClangLibToolingUnknownCflags" 2018-10-17 09:46:26 +00:00
Logan Chien 61f2d11e75 Remove flags from ClangLibToolingUnknownCflags
This commit removes flags from ClangLibToolingUnknownCflags.  These
flags were added to workaround an old version of clang in
`external/clang`.  Since we have updated to clang-r339409b, we don't
need these workaround anymore.

Bug: 117764794
Test: development/vndk/tools/header-checker/utils/create_reference_dumps.py
Change-Id: Ifbeebf05df5c08ee3bb7d489f39250d8fd5f5acf
2018-10-16 17:52:12 +08:00
Haibo Huang 3df2d5986a Merge "Add support for cortex-a76 in soong"
am: 2bfa2c852c

Change-Id: Ieabcb61634e3e60f26589837b8c0d3c29d072371
2018-10-15 14:15:52 -07:00
Haibo Huang a31e2bda89 Add support for cortex-a76 in soong
Bug: 117125298
Test: Change a device to be A76 and build
Change-Id: Iae0773d54e57b247c818d44f8044180d5a3f95a8
2018-10-12 23:55:38 +00:00
Kostya Kortchinsky b03b69be6d Merge "Scudo minimal runtime support for Soong"
am: d054c225fb

Change-Id: Ia506665582e4668d6ca29d1a1680c889844a95d1
2018-10-12 10:03:30 -07:00
Kostya Kortchinsky d054c225fb Merge "Scudo minimal runtime support for Soong" 2018-10-12 16:49:31 +00:00
Kostya Kortchinsky ad73b2e18a Scudo minimal runtime support for Soong
Scudo is now compatible with the -fsanitize-minimal-runtime, and offers a new
dynamic library that doesn't bundle UBSan.

This patch adds support for this new library in Soong, preferring it over the
full one, unless a UBSan or diagnostic dependency is found.

Test: aosp compiled with m -j
Test: local test enabling Scudo for tombstoned
Change-Id: I17794131db148b33f8a8710ac43302cadf1af314
2018-10-11 11:55:16 -07:00
Pirama Arumuga Nainar 2985a30e1e Merge changes from topic "windows-libcxx"
am: f4ecf76b2d

Change-Id: I9bc7c290899afe5aa6e15730ae812e23ed665c16
2018-10-11 10:22:26 -07:00
Pirama Arumuga Nainar 5f193cb677 Change STL for Windows to libc++.
am: a403cc7254

Change-Id: Ieb1487d7c6dcc200ca0cf1dafa10378803de6b05
2018-10-11 10:22:08 -07:00
Pirama Arumuga Nainar 6048e3c52d Merge "Switch to clang-r339409b"
am: 3558470d28

Change-Id: I75a339f7cc25227a8e709b6267dbeb8797353d22
2018-10-11 10:21:36 -07:00
Pirama Arumuga Nainar f4ecf76b2d Merge changes from topic "windows-libcxx"
* changes:
  Remove --allow-multiple-definitions for 32-bit Windows
  Change STL for Windows to libc++.
2018-10-11 17:00:53 +00:00
Pirama Arumuga Nainar 8fd5a96959 Remove --allow-multiple-definitions for 32-bit Windows
Bug: http://b/109759970
Bug: http://b/91353691

There are no multiple-defintion errors after switching to clang-r339409
and libc++.

Test: m native-host-cross
Change-Id: I5576b3894ed1d88c9b2e5f4d92e1d3bfadfb029b
2018-10-10 20:10:15 +00:00
Pirama Arumuga Nainar a403cc7254 Change STL for Windows to libc++.
- Stop including libstdc++ headers.
- '-pthread' and 'static-libgcc' are unused when we pass -nodefaultlibs.
We didn't pass -nodefaultlibs for libstdc++.
- Use SjLj exceptions for 32-bit.  libgcc_eh implements SjLj exception
model for 32-bit.
- Disable visibility annotations for libcxx and libcxxabi since we are
only going to support these as static libraries.
- Use Win32 threads.  MinGW pthreads throws an error when building
libcxx since it's pthread_mutex_initializer is not constant (needs a
cast).
- Link libgcc_eh, which needs pthread, which in turn depends on
kernel32.  Wrap the libraries with --start-group and --end-group and
remove duplicates.

Test: Build and test Windows binaries under Wine.

Change-Id: I8be51b004585e11ef51b7d5012f2a51330d1260f
2018-10-10 20:09:37 +00:00
Pirama Arumuga Nainar 14b3cb0ab3 Switch to clang-r339409b
Bug: http://b/117499735

Test: clang-tools build, AOSP taimen build and TH
Change-Id: I9fada181e2cb85e65c66672f870b59e8da0be9ce
2018-10-10 18:38:11 +00:00
Dan Willemsen dc1b833df0 Remove GCC-specific toolchain methods
am: bd4abf5dfc

Change-Id: Iaea003158a8fddcd73eee1dcc2c7803687a15e71
2018-10-09 22:46:52 -07:00
Dan Willemsen bd4abf5dfc Remove GCC-specific toolchain methods
Test: m
Change-Id: I06442347ade2d60bc42131b3126ecc17840c9e31
2018-10-09 19:44:54 -07:00
Dan Willemsen 6e9fe7c6ec Merge "Restore lld parts of "Remove cortex-a53 linker workaround for new cpus.""
am: 55e095b6d8

Change-Id: I8f9d87561e02ffbeb0aae0f9435ad971c9bc1e2f
2018-10-09 16:26:41 -07:00
Dan Willemsen e28663fb28 Restore lld parts of "Remove cortex-a53 linker workaround for new cpus."
https://android-review.googlesource.com/c/platform/build/soong/+/689585
added, but was skipped going into pi-dev-plus-aosp, as the pi-dev
version (which did not have these lld bits) was already merged there.
When pi-dev-plus-aosp was pushed to aosp-master, this got lost.

Merged-In is a random git_master change, since this needs to go
into pi-dev-plus-aosp too, but no further.

Bug: 78133793
Test: git diff aosp-master..master -- cc/config/arm64_device.go
Change-Id: Iea69a2c040d11249e43a76a78859944274ce6a92
Merged-In: I7799feac522a1097ec4271bd7868cd6bfe147ad9
2018-10-09 14:44:46 -07:00
Dan Willemsen 5d7598005a Remove GCC checks
am: 8536d6b3b7

Change-Id: I1ba28f29238db813a683169a6113baea33095f4c
2018-10-08 19:34:53 -07:00
Dan Willemsen 8536d6b3b7 Remove GCC checks
Clang is always used now, so we can remove all the GCC checks. Removing
GCC-specific configuration will happen in the next CL.

Test: m
Change-Id: I4835ecf6062159315d0dfb07b098e60bff033a8a
2018-10-09 02:16:58 +00:00
Chih-Hung Hsieh cfba3658f4 Merge "Add default -Wimplicit-fallthrough."
am: 230e4c77a5

Change-Id: I15e7cbf40722360d91cafc196e4a9a908338df56
2018-10-08 18:02:54 -07:00
Chih-Hung Hsieh bd783f13c1 Add default -Wimplicit-fallthrough.
After we fix all existing such warnings, it can be changed to an error.

Bug: 112564944
Test: make checkbuild
Change-Id: I61ee3a24a3f992ef018cfe6c995e957416551183
2018-10-08 22:12:35 +00:00
Chih-hung Hsieh 88eb6873f5 Merge "Revert "Disable performance-noexcept-move-constructor check.""
am: 66ee92f3c1

Change-Id: I5c5636b8194b13fc54bb4fdaf58c40c5b39fce11
2018-10-05 16:15:34 -07:00
Treehugger Robot 66ee92f3c1 Merge "Revert "Disable performance-noexcept-move-constructor check."" 2018-10-05 23:01:46 +00:00
Chih-hung Hsieh fac4eec15e Revert "Disable performance-noexcept-move-constructor check."
This reverts commit 1b5470afe1.

Reason for revert: Most of these warnings were fixed.

Change-Id: I63ada2b7d6f3d6a446a8fbfc9221dee668c7a30b
2018-10-05 18:45:06 +00:00
Pirama Arumuga Nainar b56f1e22a7 Remove --allow-multiple-definion linker flag for 64-bit Windows
am: b83de950e7

Change-Id: Iff346710722c019a059639b99fd61866833741e2
2018-10-03 14:03:08 -07:00
Pirama Arumuga Nainar b83de950e7 Remove --allow-multiple-definion linker flag for 64-bit Windows
Bug: http://b/109759970

r335286 fixed this for 64-bit Windows.  This remains broken for 32-bit
Windows.

Test: m native-host-cross
Change-Id: I4d11b83d51db055406c6723aad89efd1b86b9b7b
2018-10-03 11:40:23 -07:00
Stephen Hines f4fe6300e6 Merge "Switch to clang-r339409."
am: ee15f2a7c7

Change-Id: Ic7de9d629900ce71315029a82f32a89a11c730be
2018-10-01 09:20:41 -07:00
Stephen Hines c91ab9eb6d Switch to clang-r339409.
This also changes over llvm-strip to use the -o flag, rather than
relying on nonstandard (and no longer functional) positional arguments.

Bug: http://b/111998531
Test: Multiple new builds. For googlers - http://go/clang-r339409-testing
Change-Id: I8c82d06304af24a001e6552e36e2f540d8e364ce
2018-09-26 21:15:08 +00:00
Pirama Arumuga Nainar 783591182e Merge "GccCppStdVersion should not be needed anymore"
am: e12f5e23c2

Change-Id: I5ad9f5f976faa0ba52c87b64bd82275c65e54bf9
2018-09-26 13:32:27 -07:00
Treehugger Robot e12f5e23c2 Merge "GccCppStdVersion should not be needed anymore" 2018-09-26 20:19:01 +00:00
Chih-Hung Hsieh 4bea350243 Merge "Disable performance-noexcept-move-constructor check."
am: 0d565c1afa

Change-Id: If7fc844e8225184e963b8da3dc56f313dcad4264
2018-09-25 14:29:01 -07:00
Pirama Arumuga Nainar 43cfe82174 GccCppStdVersion should not be needed anymore
Test: Build
Change-Id: I2cd16deed269fb40a59754dec94b376383346bf0
2018-09-25 21:27:45 +00:00
Chih-Hung Hsieh 1b5470afe1 Disable performance-noexcept-move-constructor check.
This reduces amount of warnings in default builds,
until we add noexcept to those move constructors.

Bug: 116614593
Test: build with WITH_TIDY=1
Change-Id: Iaa9e9480dbc72a7370ccbe10ed232b87dc8d6184
2018-09-25 20:25:57 +00:00
Richard Fung 82b39d59df Merge "Add support for cortex-a72"
am: 3013361546

Change-Id: I1add4a9a88d4a840d9ab699f3e8d53780f849441
2018-09-25 08:35:18 -07:00
Richard Fung eb37ed3832 Add support for cortex-a72
Bug: 113346253
Test: lunch cheets_arm64-eng; m
Change-Id: I02dd1cfe75f97767eac7424d472ff643987c276b
2018-09-24 16:33:45 -07:00
Chih-Hung Hsieh 0a4427da81 Use WITH_TIDY_FLAGS env variable.
am: 9e5d8a60e2

Change-Id: I42b0ba1ee10ab4a3290b355c40009081ed101376
2018-09-21 17:40:53 -07:00
Chih-Hung Hsieh 9e5d8a60e2 Use WITH_TIDY_FLAGS env variable.
This variable is a space separated string of clang-tidy flags to be passed
to clang-tidy before any other system required extra flags.
Note that when this flag or local tidy_flags is defined,
the default -header-filter flag is suppressed.

Test: make with WITH_TIDY=1 WITH_TIDY_FLAGS="-extra-arg=-DABCD1=1 -extra-arg=-DABCD2=2"
Bug: 32668284
Change-Id: If7bd31c65404ef7fe6c3499d51f0f209a704efd9
2018-09-21 15:19:24 -07:00
Chih-Hung Hsieh 5e669eff0a Use DEFAULT_TIDY_HEADER_DIRS env variable.
am: 60bd4bf079

Change-Id: I4c34db5d306beb15cf8160aa905c06b8459ea8f6
2018-09-21 12:26:07 -07:00
Chih-Hung Hsieh 60bd4bf079 Use DEFAULT_TIDY_HEADER_DIRS env variable.
This variable is a regular expression to be passed as
additional patterns to the -header-filter flag for clang-tidy.
For example, when make with WITH_TIDY=1 DEFAULT_TIDY_HEADER_DIRS="d1/d2|mydir/*"
for a project in external/xyz, clang-tidy will be called with additional flag
  -header-filter=\"(external/xyz|d1/d2|mydir/*)\"

Test: make with WITH_TIDY=1 DEFAULT_TIDY_HEADER_DIRS="d1/d2|mydir/*"
Bug: 32668284
Change-Id: I6051f4f80bc6dbab882bd81435ccbc772772ac63
2018-09-21 10:34:25 -07:00
Dan Willemsen d877b27eea Merge "Remove GCC support from Make"
am: 2f7e3bb4d0

Change-Id: I32d17dca901bfc7b32f9305fee63f3ebbb58835a
2018-09-06 19:58:11 -07:00
Dan Willemsen f640dbcd1f Remove GCC support from Make
We need to keep support in Soong until toolchain_library no longer uses
GCC.

Test: out/build-aosp_arm64.ninja is the same before/after
Test: build_test on downstream branches
Change-Id: Ib78bcd6d5544afc3a3164f65fa72a3f08b2acf29
2018-09-06 22:37:54 +00:00
Yi Kong ec11aef9cd Merge "Add BuiltinsRuntimeLibrary"
am: e944600978

Change-Id: I009085ecc3b340db8a92154ead624c5059ffdcdc
2018-08-31 17:45:16 -07:00
Yi Kong 924adc4d17 Add BuiltinsRuntimeLibrary
... and rename SanitizerRuntimeLibrary to LibclangRuntimeLibrary since
some of them are not sanitizers.

Bug: 29275768
Test: m
Change-Id: Id638adea42d22b02438fce26120aa155bea14d42
2018-08-31 14:53:54 -07:00
Pirama Arumuga Nainar ecdcb62d22 Use Windows security mitigation features: ASLR, DEP
am: 191f646295

Change-Id: Ie182452ca1ac3a9fb959fd887421763445c646e4
2018-08-30 16:21:36 -07:00
Pirama Arumuga Nainar 191f646295 Use Windows security mitigation features: ASLR, DEP
Bug: https://issuetracker.google.com/36952278
Bug: http://b/113171785

From
https://android-review.googlesource.com/c/platform/system/core/+/737292:

The --dynamicbase linker flag enables use of Address Space Layout
Randomization (ASLR) on Windows Vista and newer. It causes the code
segment / module to be loaded at unpredictable addresses to make
exploits harder to construct.

The --nxcompat linker flag enables use of Data Execution Protection
(DEP) on Windows XP SP2 and newer. It causes the process to be killed if
the process tries to execute code on memory pages not marked executable.
This makes exploits harder to construct because the stack is then not
executable, other data pages aren't, etc.

These bits are already set on AdbWinApi.dll and AdbWinUsbApi.dll.

--high-entropy-va provides improved ASLR.

Credit: Spencer Low for doing the initial work at
https://android-review.googlesource.com/c/platform/system/core/+/737292.

Test: Verify that DLLCharacteristics reported by 'objdump -x' is:
      0x140 for 32-bit and 0x160 for 64-bit.  Also verified trivial use
      cases under Wine.

Change-Id: I1b898cd36c7c627916dae9ce7dfd1c27de1e3c59
2018-08-30 12:54:33 -07:00
Dan Willemsen d83ba979f4 Clean up darwin cc toolchain
am: e97e68a05a

Change-Id: I3adf41a6b8eab2bee60c518fb9465ad70de9d9e5
2018-08-28 21:24:07 -07:00
Dan Willemsen e97e68a05a Clean up darwin cc toolchain
Remove the ability for Soong to build 32-bit darwin code. We've already
disabled this in Make, this is just removing the unused bits in Soong
and simplifing the toolchain config.

Test: m host
Test: build/soong/scripts/build-ndk-prebuilts.sh
Change-Id: I968c5d98bdf162297d639f7988918dadb7ba6e07
2018-08-28 20:08:50 -07:00
Dan Willemsen 58f6fed8e2 Merge "Support Mac 10.14 SDK"
am: 6dcc81c3c6

Change-Id: I0231c56f893d13be29a571669df7604f91a5873f
2018-08-28 19:04:43 -07:00
Treehugger Robot 6dcc81c3c6 Merge "Support Mac 10.14 SDK" 2018-08-29 01:53:42 +00:00
Dan Willemsen 5a050c0183 Support Mac 10.14 SDK
Now that we don't compile 32-bit binaries, this seems to work, at least
in Xcode 10 beta 6.

Test: m checkbuild host
Change-Id: I61a98a3c31b331d6d01cd633f8d949fad86047cb
2018-08-28 16:48:45 -07:00
Chih-hung Hsieh 4cef9cbbad Merge "Define PATH_TO_CLANG_TIDY_SHELL for build/make rules."
am: 4b42edbca0

Change-Id: Ie19f560057ef5d3e2ef0671e8af42dd3d1261626
2018-08-28 12:21:36 -07:00
Chih-Hung Hsieh b699c43f89 Define PATH_TO_CLANG_TIDY_SHELL for build/make rules.
* PATH_TO_CLANG_TIDY_SHELL is ${config.ClangTidyShellPath},
  wich is "build/soong/scripts/clang-tidy.sh"

Bug: 110538415
Test: build with WITH_TIDY=1
Change-Id: I27d7be095c998583fa9ad4d705aa1332bd018140
2018-08-27 16:19:59 -07:00
Chih-Hung Hsieh 1cc0227af2 Remove flto dependent flags when -flto is removed.
am: 9e88ba9f22

Change-Id: I174a627fe877f66b81ae889a82eefadff8216dc4
2018-08-24 12:53:01 -07:00
Chih-Hung Hsieh 9e88ba9f22 Remove flto dependent flags when -flto is removed.
* C++ source files could be compiled with "-fwhole-program-vtables"
  in cppflags. We need to filter out those flto dependent flags
  in flags.CppFlags and use flags.toolingCppFlags instead of
  flags.cppFlags.

Test: build with WITH_TIDY=1
Change-Id: Ic2b0f99b95a5f0422f879226e6f6060cab71456a
2018-08-24 18:42:22 +00:00
Chih-hung Hsieh 5761ca65c6 Merge "Add clang-tidy.sh to filter out troublesome flags."
am: a644fbfa2c

Change-Id: I79f64979576431e85d6196110615450da1c4eea3
2018-08-23 15:34:55 -07:00
Chih-Hung Hsieh a7aa958e6e Add clang-tidy.sh to filter out troublesome flags.
* Some flags are accepted by clang but not clang-tidy.
  They could cause the diagnostic-unused-command-line-argument warning.
  Flag -flto messed up the -I flags.
* Add clang-diagnostic-unused-command-line-argument to
  default clang-tidy checks.
* Move CLANG_TIDY_UNKNOWN_CFLAGS to build/make/core/clang/tidy.mk.

Bug: 111850071
Bug: 111885396
Test: build with WITH_TIDY=1
Change-Id: Iabeeb27715acf83ef6aafe3e77206b9a01a0d889
2018-08-22 09:21:45 -07:00
Evgenii Stepanov 72a8984921 Merge "Add "hwaddress" sanitizer."
am: 9b4f9afbaf

Change-Id: I163b6cbcf9c14ee6fd7a55b86f5db642abe52d0a
2018-08-20 17:11:00 -07:00
Evgenii Stepanov d97a6e9483 Add "hwaddress" sanitizer.
This is a new sanitizer similar to ASan, but with a few differences
from the build system perspective:
* Only runs on AArch64.
* Supports static binaries.
* Bionic itself will be built with HWASan.
* Does not have any "if a library is sanitized than the binary must
  be, too" requirements unlike ASan. Even better, individual static
  libraries can be freely sanitized or not. We propagate "nosanitize"
  from binaries to static libraries anyway, because otherwise there
  is no good way to disable hwasan on a binary as a whole.

Same a CFI, we export a list of sanitized static libraries to make.
In fact, we export separate lists for vendor and regular libraries,
because it is possible for one to be sanitized without the other
(i.e. there can be mylib.hwasan.vendor w/o mylib.hwasan or vice
versa).

Bug: 112438058, 112709969
Test: manual, part of a bigger patch set

Change-Id: Ie4fdeb522ac03cf9684526882e84dfee3807b6a7
2018-08-16 13:18:47 -07:00
Logan Chien 42cf4b8715 Merge "Remove LinuxClangCppflags" am: 7a1d4418d6
am: dc9321b257

Change-Id: I0988dcf773d249db6b636c936bc4b6b05e79f686
2018-07-31 11:00:34 -07:00
Logan Chien dc9321b257 Merge "Remove LinuxClangCppflags"
am: 7a1d4418d6

Change-Id: I5507797e2ff5e7c08b9dfd1d04d15d29c290ac69
2018-07-31 10:56:27 -07:00
Logan Chien 7a1d4418d6 Merge "Remove LinuxClangCppflags" 2018-07-31 17:51:17 +00:00
Logan Chien bef00a2c52 Remove LinuxClangCppflags
This commit removes LinuxClangCppflags.  Adding these `-isystem` flags
results in build failures when we build a module with `libc++_host`.
Furthermore, these headers are not being used anymore.

Bug: 111579848
Test: make checkbuild  # on aosp and internal
Change-Id: Ideca268431d9d60d383e3e5b7bb3f73ece416bd2
2018-07-31 01:45:00 +08:00
Chih-Hung Hsieh bafbeac702 Do not pass -flto dependent flags to clang-tidy. am: ff7cff7268
am: 9e7e09b77a

Change-Id: Ia26281d74e74cb4aa6f111e2273a012e9a266350
2018-07-26 20:23:10 -07:00
Chih-Hung Hsieh 9e7e09b77a Do not pass -flto dependent flags to clang-tidy.
am: ff7cff7268

Change-Id: I0da058960c67b69ecf2df63e5f2b385b82eea80e
2018-07-26 20:19:07 -07:00
Chih-Hung Hsieh ff7cff7268 Do not pass -flto dependent flags to clang-tidy.
Bug: 111885396
Test: run with WITH_TIDY=1
Change-Id: I92468491cdc5894d1197f6c1631e2073c6e7c4fa
2018-07-26 17:43:12 -07:00
Chih-Hung Hsieh d31b3f87dd Merge "Do not pass -flto and -fsanitize flags to clang-tidy." am: 9f65ef8cd9
am: 167d8c77ba

Change-Id: Ibe7416e9ae2b5b1f73dda5862a3c3eebda33bc60
2018-07-26 17:04:54 -07:00
Chih-Hung Hsieh 167d8c77ba Merge "Do not pass -flto and -fsanitize flags to clang-tidy."
am: 9f65ef8cd9

Change-Id: I7edbaaa8cccabe2b2952fa88499bdfbecfecf60a
2018-07-26 16:59:42 -07:00
Chih-Hung Hsieh 5942fe4fd1 Do not pass -flto and -fsanitize flags to clang-tidy.
Some flags stop clang-tidy to search included header files.

Bug: 111885396
Test: run with WITH_TIDY=1
Change-Id: Ie1ac37298793c015286db0f5caa252b67f4db365
2018-07-26 15:00:28 -07:00