Граф коммитов

75 Коммитов

Автор SHA1 Сообщение Дата
Sean McAllister af38c5df81 Rewrite is_linux flag for base and build components.
This migrates is_linux (which is also set for chromeos) to explicitly
include chromeos as is_linux || is_chromeos in preparation for
separating those flags.

Bug: 1110266
Change-Id: I93991bfe0647a6b280b9fb9531474ae70f6c4cfa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2325766
Commit-Queue: Sean McAllister <smcallis@google.com>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#793509}
GitOrigin-RevId: deaa740d5532fa2f80bea90ba26a4cc235392627
2020-07-30 21:47:26 -07:00
Sylvain Defresne 5383c9f143 [apple] Add a `is_apple` gn variable and use it
As https://crrev.com/c/2299189 adds `OS_MAC` & `OS_APPLE`, add a gn
variable `is_apple` that is true when `OS_APPLE` is defined. This
allow an easy mapping between gn variables and cpp macros.

Convert all usages of `is_ios || is_mac` or `is_mac || is_ios` to
use the new variable instead.

Bug: 1105907
Change-Id: I4cef55496a0ccf0a6162e60409ff3b7996f633dd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2315695
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791803}
GitOrigin-RevId: fafffe8843d5dac1ef479ae2e9058e0f93faf82d
2020-07-27 07:21:13 -07:00
Rohit Rao 8c08ce5c20 Disable export_libcxxabi_from_executables when building on iOS.
-Wl,-undefined,dynamic_lookup is deprecated on iOS Simulator, which
prevents us from linking libc++abi into the main executable and
exporting symbols for shared libraries to use. Instead, disallow
export_libcxxabi_from_executables on iOS, since it is effectively
unsupported.

BUG=1095852

Change-Id: I35204f9ccf668941f9e058aa05ab3caa9eaf376b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2250218
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Rohit Rao <rohitrao@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#779959}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1d7de3f12b1fad588d25886787c928630514fd5a
2020-06-18 19:16:57 +00:00
Haiyang Pan f03d9dee47 libc++: Set output_name of libc++ to libc++_chrome for android
This CL will fix this issue and make test suites running fine with asan

Bug: 1076244
Change-Id: I8190c048a37e4605944286f01ca73e27b1edd5cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2197658
Commit-Queue: Haiyang Pan <hypan@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Evgenii Stepanov <eugenis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#769288}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 09c6b084ebf5c89d6c5f3bcdcc3f7d3f0b115446
2020-05-15 15:58:39 +00:00
Zinovy Nis 4abdc0b5fe Add Visual Studio debugger visualisation for std::_1::tuple<...>
Change-Id: I846331f59a42d84d655e109c33bf6321d00e1c4f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2189660
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Zinovy Nis <zynis@yandex-team.ru>
Cr-Original-Commit-Position: refs/heads/master@{#767782}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9e9d1c57cce7ae7d8f8442a75ce0ceb903524a1c
2020-05-12 14:20:24 +00:00
Mirko Bonadei 1da0d1853f Use hermetic compilation flags for ObjC++.
This CL adds -nostdinc++ and -isystem flags that point to the Chromium
libc++ to cflags_objcc.

Before this CL, .mm files would use libc++ headers shipped with clang,
while .cc files would use libc++ headers in buildtools. Since libc++ is
(usually) abi-compat to itself, this (usually) works. We we have
detected this problem because it looks like [1] has introduced an
ABI breaking change [2].

[1] - https://reviews.llvm.org/rGf97936fabd263e3b311e3b8e9ffca4920e4fcff0
[2] - http://lists.llvm.org/pipermail/libcxx-commits/2020-February/007865.html

Bug: 1051010, 400091
Change-Id: Icb49aba558a911369962f085f798a112f80d4273
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2062355
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#742178}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ea1d745c4a15f1da7706bd25b09efd974950fd51
2020-02-18 17:01:11 +00:00
Erik Chen 08c5083ab8 Revert "Enable custom libcxx unconditionally on CrOS."
This reverts commit e5296dab70da58282aceb49471758cbf08c98bd6.

Reason for revert: CrOS already links against system libc++

Original change's description:
> Enable custom libcxx unconditionally on CrOS.
> 
> Most other platforms either unconditionally, or are moving towards unconditionally
> building with custom libcxx.
> 
> This comment suggests that there was always the intention to move
> unconditionally to libc++:
> https://bugs.chromium.org/p/chromium/issues/detail?id=554841#c3
> 
> And this bug suggests that we're already paying most of the engineering
> cost for making this config work:
> https://bugs.chromium.org/p/chromium/issues/detail?id=996754
> 
> Change-Id: I030f65b5921c4f5572fafcaf975eff24e804f3ed
> Bug: 1043560
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2010226
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Auto-Submit: Erik Chen <erikchen@chromium.org>
> Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#733362}

TBR=thakis@chromium.org,erikchen@chromium.org,thomasanderson@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1043560
Change-Id: Ifa073a4dd90f1e260aa0e6981326fea13a5f4c5f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2012366
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#733867}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f2517d68dfdeb37d9293e5fd0ee8bda52a1ab71c
2020-01-22 03:42:09 +00:00
Erik Chen a139413faf Enable custom libcxx unconditionally on CrOS.
Most other platforms either unconditionally, or are moving towards unconditionally
building with custom libcxx.

This comment suggests that there was always the intention to move
unconditionally to libc++:
https://bugs.chromium.org/p/chromium/issues/detail?id=554841#c3

And this bug suggests that we're already paying most of the engineering
cost for making this config work:
https://bugs.chromium.org/p/chromium/issues/detail?id=996754

Change-Id: I030f65b5921c4f5572fafcaf975eff24e804f3ed
Bug: 1043560
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2010226
Commit-Queue: Nico Weber <thakis@chromium.org>
Auto-Submit: Erik Chen <erikchen@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#733362}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e5296dab70da58282aceb49471758cbf08c98bd6
2020-01-20 15:08:12 +00:00
David Benjamin 5a875878ea Set _LIBCPP_DEBUG=1 in release builds in addition to in debug builds if enable_iterator_debugging is set
I added an is_debug gate to be consistent with the old (system STL)
enable_iterator_debugging logic, which only enabled iterator debugging
when both enable_iterator_debugging is set AND config("debug") is used.

I suspect this is a remnant of back when our debug build automatically
enabled libstdc++'s iterator debugging. Iterator debugging has long
since been made off by default and, if we ever do want to enable it, GN
can make defaults for settings depend on other settings.

Thus make enable_iterator_debugging do what the name suggests and simply
enable iterator debugging. In particular, adding iterator debugging adds
a ton of code so asking the compiler to optimize that code makes testing
things a bit more tractable. (I default to release + dcheck_always_on
builds for local testing these days.)

Bug: 923166
Change-Id: Ib9fe5d6ec7af1af644c86089c8f58b3c47058c80
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1977153
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: David Benjamin <davidben@chromium.org>
Auto-Submit: David Benjamin <davidben@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#726905}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0a4ffdf2b2ed5f4bd42480cf149e87e2b43a25b3
2019-12-20 20:11:27 +00:00
David Benjamin a09ba02297 Enable _LIBCPP_DEBUG=0 on Android too
This was left disabled on Android due to a couple of bugs. Now that
https://chromium-review.googlesource.com/c/chromium/src/+/1924235 and
https://chromium-review.googlesource.com/c/chromium/src/+/1958608 are
in, enable it on Android too.

Bug: 923166
Change-Id: Ida85ea7eb84e1c4d6e90d321ab5344e1370fdfe8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1958806
Auto-Submit: David Benjamin <davidben@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#723159}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 3dd591611afed0c72749c373442da95492cbf3cb
2019-12-09 23:40:11 +00:00
David Benjamin 571a2ef9b8 Turn on _LIBCPP_DEBUG=0 in debug mode or when DCHECKs are on (reland for non-Android)
libc++ supports two debug options, _LIBCPP_DEBUG=0 and
_LIBCPP_DEBUG=1. The former turns on bounds checks, etc., on STL
classes and sanity checks on comparators. The latter turns on
iterator debugging which is much more expensive. This CL enables
the former.

This has caught a number of bugs not caught by sanitizers (see
https://crbug.com/893810 and https://crbug.com/923166).

This is a reland of
https://chromium-review.googlesource.com/c/chromium/src/+/1234994 which
was reverted due to bugs in ANGLE and Vulkan. These failures are
Android-specific, so this CL disables _LIBCPP_DEBUG=0 on Android for
now. It will be reenabled for Android after
https://chromium-review.googlesource.com/c/angle/angle/+/1925031 and
https://chromium-review.googlesource.com/c/chromium/src/+/1924235 land.

In the meantime, land this on other platforms to prevent new regressions.

Bug: 923166
Change-Id: I28ff3e1ffb7eba12639fbf3c1ebf5eb5be8b4769
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1924611
Auto-Submit: David Benjamin <davidben@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: David Benjamin <davidben@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#717438}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 56b9e93391c7ec467532f4e94a4bf7e1746db161
2019-11-21 02:12:07 +00:00
Jonathan Ross 57540beb2d Revert "Turn on _LIBCPP_DEBUG=0 in debug mode or when DCHECKs are on"
This reverts commit 66f3e967ffe7382a9185c0c50ede0afc2ba068a7.

Reason for revert: This is causing all of the Android Angle tests to fail. With the error:

I   15.858s list_tests(HT7BG1A04101)  No tests found. Output:
I   15.858s list_tests(HT7BG1A04101)    ../../buildtools/third_party/libc++/trunk/include/vector:1557: _LIBCPP_ASSERT '__n < size()' failed. vector[] index out of bounds
I   15.858s list_tests(HT7BG1A04101)    [ CRASHED      ]

https://ci.chromium.org/p/chromium/builders/ci/Android%20FYI%2064%20Perf%20%28Pixel%202%29/11563
https://ci.chromium.org/p/chromium/builders/ci/Android%20FYI%2064%20Vk%20Release%20%28Pixel%202%29/85381
https://ci.chromium.org/p/chromium/builders/ci/Android%20FYI%2032%20Vk%20Release%20%28Pixel%202%29/89243?blamelist=1#blamelist-tab

Original change's description:
> Turn on _LIBCPP_DEBUG=0 in debug mode or when DCHECKs are on
> 
> libc++ supports two debug options, _LIBCPP_DEBUG=0 and
> _LIBCPP_DEBUG=1. The former turns on bounds checks, etc., on STL
> classes and sanity checks on comparators. The latter turns on
> iterator debugging which is much more expensive. This CL enables
> the former.
> 
> This has caught a number of bugs not caught by sanitizers (see
> https://crbug.com/893810 and https://crbug.com/923166).
> 
> Bug: 923166
> Change-Id: I5acd94bf7905579bb105e521db1247b3c7269fbd
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1234994
> Commit-Queue: David Benjamin <davidben@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Mark Mentovai <mark@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#716690}

TBR=davidben@chromium.org,thakis@chromium.org,dpranke@chromium.org,mark@chromium.org

Change-Id: I5e04c2883ab439a386f9da4fdcde19c218b1a767
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 923166
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1925224
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Commit-Queue: Jonathan Ross <jonross@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#716737}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e97925fd97686687675db86316a7fc26efc20660
2019-11-19 19:17:28 +00:00
David Benjamin 2879bbea1c Turn on _LIBCPP_DEBUG=0 in debug mode or when DCHECKs are on
libc++ supports two debug options, _LIBCPP_DEBUG=0 and
_LIBCPP_DEBUG=1. The former turns on bounds checks, etc., on STL
classes and sanity checks on comparators. The latter turns on
iterator debugging which is much more expensive. This CL enables
the former.

This has caught a number of bugs not caught by sanitizers (see
https://crbug.com/893810 and https://crbug.com/923166).

Bug: 923166
Change-Id: I5acd94bf7905579bb105e521db1247b3c7269fbd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1234994
Commit-Queue: David Benjamin <davidben@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#716690}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 66f3e967ffe7382a9185c0c50ede0afc2ba068a7
2019-11-19 17:44:34 +00:00
Peter Collingbourne 9b6ebfcfa1 build: Pass -nostdlib++ even on Android.
After https://crrev.com/c/1756721 we stopped passing -nostdlib on Android,
so the -nostdlib++ flag is not redundant and is in fact required in some
configurations to prevent linking against the NDK libc++.

Bug: 996172
Change-Id: Iabede8e5cafad29debf6b5f098a247f399cb460c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1762346
Commit-Queue: Peter Collingbourne <pcc@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Auto-Submit: Peter Collingbourne <pcc@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#689047}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8215d30998df26c019719a6a4a0689634dde5eb2
2019-08-21 17:09:19 +00:00
Tom Anderson b8866fdd3e List natvis files as inputs
BUG=985285
R=thakis
CC=robliao

Change-Id: Iac88eccb84ac9bd6d6b80e9268a7a6cda0534bef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1627706
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#680678}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 531253ee9d403d04f74450ad54ab83eb3f07565e
2019-07-25 00:36:17 +00:00
Nico Weber 9a49da87f1 Update a comment
Bug: none
Change-Id: If8edf98d905be67217c1ba90656f564f57fff9c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1706713
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#678330}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8ef5919e3d4abde7b2c5069d40279bfc95c70630
2019-07-17 17:15:39 +00:00
Robert Liao 7cd5b7cf62 Add libcxx_natvis_include to C++ BUILD.gn to Allow Windbg Hang Workaround
BUG=966676,966687

Change-Id: Icc3899aaf5483916cb5368c5a334116d1f7928ed
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1632712
Auto-Submit: Robert Liao <robliao@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Robert Liao <robliao@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#663873}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: ec34e26c930bf16d52575077c0ce15ae3434033a
2019-05-28 19:33:12 +00:00
Nico Weber d376ad0e63 Move libc++.natvis from tools/win/DebugVisualizers to build/config/c++.
The motivation is that some projects (e.g. v8) deps in a git mirror of the
build/ directory but don't have tools/win available. This makes the build/
directory not depend on tools/win again.

Bug: 960658
Change-Id: Ibaa9a81862e89ea049299149a5d9aa7e7c4b5850
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1600776
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Auto-Submit: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#657688}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f3833a67496e44bad4c0e5c5b089a8abd5e82751
2019-05-08 14:10:36 +00:00
Nico Weber 35a5e32740 win: Re-enable libc++ on Windows.
We now have a natvis file for libc++ and fixed a bug in lld-link that
made it not embed natvis files correctly if there were more than two,
so now this switch should no longer negatively affect debugging.

Bug: 801780
Change-Id: Iab1b3f8b3e3bbbda3abdf08156287820392d7946
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1594345
Auto-Submit: Nico Weber <thakis@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#656840}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4b298260f5327c09983083055a5775d5ce719cc1
2019-05-06 17:12:08 +00:00
Justin Cohen 07d6d10a7d Reland "[ios] Disable custom libcxx with xcode clang."
This reverts commit 6eb40789c00d5d95d1286b4875d58623ddc68624.

Reason for revert: A change to cronet/tools/hide_symbols.py landed
right before the previous reland relanded.  Relanding again.

This also reverts commmit 198ec959986ce5edfc789163c3b4e82540c39a4a
which is a reland "[Cronet] Link custom libc++ into Cronet static framework to fix crashes."

Original change's description:
> Revert "Reland "[ios] Disable custom libcxx with xcode clang.""
>
> This reverts commit 334e5ddc18f9ea2e073442a0bf327b6ee9512f08.
>
> Reason for revert: broke two iOS bots (even though the same ones succeeded in the CQ).
>

TBR=thakis@chromium.org,mef@chromium.org,justincohen@chromium.org,carlosk@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org

Bug: 956995, 958185, 956161
Change-Id: Ic75760edf679e14dff9447b5bc8e629880ddb8ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1590105
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Robbie Gibson <rkgibson@google.com>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#655515}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0e86ef6c0e71377ec1f1af1f60964f3ab0ed2db7
2019-05-01 02:07:21 +00:00
Carlos Knippschild 84b4a37ef0 Revert "Reland "[ios] Disable custom libcxx with xcode clang.""
This reverts commit 334e5ddc18f9ea2e073442a0bf327b6ee9512f08.

Reason for revert: broke two iOS bots (even though the same ones succeeded in the CQ).

Original change's description:
> Reland "[ios] Disable custom libcxx with xcode clang."
> 
> This reverts commit 7036423b744ca5996aad613d0f3dea30410f78dc.
> 
> Reason for revert: Now with a fix to cronet.
> 
> This isn't necessary with Xcode 10.2, but we are still stuck on
> 10.1.  For some reason the combination of 10.1 and
> use_custom_libcxx=false on iOS requires this extra .get()
> 
> Original change's description:
> > Revert "[ios] Disable custom libcxx with xcode clang."
> >
> > This reverts commit 684d7a436007ccd4da585e16a651f7358271efc1.
> >
> > Reason for revert: Broke the tree.
> >
> > Original change's description:
> > > [ios] Disable custom libcxx with xcode clang.
> > >
> > > The combination of Xcode clang, a custom libcxx and gmock is causing crashes
> > > in our tests.
> > >
> > > Disabling custom libcxx with xcode clang for now.
> > >
> > > Bug: 956995
> > > Change-Id: Ia32a5d77d9ab7810d7c09c258c91dd60544f4747
> > > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588363
> > > Auto-Submit: Justin Cohen <justincohen@chromium.org>
> > > Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
> > > Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> > > Commit-Queue: Justin Cohen <justincohen@chromium.org>
> > > Cr-Commit-Position: refs/heads/master@{#655205}
> >
> > TBR=thakis@chromium.org,justincohen@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org
> >
> > Change-Id: I0ebc8232d8e3fcea3f5a96552e58ac766f3d5888
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: 956995
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1589704
> > Reviewed-by: Justin Cohen <justincohen@chromium.org>
> > Commit-Queue: Justin Cohen <justincohen@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#655209}
> 
> TBR=thakis@chromium.org,justincohen@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org
> 
> Change-Id: I555add1b6626b6d6acfc536a8416a0b11822c3ed
> Bug: 956995
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588852
> Commit-Queue: Justin Cohen <justincohen@chromium.org>
> Commit-Queue: Misha Efimov <mef@chromium.org>
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Misha Efimov <mef@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Justin Cohen <justincohen@chromium.org>
> Auto-Submit: Justin Cohen <justincohen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#655358}

TBR=thakis@chromium.org,mef@chromium.org,justincohen@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org

Change-Id: I3b22f8edf3c83402e485bcd3dd6f37e77bf38359
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 956995, 958185
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1590232
Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
Commit-Queue: Carlos Knippschild <carlosk@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#655408}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 6eb40789c00d5d95d1286b4875d58623ddc68624
2019-04-30 22:15:38 +00:00
Justin Cohen bfd7655c15 Reland "[ios] Disable custom libcxx with xcode clang."
This reverts commit 7036423b744ca5996aad613d0f3dea30410f78dc.

Reason for revert: Now with a fix to cronet.

This isn't necessary with Xcode 10.2, but we are still stuck on
10.1.  For some reason the combination of 10.1 and
use_custom_libcxx=false on iOS requires this extra .get()

Original change's description:
> Revert "[ios] Disable custom libcxx with xcode clang."
>
> This reverts commit 684d7a436007ccd4da585e16a651f7358271efc1.
>
> Reason for revert: Broke the tree.
>
> Original change's description:
> > [ios] Disable custom libcxx with xcode clang.
> >
> > The combination of Xcode clang, a custom libcxx and gmock is causing crashes
> > in our tests.
> >
> > Disabling custom libcxx with xcode clang for now.
> >
> > Bug: 956995
> > Change-Id: Ia32a5d77d9ab7810d7c09c258c91dd60544f4747
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588363
> > Auto-Submit: Justin Cohen <justincohen@chromium.org>
> > Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
> > Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> > Commit-Queue: Justin Cohen <justincohen@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#655205}
>
> TBR=thakis@chromium.org,justincohen@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org
>
> Change-Id: I0ebc8232d8e3fcea3f5a96552e58ac766f3d5888
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 956995
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1589704
> Reviewed-by: Justin Cohen <justincohen@chromium.org>
> Commit-Queue: Justin Cohen <justincohen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#655209}

TBR=thakis@chromium.org,justincohen@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org

Change-Id: I555add1b6626b6d6acfc536a8416a0b11822c3ed
Bug: 956995
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588852
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Misha Efimov <mef@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Misha Efimov <mef@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Auto-Submit: Justin Cohen <justincohen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#655358}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 334e5ddc18f9ea2e073442a0bf327b6ee9512f08
2019-04-30 21:20:52 +00:00
Justin Cohen 54ea0e7fd1 Revert "[ios] Disable custom libcxx with xcode clang."
This reverts commit 684d7a436007ccd4da585e16a651f7358271efc1.

Reason for revert: Broke the tree.

Original change's description:
> [ios] Disable custom libcxx with xcode clang.
> 
> The combination of Xcode clang, a custom libcxx and gmock is causing crashes
> in our tests.
> 
> Disabling custom libcxx with xcode clang for now.
> 
> Bug: 956995
> Change-Id: Ia32a5d77d9ab7810d7c09c258c91dd60544f4747
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588363
> Auto-Submit: Justin Cohen <justincohen@chromium.org>
> Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
> Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Justin Cohen <justincohen@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#655205}

TBR=thakis@chromium.org,justincohen@chromium.org,olivierrobin@chromium.org,thomasanderson@chromium.org

Change-Id: I0ebc8232d8e3fcea3f5a96552e58ac766f3d5888
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 956995
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1589704
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#655209}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7036423b744ca5996aad613d0f3dea30410f78dc
2019-04-30 14:21:54 +00:00
Justin Cohen 6d2f251389 [ios] Disable custom libcxx with xcode clang.
The combination of Xcode clang, a custom libcxx and gmock is causing crashes
in our tests.

Disabling custom libcxx with xcode clang for now.

Bug: 956995
Change-Id: Ia32a5d77d9ab7810d7c09c258c91dd60544f4747
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1588363
Auto-Submit: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Olivier Robin <olivierrobin@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Justin Cohen <justincohen@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#655205}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 684d7a436007ccd4da585e16a651f7358271efc1
2019-04-30 13:58:58 +00:00
John Abd-El-Malek 7dae72d82f Revert "Reenable libc++ on Windows"
This reverts commit aa9e6f586615eb96dac21ed2bfb26e4ee3f4ef11.

Reason for revert: this is still broken, see repro steps in https://crbug.com/947911

Original change's description:
> Reenable libc++ on Windows
> 
> BUG=801780
> R=​thakis
> 
> Change-Id: Ife6f11c4e02534c879731274d427b0f563b8fa08
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1556590
> Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#652740}

TBR=thakis@chromium.org,thomasanderson@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 801780, 947911
Change-Id: I500bcb164774f7d185dad336dc310b6f0c1a0614
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1577941
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#652999}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 534ab28cbc3fd592bca0e7e046a78a795ebe79f0
2019-04-22 22:58:36 +00:00
Tom Anderson 9a6f0767f0 Reenable libc++ on Windows
BUG=801780
R=thakis

Change-Id: Ife6f11c4e02534c879731274d427b0f563b8fa08
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1556590
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#652740}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: aa9e6f586615eb96dac21ed2bfb26e4ee3f4ef11
2019-04-20 03:37:42 +00:00
Nico Weber 6725363639 win/libc++: Start adding a natvis file.
With this, debuggers can show std::string, std::wstring, and
std::vector with libc++ as well as with the Microsoft standard library.

Bug: 947911

Change-Id: I5368ad46711df9d47a386bfc483853ddacb9b0b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1548129
Auto-Submit: Nico Weber <thakis@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Reviewed-by: Hans Wennborg <hans@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#650755}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d44bbe9ffcf64dfb45164aadbab84ab8bee2319b
2019-04-15 12:19:37 +00:00
Ken MacKay 089a33ed0f Make libcxx_is_shared into a GN arg
In some cases we want to have a shared libc++.so, even for a
non-component build (eg, when loading externally-built shared libs that
also depend on libc++).

Bug: 949579
Change-Id: Ifb119a5df3f2ec574df0876748b3436f0200998f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1551481
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Kenneth MacKay <kmackay@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#647812}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8fd80fda95ece1533aa663fa97e680561bb5843b
2019-04-04 17:43:14 +00:00
John Abd-El-Malek ffcde8034a win: Disable libc++ again as it broke debugging in Visual Studio.
Reverts "Switch Windows to build with in-tree libc++" (#641450)
while we write a natvis file for it.

Bug: 947911,801780
Change-Id: I8e574fe9c106c2112d0c6fcfd195f53b8a2a1f47
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1546066
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#646522}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 27026b5f155273f8e0721cd56a7f384a32b24e84
2019-04-01 22:05:54 +00:00
Tom Anderson 8791f3adf2 Enable in-tree libc++ builds on iOS
Binary size regression of about 109kB is expected -- please add
thomasanderson@ and thakis@ to the bug.

BUG=945054
R=thakis

Change-Id: Iaca4178e3b23b55a36af55d119d2eda2b76ef71d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1534897
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Reviewed-by: Rohit Rao <rohitrao@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#645001}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: dd9e27c0290618d32f50486ddb271704eab69999
2019-03-27 21:26:41 +00:00
Tom Anderson a0ed887c52 Reenable libc++ on Win/libfuzzer
This is a partial revert of [1].  Keep disabling libc++ on Win/cl.exe, but
reenable it with Win/libfuzzer since the timeout issues should (hopefully) be
fixed after [2].

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1527776
[2] f05d184130

BUG=942939
R=thakis

Change-Id: Iad160248b0d6fe631ac71719ba6b1e23728c4fa2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1533183
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#642788}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 876a076ba4c2fac9d01814e21e6b5bcb7ec78ad3
2019-03-21 02:41:19 +00:00
Tom Anderson 9a12c88b15 Roll libc++ to r356574
[1] is needed to fix some ASAN timeouts on Windows.  [2] is the full changelog.

Remove CR_LIBCXXABI_REVISION since it shouldn't be needed and is only bloating
the compile lines.  libc++abi headers contain only non-template function
declarations, and none of the functions will ever be removed, so it's safe to
remove this macro.

Remove CR_LIBCXX_REVISION on Windows since Windows builds include libc++ using
-I not -isystem.

These changes are made during this roll because a change was made to libc++'s
__config, so everything has to be rebuilt anyway and now's a convenient time to
do it.

Finally, get rid of clang_format_svn_revision, libcxxabi_svn_revision, and
libunwind_svn_revision since they're (no longer) used.

[1] 3cc1daa7cf
[2] a50f503562..9009625c82

R=thakis
BUG=942881,942939,943064,942882

Change-Id: I35b2d10189e89f68aba5ca662132e368ded071e9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1532530
Commit-Queue: Nico Weber <thakis@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#642642}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: f05d184130d651fd7ab3f5712aaeaf53a0cf0815
2019-03-20 20:32:42 +00:00
Tom Anderson c899486de1 Disable libc++ on Windows/cl.exe and Windows/libfuzzer
Windows/libc++ has been in the tree for about 1.5 days now and fortunately the
only real failures are timeouts.  Rather than reverting and disabling libc++
everywhere, instead selectively disable it for the configurations that are
having issues.

Specifically, the V8 cl.exe build has broken, so disable libc++ there.  Several
Windows fuzzers are timing out, so temporarily disable libc++ for libfuzzer.

BUG=801780,942915,942939
R=thakis

Change-Id: I9dd0d4c435f499c8e7cf05cdf14bb0fc2829fa15
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1527776
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#641507}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 64b50e0ea351d597c2a5f882283888756e82d91d
2019-03-18 03:11:06 +00:00
Tom Anderson 911dd1d44d Switch Windows to build with in-tree libc++
Design document:
https://docs.google.com/document/d/1VPxepzuyWbXFzv1VpkSKEn0wPvSUffpcaOLislhcwrA/edit?usp=sharing

chromium-dev@ announcement:
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/LqlnZ8sWcME

BUG=801780
R=thakis

Change-Id: Id60ba267d533b3c54ecc5d72852f7a16220fe244
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1465168
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#641450}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 7c3e4ef1dd3d35e57eae5bd5309bf4e6983fc24c
2019-03-16 18:20:04 +00:00
Tom Anderson 51c0f0378d Fix assert in c++/BUILD.gn
BUG=801780
R=thakis

Change-Id: I60588de2dd5de1fe92f9731592d7ebd4468764c2
Reviewed-on: https://chromium-review.googlesource.com/c/1479410
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#633807}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 821b349e9e507621595b02e07d728819a405e951
2019-02-20 18:52:39 +00:00
Tom Anderson c0e3485017 Fixes necessary for enabling libc++ on Windows
BUG=801780
R=thakis

Change-Id: I8d2ae43c62216d20b808914f630de48623add12e
Reviewed-on: https://chromium-review.googlesource.com/c/1475203
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#633562}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 05c1c3a31e5ff9a5a6ab24851df61ad694285b99
2019-02-20 04:23:12 +00:00
Tom Anderson 04baa51dc4 Merge Windows and Posix libc++ configs
BUG=801780
R=thakis

Change-Id: I9ce7870d4205aedb02ca49a2483b7275b1c4b757
Reviewed-on: https://chromium-review.googlesource.com/c/1461335
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#631075}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4c15f05dd54deb9480bbcf3a9eaab98024612849
2019-02-12 03:25:21 +00:00
Tom Anderson ace7df8015 Switch Mac to in-tree libc++ builds
Binary size regression of up to 512KiB is expected.

buildtools roll includes a single CL:
2f02e1f363

Note on chromium-dev:
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/QeXzX4MVrlo

BUG=840822,923084
R=thakis
TBR=kbr

Change-Id: Iacaf90dc480c6d8b9939c99c398a8960a2e9d4ed
Reviewed-on: https://chromium-review.googlesource.com/c/1396842
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#624193}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: d9d71d7e9f8ebd301d9a6449adfef44e63a65487
2019-01-18 17:58:26 +00:00
Tom Anderson 02ccb16052 Make libc++ a shared library on Android sanitizer builds
This CL fixes cronet_test_instrumentation_apk tests failing on Android Cronet
Builder Asan.  In previous CLs, the solution was to export libc++abi from
"toplevel" shared libraries.  Explanation:

    On Android, many shared libraries get loaded from the context of a JRE.  In
    this case, there's no "main executable" to export libc++abi from.  We could
    export libc++abi from each "toplevel" shared library instead, but that would
    require adding an explicit dependency for each one, and might introduce
    subtle, hard-to-fix problems down the line if the dependency is missing.

Instead, this CL makes libc++ a shared library on Android sanitizer builds.
This should be fine on Android.  Explanation:

    export_libcxxabi_from_executables was added to avoid having an RPATH set in
    static sanitizer builds just for exectuables to find libc++.  But on
    Android, the Bionic dyanmic loader doesn't even look at RPATH; instead,
    LD_LIBRARY_PATH is set for tests. Because of this, we make libc++ a shared
    library on android since it should get loaded properly.

Followup CLs will revert changes that added libc++abi dependencies for shared
libraries.

Depends on buildtools CL:
https://chromium-review.googlesource.com/c/chromium/buildtools/+/1409942

BUG=921626
R=thakis

Change-Id: I21ff878b21407ee7b6a2914db6b46a9db47bf045
Reviewed-on: https://chromium-review.googlesource.com/c/1409558
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#622634}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: e9ed5b509aa4013028812221e6d27913a4175be1
2019-01-14 22:29:55 +00:00
Tom Anderson a55822f92d Reland "Roll buildtools and enable in-tree libc++ on Android"
This is a reland of 1a874fe60ccb87401867a7334b8eb11e5e4b1552

Original change's description:
> Roll buildtools and enable in-tree libc++ on Android
>
> Buildtools changelog:
> 7d88270de1..0e1cbc4eab
>
> BUG=767901
> R=thakis
>
> Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
> Reviewed-on: https://chromium-review.googlesource.com/c/1385021
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618035}

TBR=thakis

Bug: 767901
Change-Id: Id8645ae0fb1c4801d3ed4a10efd3e91239058163
Reviewed-on: https://chromium-review.googlesource.com/c/1405720
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#621915}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 4c782bbf8fb8f33e2577467a2cc96385f5432d4c
2019-01-11 05:25:42 +00:00
Thomas Anderson fd2243f33c Revert "Reland "Roll buildtools and enable in-tree libc++ on Android""
This reverts commit 94e405bbff1a3034783e39c867d584937d41894d.

Reason for revert: Android Cronet Builder Asan is still broken

Original change's description:
> Reland "Roll buildtools and enable in-tree libc++ on Android"
> 
> This is a reland of 1a874fe60ccb87401867a7334b8eb11e5e4b1552
> 
> Original change's description:
> > Roll buildtools and enable in-tree libc++ on Android
> > 
> > Buildtools changelog:
> > 7d88270de1..0e1cbc4eab
> > 
> > BUG=767901
> > R=thakis
> > 
> > Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
> > Reviewed-on: https://chromium-review.googlesource.com/c/1385021
> > Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> > Commit-Queue: Nico Weber <thakis@chromium.org>
> > Reviewed-by: Nico Weber <thakis@chromium.org>
> > Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#618035}
> 
> Bug: 767901
> Change-Id: I17d2e4fe9661cfe3470fce0fc1099f73d801bd32
> Reviewed-on: https://chromium-review.googlesource.com/c/1394229
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#620092}

TBR=thakis@chromium.org,dpranke@chromium.org,thomasanderson@chromium.org

Change-Id: Ic5e69025cd0526a88ffd15febdc9726c471d1255
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 767901
Reviewed-on: https://chromium-review.googlesource.com/c/1396692
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#620190}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 19950fdacccd126d140779c2af190bbe7d37eae8
2019-01-05 18:46:51 +00:00
Tom Anderson de2f586d03 Reland "Roll buildtools and enable in-tree libc++ on Android"
This is a reland of 1a874fe60ccb87401867a7334b8eb11e5e4b1552

Original change's description:
> Roll buildtools and enable in-tree libc++ on Android
> 
> Buildtools changelog:
> 7d88270de1..0e1cbc4eab
> 
> BUG=767901
> R=thakis
> 
> Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
> Reviewed-on: https://chromium-review.googlesource.com/c/1385021
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618035}

Bug: 767901
Change-Id: I17d2e4fe9661cfe3470fce0fc1099f73d801bd32
Reviewed-on: https://chromium-review.googlesource.com/c/1394229
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#620092}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 94e405bbff1a3034783e39c867d584937d41894d
2019-01-04 22:41:03 +00:00
Thomas Anderson 02f452825d Revert "Reland "Roll buildtools and enable in-tree libc++ on Android""
This reverts commit 10e1da1f3a8a3a03f3ff9c2a8939a497aae1af89.

Reason for revert: https://crbug.com/916973

Original change's description:
> Reland "Roll buildtools and enable in-tree libc++ on Android"
> 
> This is a reland of 1a874fe60ccb87401867a7334b8eb11e5e4b1552
> Android sanitizer bots should be green after:
> https://chromium-review.googlesource.com/c/chromium/src/+/1387399
> 
> Original change's description:
> > Roll buildtools and enable in-tree libc++ on Android
> >
> > Buildtools changelog:
> > 7d88270de1..0e1cbc4eab
> >
> > BUG=767901
> > R=thakis
> >
> > Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
> > Reviewed-on: https://chromium-review.googlesource.com/c/1385021
> > Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> > Commit-Queue: Nico Weber <thakis@chromium.org>
> > Reviewed-by: Nico Weber <thakis@chromium.org>
> > Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#618035}
> 
> Bug: 767901
> Change-Id: Ibcf1ee670f2696aeadb1a221022d21ddc4ca6753
> Reviewed-on: https://chromium-review.googlesource.com/c/1387745
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618427}

TBR=thakis@chromium.org,dpranke@chromium.org,thomasanderson@chromium.org

Change-Id: Ibe9317d04e44f65d67e5876e3bbae83b57b1a026
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 767901
Reviewed-on: https://chromium-review.googlesource.com/c/1388717
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#618577}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 97e6cbbcb0071b5db924187dd6bb1ea4de129f96
2018-12-21 20:06:07 +00:00
Tom Anderson b61a4fb7a0 Reland "Roll buildtools and enable in-tree libc++ on Android"
This is a reland of 1a874fe60ccb87401867a7334b8eb11e5e4b1552
Android sanitizer bots should be green after:
https://chromium-review.googlesource.com/c/chromium/src/+/1387399

Original change's description:
> Roll buildtools and enable in-tree libc++ on Android
>
> Buildtools changelog:
> 7d88270de1..0e1cbc4eab
>
> BUG=767901
> R=thakis
>
> Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
> Reviewed-on: https://chromium-review.googlesource.com/c/1385021
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618035}

Bug: 767901
Change-Id: Ibcf1ee670f2696aeadb1a221022d21ddc4ca6753
Reviewed-on: https://chromium-review.googlesource.com/c/1387745
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#618427}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 10e1da1f3a8a3a03f3ff9c2a8939a497aae1af89
2018-12-21 01:46:12 +00:00
Hans Wennborg f105d6f929 Revert "Roll buildtools and enable in-tree libc++ on Android"
This reverts commit 1a874fe60ccb87401867a7334b8eb11e5e4b1552.

Reason for revert:
This broke the build, see bug.

Original change's description:
> Roll buildtools and enable in-tree libc++ on Android
> 
> Buildtools changelog:
> 7d88270de1..0e1cbc4eab
> 
> BUG=767901
> R=​thakis
> 
> Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
> Reviewed-on: https://chromium-review.googlesource.com/c/1385021
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Commit-Queue: Nico Weber <thakis@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#618035}

TBR=thakis@chromium.org,dpranke@chromium.org,thomasanderson@chromium.org

Change-Id: Ia54846c3ad7ed2fd03cb3c52bd1d0c18a1461a91
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 767901,916962
Reviewed-on: https://chromium-review.googlesource.com/c/1386434
Reviewed-by: Hans Wennborg <hans@chromium.org>
Commit-Queue: Hans Wennborg <hans@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#618194}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0139283eabe99b3d50e65b74c878519a90c1c8e5
2018-12-20 13:22:33 +00:00
Tom Anderson f1b67de9df Roll buildtools and enable in-tree libc++ on Android
Buildtools changelog:
7d88270de1..0e1cbc4eab

BUG=767901
R=thakis

Change-Id: I96fdafca5e228cbfe7a0909170c0235e7845bbde
Reviewed-on: https://chromium-review.googlesource.com/c/1385021
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#618035}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 1a874fe60ccb87401867a7334b8eb11e5e4b1552
2018-12-20 00:37:25 +00:00
Tom Anderson cf28da6df0 Disable libc++ on android and rollback buildtools to 7d88270d
This CL

1. Reverts 9a085ba23156aba9ade0a08efd3d948f9527f01e
2. Rolls buildtools back to 7d88270de197ebe8b439ab5eb57a4a2a0bb810e0
3. Disables libc++ on Android

BUG=910864,846855,767901
TBR=thakis
CC=​​mmoroz
NOTRY=true

Change-Id: I44e3a504fa6b842099fef78371c7dfcf7921f2f5
Reviewed-on: https://chromium-review.googlesource.com/c/1379245
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#616895}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0e2335f44024cc59d7c4a8a3fd76212628f1f64c
2018-12-15 00:33:24 +00:00
Tom Anderson b25f4e41af Android: Enable in-tree libc++ builds
BUG=767901
R=thakis
CC=pcc

Change-Id: I70b017a99fe139d3925d7318116e435f5b6223ac
Reviewed-on: https://chromium-review.googlesource.com/c/1377329
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Peter Collingbourne <pcc@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#616803}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 36e7058d99f6446593538e25c73796578cefd4d8
2018-12-14 20:12:54 +00:00
Tom Anderson b425156dd9 Remove libcpp_is_static and add export_libcxxabi_from_executables
This includes a reland of [1].  The original CL was broken on certain ChromeOS
configs because -rdynamic wasn't getting set on executables.  This CL fixes the
issue by adding //build/config/compiler:export_dynamic.

This change makes libc++ a shared_library iff is_component_build=true, just like
all other components.  This has the advantage that the RPATH doesn't need to be
set in sanitizer (non-component) builds just so binaries can find libc++.so.
This CL also changes RPATH to be set iff is_component_build=true.

Needs buildtools CL [2].

[1] f002a96e9b
[2] https://chromium-review.googlesource.com/c/chromium/buildtools/+/1153974

R=thakis,pcc,dpranke
TBR=jochen,michaelpg,sergeyu
BUG=850682
CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;luci.chromium.try:linux_chromium_asan_rel_ng;luci.chromium.try:linux_chromium_tsan_rel_ng

Change-Id: I0067041dab85e16595bdeb2f790a68443208117f
Reviewed-on: https://chromium-review.googlesource.com/1153978
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Peter Collingbourne <pcc@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#579138}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8a1a7293f365fb2685ae57fa24d34b7ee72ad8dd
2018-07-30 20:05:37 +00:00
Scott Violet a7f9daec33 Revert "Remove libcpp_is_static"
This reverts commit f002a96e9b788fe71fd1c773a4bc891940c409d8.

Reason for revert: Dirk bisected the chromeos asan failures and it appears this is the culprit. The output from the failing bots isn't particularly helpful as it doesn't have symbols. Here's a recent failure: https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/28402

BUG=867826

Original change's description:
> Remove libcpp_is_static
> 
> This change makes libc++ a shared_library iff is_component_build=true, just like
> all other components.  This has the advantage that the RPATH doesn't need to be
> set in sanitizer (non-component) builds just so binaries can find libc++.so.
> This CL also changes RPATH to be set iff is_component_build=true.
> 
> Needs buildtools CL:
> https://chromium-review.googlesource.com/c/chromium/buildtools/+/1142370
> 
> TBR=dpranke,jochen
> R=​thakis
> BUG=850682
> CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;luci.chromium.try:linux_chromium_asan_rel_ng;luci.chromium.try:linux_chromium_tsan_rel_ng
> 
> Change-Id: I96e74da6d907659b939a0f229693bbd2a6d9140a
> Reviewed-on: https://chromium-review.googlesource.com/1119098
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Reviewed-by: Peter Collingbourne <pcc@chromium.org>
> Reviewed-by: Nico Weber <thakis@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#578085}

TBR=thakis@chromium.org,pcc@chromium.org,thomasanderson@chromium.org

Change-Id: Ieec9ae83b7c12004521358cf71eb2d09fdfc7a09
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 850682
Cq-Include-Trybots: luci.chromium.try:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;luci.chromium.try:linux_chromium_asan_rel_ng;luci.chromium.try:linux_chromium_tsan_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/1151917
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#578435}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c2b25737b2f878e0917d8cd0553d11c557b5cb92
2018-07-26 21:00:10 +00:00