New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 593874 link

Starred by 28 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug


Sign in to add a comment

Switch chrome/linux to libc++

Project Member Reported by thakis@chromium.org, Mar 10 2016

Issue description

We currently use the system libstdc++ on Linux, which is currently at 4.6. That has most C++11 stuff, but not all.

Notably absent:

* A bunch of type_traits are missing
* Too many memory barriers slowing down perf ( bug 592903 , https://codereview.chromium.org/1777363002/, etc)

We want to up the linux min version soon, so I suppose we could wait for that.

Or we could try to statically link libc++...this should probably mostly work fine (things will be similar to the situation on Mac: https://docs.google.com/document/d/1cFVCLYqpVV0pn2aX09SALcE3BN351sFN_rTcPcHRg3U/edit?pref=2&pli=1 -- as long as we don't call C++ system libraries we should be fine).


Decide if things are dire enough that we need to do something, and if so, what.
 

Comment 1 by thakis@chromium.org, Mar 10 2016

Blocking: 592903
I believe the plan is to:
1) upgrade our bots to Trusty (bug 564904)
2) update the sysroot to something newer (here's an attempt: https://codereview.chromium.org/1665223002/ )

Comment 3 by dcheng@chromium.org, Mar 11 2016

A couple other things that are missing:
* operator<, operator>, operator<=, and operator>= comparisons between std::unique_ptr and std::nullptr_t.
* no emplace on std::map and std::unordered_map.

Precise topped out at libstdc++4.6, but Trusty has libstdc++4.8. Wheezy apparently got up to libstdc++4.7 (Ubuntu, why can't you pick this up for Precise?), and jessie has libstdc++4.9.2. Chrome is dropping support for precise/wheezy, and the installer for Chrome on Linux is checking for libstdc++ >= 4.8 right now (see  Issue 582216  and  Issue 583235 ). But Chromium is not dropping support for these platforms. To enforce this there are still 64bit Precise builders, which I assume are so that Ubuntu can still build/distrubute Chromium for Precise. Since Precise is alive until April 2017, and given the normal Chromium release schedule, Chromium will be stuck with libstdc++4.6 until at least the first Chromium branch in 2017 (so at something like M58 or soon after Chromium can finally make it to... libstdc++4.8).

This is at least a little bit uncomfortable, since it means that third party also cannot use these traits until then as well. I was just bitten by the lack of std::underlying_type. As an aside, Precise did not ship a libc++ package. Debian didn't package up libc++ until late 2012.

Also, this isn't going to get any better in the future if we're going to support Ubuntu releases and their libstdc++, it is always going to be five years out of date. The immediate problem of libstdc++4.6 is over a year from now, but with the current plan Chromium will be limited to libstdc++4.8 until 2019 (at which point Chromium will get to experience libstdc++5.3 until 2021 because Xenial won't ship with gcc6).
IMHO what we should look at is what problems there would be using libc++-static in Linux builds, since we already use Clang for all Linux builds.  If there are no specific reasons not to use libc++-static, then we should just do it to simplify life in the project.

The only things that would be reasons not to use it (that I can think of) are:
1. libc++ has some bugs on Linux (that it doesn't have on Mac, where we already use it).  For those we should just work on getting upstream fixes in.
2. We're using some system-supplied library with a C++ interface.  If this is something we do, then we'll have to look at each such case in detail to figure out the issues.  Hopefully we just don't do it at all.  If we do, then perhaps it's a C++ interface that is "pure" in the sense of not using STL types and such in the library's ABI; in that case, it shouldn't be any problem.
Item 2 from #5 should be addressed by the recently-proposed switch to a different vtable ABI in https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/774FO8shGw4 so that work is already being done (if we adopt that proposal) and in any case it doesn't look like it would be a big deal.
Just wanted to add to my above comment about Ubuntu Precise support. As far as I can tell, the 'official' Ubuntu Precise Chromium repository no longer receives 'major' updates, and is actually Chromium 37 with 'security patches' (I'm really trying not to laugh at this, but failing). Is there some reason to support Precise anymore in Chromium if Ubuntu isn't building it? Note that this is all applicable to Debian wheezy as well. If the only reason to continue to support Chromium on Precise/wheezy is so the distros can build it... well they aren't building it. If there are other reasons I'd be interested to know what they are.

Comment 8 by thakis@chromium.org, Mar 20 2016

Cc: dpranke@chromium.org
See "[chromium-dev] Updates to Google Chrome Linux support"

"""To provide the best experience for the most-used Linux versions, we will end support for Google Chrome on 32-bit Linux, Ubuntu Precise (12.04), and Debian 7 (wheezy) in early March, 2016.  Chrome will continue to function on these platforms but will no longer receive updates and security fixes."""

So we don't intend to support Precise until EOL.

I don't know when we're rebuilding sysroots for that, or how, though. (and sbc and thestig, who know, are both away atm. maybe dpranke knows?)


Re comment 6: I think the vtable ABI stuff is independent from what comment 5 means. If we use a system lib via a c++ interface and pass a std::string to it, then the system lib will be built against libstdc++ headers but chrome might be built against libc++ headers, and these two std::strings aren't abi compatible (see also the document linked in comment 0 that describes this in some detail).

Comment 9 by jfb@chromium.org, Apr 26 2016

Cc: jfb@chromium.org
Cc: xyzzyz@chromium.org
Found another thing that doesn't work:

void F(const std::vector<int>& x);

void G() {
  F({1});
}

doesn't compile with 4.6 in debug mode with an error like the one in https://bugs.chromium.org/p/chromium/issues/detail?id=381053
I think we should explore statically linking libc++ and see how that goes.
Cc: jbroman@chromium.org danakj@chromium.org

Comment 14 by most...@opera.com, Sep 1 2016

Cc: most...@opera.com
What's the status here? It's been another 3 months. :)
It'll get done if someone does it.

(I started a doc with a few notes early last week -- https://docs.google.com/document/u/1/d/1zmHUXlpGNXB433wHnr40dLwj7c-USsIVlyAeH7vOI9o/edit# -- maybe it'll go somewhere eventually, or someone else will beat me to it)
Cc: thomasanderson@chromium.org

Comment 18 by a...@chromium.org, Sep 30 2016

FYI, the C++11 addition to std::vector::erase of being able to take const_iterators is broken on linux.

See https://codereview.chromium.org/2379863002/#ps100001:

../../ui/base/models/tree_node_model.h:96:15: error: no matching member function for call to 'erase'
    children_.erase(i);
    ~~~~~~~~~~^~~~~
../../ui/base/models/tree_node_model_unittest.cc:276:39: note: in instantiation of member function 'ui::TreeNode<ui::TreeNodeWithValue<int> >::Remove' requested here
  std::unique_ptr<TestNode> c2 = root.Remove(child2);
                                      ^
../../build/linux/debian_wheezy_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/bits/stl_vector.h:986:7: note: candidate function not viable: no known conversion from '__normal_iterator<const std::unique_ptr<ui::TreeNodeWithValue<int>, std::default_delete<ui::TreeNodeWithValue<int> > > *, [...]>' to '__normal_iterator<pointer, [...]>' for 1st argument
      erase(iterator __position);
      ^
../../build/linux/debian_wheezy_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../../include/c++/4.6/bits/stl_vector.h:1007:7: note: candidate function not viable: requires 2 arguments, but 1 was provided
      erase(iterator __first, iterator __last);

It only is considering the iterator overloads, and doesn't have const_iterator overloads.

Comment 19 by a...@chromium.org, Oct 20 2016

I hit it again:

In https://chromiumcodereview.appspot.com/2436023002 a multimap is used, which has no operator[], so the fact that insert and emplace are broken for move-only types is a killer.

In https://chromiumcodereview.appspot.com/2441643002 a map is used, but the value is a move-only class. Why unique_ptr is OK in those maps on Linux, but a user-defined move-only type isn't I don't understand.


Blockedon: 657963
> In https://chromiumcodereview.appspot.com/2441643002 a map is used, but the
> value is a move-only class. Why unique_ptr is OK in those maps on Linux, but a
> user-defined move-only type isn't I don't understand.


Is it JobQueue? Because it deletes the copy constructor but doesn't add a move constructor so it's not movable.

Comment 22 by a...@chromium.org, Oct 29 2016

Dana, I missed your comment when you posted it; let me investigate your suggestion.

Comment 23 by a...@chromium.org, Oct 29 2016

Dana, your suggestion re JobQueue appears to have been correct; thank you!

Comment 24 by a...@chromium.org, Dec 14 2016

FYI, I have found alternative approaches for all my CLs. I am no longer blocked on this issue.
Owner: xyzzyz@chromium.org
OK, so the current plan is the following: 

1) We build a static archive of libc++ and libc++abi, and add it to the checkout,  alongside the Clang binaries. We do this for x86_32 and x86_64 targets on Linux. For other platforms the assumption is that people need to have libc++ and libc++abi installed on their systems, so that "-lc++ -lc++abi" works.
2) We modify the build configs on Linux to use libc++ headers, and link with libc++ and libc++abi statically.
3) We make sure that it doesn't break other platforms, and also that sanitizers still work.

IMHO the arm and aarch64 Linux targets should get libc++{,abi} binaries built too.  Upstream support for those should be fine, and these are the other Linux targets for which building Chromium with Chromium-supplied Clang works today.
Cc: euge...@chromium.org
eugenis@ floated an idea that (if I understood him correctly) instead of the plan above, we just ship libc++ and libc++abi in third_party, and write BUILD.gn for them. this would solve the problem of libc++ availability on all platforms, and probably make it a bit simpler conceptually and in maintenance. wdyt?
That approach would be an simpler for cases like (IIRC) msan, where the C++ stdlib has to be built with the instrumentation (unlike e.g. asan). Of course you could do multiple prebuilt libc++ binaries (like the zoo of compiler_rt binaries that clang already has), but that would be more to manage on the clang side. Of course with the GN approach, you would actually have to compile all those files (many of which may be unused by Chromium) on every build, although I suppose goma would mitigate that.
Status: Assigned (was: Untriaged)
What is the minimum version of libstdc++ that we need?

We're planning on switching the sysroot from Wheezy to Jessie once the remaining tryserver.chromium.linux slaves are upgraded to Trusty (bug 666825).

When this happens, we'll be using libstdc++4.9.2 instead of libstdc++4.7.  If 4.9.2 is all we need, this could save someone a lot of time.
Blocking: 677044
std::is_trivially_copyable is not available until 5+ I believe: https://cs.chromium.org/chromium/src/base/template_util.h?rcl=21b6f3db42a1ff35b33993812b2fd851922c4770&l=36

Many other things are better in 4.9: https://cs.chromium.org/chromium/src/base/template_util.h?rcl=21b6f3db42a1ff35b33993812b2fd851922c4770&l=17

I'm not sure if 4.9 addresses other problems such as missing emplace() on map or vector::erase(const iterator).
I was investigating the possibility of following the approach described in #27. The difficulty here is that we need some target that all Chrome targets depend on  to depend on the libc++ target, so that it is available during linking. Does there exist such a target? The only thing I found is the deps option of the toolchain definition[1], but it doesn't seem to be used in Chrome so far, I'm not sure if it actually solves my problem, and there are same caveats in the doc that suggest it might not be the best idea.

The way it currently works for //buildtools/third_party/libc++ is that every binary needs to explicitly depend on //build/config/sanitizers:deps.

[1] - https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#toolchain_Defines-a-toolchain
Cc: kwiberg@chromium.org
@danakj:

You are right, std::is_trivially_copyable is still not implemented in 4.9: https://gcc.gnu.org/onlinedocs/gcc-4.9.0/libstdc++/api/a01562_source.html#l00592

However, things are better with last week's sysroot update. We now have access to libstdc++4.8, meaning features like std::is_assignable (https://gcc.gnu.org/onlinedocs/gcc-4.8.0/libstdc++/api/a01609_source.html#l01097) and std::map::emplace (https://gcc.gnu.org/onlinedocs/gcc-4.8.0/libstdc++/api/a01557_source.html#l00520). 

Nevertheless, std::vector::erase(const_iterator) is only available in libstdc++4.9, so I am very curious to find out how to get libstdc++4.9.2 to work with Jessie.
Owner: thakis@chromium.org
Status: Available (was: Assigned)
Summary: Switch chrome/linux to libc++ (was: Figure out c++ stdlib story on linux going forward)
Retitling; I think we're pretty sure by now that we want to statically link to libc++ at this point.

xyzzyz did a bunch of work on this, but he's since moved on to other projects. If anyone wants to take this over, let me know and I can give you the current state. Else, I'll get to it eventually.
Blocking: 554293

Comment 37 by most...@opera.com, Apr 4 2017

I'm not volunteering (at least not for the entire task), but I would be very interested in a status report and estimated timeline looking forward.
Cc: thakis@chromium.org
Owner: thomasanderson@chromium.org
Status: Assigned (was: Available)
Blockedon: 723069
Cc: dskiba@chromium.org

Comment 41 by p...@chromium.org, May 19 2017

Cc: p...@chromium.org

Comment 42 by capn@chromium.org, May 24 2017

Blockedon: swiftshader:54
Project Member

Comment 43 by bugdroid1@chromium.org, May 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1899d987d016dc588d677d7a8b851379aca2bdaa

commit 1899d987d016dc588d677d7a8b851379aca2bdaa
Author: thomasanderson <thomasanderson@chromium.org>
Date: Wed May 24 18:31:49 2017

Fix nullptr dereference of ToolbarActionView

BrowserActionsBarBrowserTest.OverflowedBrowserActionPopupTestRemoval
fails when using the latest libc++ and libc++abi [1].

Frame 20 in the stack trace in [2] nulls the pointer but did not
remove the ToolbarActionView from the vector (yet).  Frame 3 then
tries to use the null pointer.

This CL is necessary to roll buildtools (contains libc++ and
libc++abi) to the latest revision.

[1] https://codereview.chromium.org/2888383005/
[2] https://paste.googleplex.com/5158886495485952

BUG= 593874 , 717554 
TBR=finnur@chromium.org

Review-Url: https://codereview.chromium.org/2901193002
Cr-Commit-Position: refs/heads/master@{#474364}

[modify] https://crrev.com/1899d987d016dc588d677d7a8b851379aca2bdaa/chrome/browser/ui/views/toolbar/browser_actions_container.cc

Project Member

Comment 44 by bugdroid1@chromium.org, May 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2064d334c9817b83d54f945e03edd2c7e626b128

commit 2064d334c9817b83d54f945e03edd2c7e626b128
Author: thomasanderson <thomasanderson@chromium.org>
Date: Wed May 24 21:14:57 2017

Roll buildtools to 57c9408

This is needed to pick up:
https://codereview.chromium.org/2897463004
https://codereview.chromium.org/2848383002

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng
BUG= 593874 , 709456 
R=thestig@chromium.org

Review-Url: https://codereview.chromium.org/2888383005
Cr-Commit-Position: refs/heads/master@{#474425}

[modify] https://crrev.com/2064d334c9817b83d54f945e03edd2c7e626b128/DEPS

Status: Started (was: Assigned)
Project Member

Comment 46 by bugdroid1@chromium.org, May 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122

commit f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122
Author: thomasanderson <thomasanderson@chromium.org>
Date: Fri May 26 20:01:39 2017

Partition libcxx build code from build/config/sanitizers

This CL:
* Removes the last dependency on sanitizers:deps_no_options and replaces it
  with exe_and_shlib_deps
* Merges sanitizers:deps and sanitizers:deps_no_options
* Adds a weak symbol for NaCl to override the default sanitizer options

BUG= 593874 
R=thakis@chromium.org,bradnelson@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;master.tryserver.chromium.mac:mac_chromium_asan_rel_ng

Review-Url: https://codereview.chromium.org/2911513002
Cr-Commit-Position: refs/heads/master@{#475093}

[modify] https://crrev.com/f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122/build/config/BUILD.gn
[modify] https://crrev.com/f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122/build/config/sanitizers/BUILD.gn
[modify] https://crrev.com/f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122/build/sanitizers/sanitizer_options.cc
[modify] https://crrev.com/f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122/components/nacl/loader/BUILD.gn
[modify] https://crrev.com/f59081471b68cb0a0c484fe9c9c3b8a1f7f2d122/components/nacl/loader/nacl_helper_linux.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Jun 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e8b52c26834fbeba662c6cf0073d88aefb7907a8

commit e8b52c26834fbeba662c6cf0073d88aefb7907a8
Author: thomasanderson <thomasanderson@chromium.org>
Date: Fri Jun 02 05:46:04 2017

Roll buildtools to 31d4da

This CL rolls in the following changes:
https://chromium.googlesource.com/chromium/buildtools/+/3b8de5198d784fe2b7cc9f75dcf2ca8eb616a81e..31d4daad5d9af672d4e234570a24f3fd844bb713

The last reference to //build/config/compiler:pthread is removed, so
this CL also removes the config.

R=thakis@chromium.org,brettw@chromium.org
BUG= 593874 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;master.tryserver.chromium.linux:linux_chromium_dbg_ng;master.tryserver.chromium.mac:mac_chromium_asan_rel_ng

Review-Url: https://codereview.chromium.org/2914653002
Cr-Commit-Position: refs/heads/master@{#476586}

[modify] https://crrev.com/e8b52c26834fbeba662c6cf0073d88aefb7907a8/DEPS
[modify] https://crrev.com/e8b52c26834fbeba662c6cf0073d88aefb7907a8/build/config/BUILD.gn
[modify] https://crrev.com/e8b52c26834fbeba662c6cf0073d88aefb7907a8/build/config/BUILDCONFIG.gn
[modify] https://crrev.com/e8b52c26834fbeba662c6cf0073d88aefb7907a8/build/config/compiler/BUILD.gn

Blockedon: 729032
Project Member

Comment 49 by bugdroid1@chromium.org, Jun 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e89683d4ca3cc61fed5984c234bab3f1dc6c3ef0

commit e89683d4ca3cc61fed5984c234bab3f1dc6c3ef0
Author: thomasanderson <thomasanderson@chromium.org>
Date: Fri Jun 09 04:57:02 2017

Roll buildtools to b53a03

This roll includes 3 revisions [1] and is purely to make sure those
revisions didn't break anything.

[1] https://chromium.googlesource.com/chromium/buildtools/+log/31d4daa..b53a03

BUG= 593874 
R=thestig@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng

Review-Url: https://codereview.chromium.org/2932783002
Cr-Commit-Position: refs/heads/master@{#478204}

[modify] https://crrev.com/e89683d4ca3cc61fed5984c234bab3f1dc6c3ef0/DEPS

Blockedon: 732548
Blockedon: 734873
Blockedon: 734875
Blockedon: 735133
Project Member

Comment 54 by bugdroid1@chromium.org, Jun 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/018ffc7f6451b844d6f3f45e8d01ced35adeb780

commit 018ffc7f6451b844d6f3f45e8d01ced35adeb780
Author: thomasanderson <thomasanderson@chromium.org>
Date: Thu Jun 22 01:25:33 2017

Move libc++ configs and flags out of //build/config/sanitizers

libc++ used to be used only on instrumented builds, so it made sense
for the associated build code to go in //build/config/sanitizers.  Now
that non-sanitizer builds are switching to libc++ as well, it makes
more sense for this code to live elsewhere.

Additionally, there is a target, android_protoc, which has a
dependency on exe_and_shlib_deps but removes the
default_sanitizer_flags, which used to bring in c++flags.  This meant
the sources would compile against the libstdc++ headers in the
sysroot, but link against libc++, resulting in many symbol conflicts.

BUG= 593874 
R=brettw@chromium.org

Review-Url: https://codereview.chromium.org/2931983003
Cr-Commit-Position: refs/heads/master@{#481392}

[modify] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/build/config/BUILD.gn
[add] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/build/config/c++/BUILD.gn
[add] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/build/config/c++/c++.gni
[modify] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/build/config/compiler/BUILD.gn
[modify] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/build/config/sanitizers/BUILD.gn
[modify] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/build/config/sanitizers/sanitizers.gni
[modify] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/chrome/installer/linux/BUILD.gn
[modify] https://crrev.com/018ffc7f6451b844d6f3f45e8d01ced35adeb780/extensions/shell/installer/linux/BUILD.gn

Project Member

Comment 55 by bugdroid1@chromium.org, Jun 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/72ce0cd56fb761e469941b4b0d95c6565b15678a

commit 72ce0cd56fb761e469941b4b0d95c6565b15678a
Author: thomasanderson <thomasanderson@chromium.org>
Date: Thu Jun 22 04:43:22 2017

Roll buildtools to 7f2cacb

This roll includes 2 revisions [1].  It is needed so I can run the
trybots for [2].

[1] https://chromium.googlesource.com/chromium/buildtools/+log/31d4daa..b53a03
[2] https://codereview.chromium.org/2933573002/

BUG= 593874 
TBR=thakis@chromium.org

Review-Url: https://codereview.chromium.org/2951253002
Cr-Commit-Position: refs/heads/master@{#481437}

[modify] https://crrev.com/72ce0cd56fb761e469941b4b0d95c6565b15678a/DEPS

Project Member

Comment 56 by bugdroid1@chromium.org, Jun 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4312d5e0b01af9a3ad5f92a1763142155f01a7c6

commit 4312d5e0b01af9a3ad5f92a1763142155f01a7c6
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Thu Jun 22 23:13:51 2017

Add patched eu-strip in third_party

The eu-strip that ships with Ubuntu Trusty segfaults when stripping a
chrome binary that statically links libc++.  The issue was fixed
upstream at some point because the crash does not occur on Ubuntu
Xenial.

This CL bundles a patched eu-strip for x86_64 (and removes the x86 one
that used to be in Google Cloud Storage).

The issue was due to a double-free in libelf.so.  The patched version
simply removes the offending call to free and statically links libelf
into eu-strip.  This probably results in a memory leak, but this is ok
for now since the utility is a very short-lived process.

BUG= 593874 
R=dpranke@chromium.org,thestig@chromium.org
TBR=thakis@chromium.org

Change-Id: I2085c4f6278cffbaeae972545280ebb437a8bdc0
Reviewed-on: https://chromium-review.googlesource.com/544798
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481710}
[modify] https://crrev.com/4312d5e0b01af9a3ad5f92a1763142155f01a7c6/DEPS
[modify] https://crrev.com/4312d5e0b01af9a3ad5f92a1763142155f01a7c6/build/.gitignore
[delete] https://crrev.com/8be19fab7eb78573df86a4d7678191ba7dd8f490/build/linux/bin/eu-strip.sha1
[modify] https://crrev.com/4312d5e0b01af9a3ad5f92a1763142155f01a7c6/chrome/installer/linux/BUILD.gn
[add] https://crrev.com/4312d5e0b01af9a3ad5f92a1763142155f01a7c6/third_party/eu-strip/OWNERS
[add] https://crrev.com/4312d5e0b01af9a3ad5f92a1763142155f01a7c6/third_party/eu-strip/README.chromium
[add] https://crrev.com/4312d5e0b01af9a3ad5f92a1763142155f01a7c6/third_party/eu-strip/bin/eu-strip

Project Member

Comment 57 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e01cebebecd8f05f000fe92ba52b6f12ff5e08f6

commit e01cebebecd8f05f000fe92ba52b6f12ff5e08f6
Author: thomasanderson <thomasanderson@chromium.org>
Date: Tue Jun 27 01:53:28 2017

Roll android_protobuf to 7fca48d

This roll is needed to pick up CL [1] so that android_protobuf can
build against libc++.  It includes revisions from [2].

[1] https://chromium.googlesource.com/external/android_protobuf/+/c51e25aa1b54f02446e5862a149e33565f8397c1
[2] https://chromium.googlesource.com/external/android_protobuf/+log/999188d0dc72e97f7fe08bb756958a2cf090f4e7..f1376b3a24f1efff8bd9e0eda97d54800e090475

BUG= 593874 
TBR=thakis@chromium.org

Review-Url: https://codereview.chromium.org/2957963002
Cr-Commit-Position: refs/heads/master@{#482510}

[modify] https://crrev.com/e01cebebecd8f05f000fe92ba52b6f12ff5e08f6/DEPS

Blockedon: -734875 -734873
Project Member

Comment 59 by bugdroid1@chromium.org, Jun 27 2017

Project Member

Comment 61 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/39fcd6af4d8c9ddcf909b8d489c6ba684d046157

commit 39fcd6af4d8c9ddcf909b8d489c6ba684d046157
Author: thomasanderson <thomasanderson@chromium.org>
Date: Thu Jun 29 21:43:52 2017

Switch Chrome on Linux to libc++

Design doc detailing the changes at [1], and announcement to
chromium-dev at [2].

In addition, this CL updates perf_expectations to increase the number
of allowed static initializers.  libc++ adds some initializers from
iostream.cpp.  However, this case is net-neutral since the initializer
used to live in libstdc++, but has been pushed into the chrome and
nacl executables.  The perf_expectations change also required adding
NOPRESUBMIT=true to silence a bogus warning.

[1] https://docs.google.com/document/d/1zmHUXlpGNXB433wHnr40dLwj7c-USsIVlyAeH7vOI9o/edit#heading=h.bfky2xssferh
[2] https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/z2YnFCxq0MA

BUG= 593874 
R=thakis@chromium.org
TBR=rdevlin.cronin@chromium.org
CC=thestig@chromium.org
NOPRESUBMIT=true
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_dbg_ng;master.tryserver.chromium.linux:linux_arm;master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.linux:linux_chromium_dbg_32_ng

Review-Url: https://codereview.chromium.org/2933573002
Cr-Commit-Position: refs/heads/master@{#483498}

[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/build/config/c++/c++.gni
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/chrome/installer/linux/debian/expected_deps_ia32_jessie
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/chrome/installer/linux/debian/expected_deps_x64_jessie
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/chrome/installer/linux/rpm/build.sh
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/chrome/installer/linux/rpm/expected_deps_i386
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/chrome/installer/linux/rpm/expected_deps_x86_64
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/extensions/shell/installer/linux/debian/expected_deps_x64_jessie
[modify] https://crrev.com/39fcd6af4d8c9ddcf909b8d489c6ba684d046157/tools/perf_expectations/perf_expectations.json

Comment 62 by p...@google.com, Jun 30 2017

I think this must have broken the "GPU Linux Builder" bot:

https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Linux%20Builder/builds/92009
c#62 Thanks, looks like there are some things in third_party/angle/src/tests/deqp.gypi that are missing the dependency on exe_and_shlib_deps
Project Member

Comment 64 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71911249cfd027e31384c7daa1a781773545036c

commit 71911249cfd027e31384c7daa1a781773545036c
Author: ynovikov <ynovikov@chromium.org>
Date: Fri Jun 30 00:28:00 2017

Revert of Switch Chrome on Linux to libc++ (patchset #5 id:180001 of https://codereview.chromium.org/2933573002/ )

Reason for revert:
Breaks https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Linux%20Builder/builds/92009

Original issue's description:
> Switch Chrome on Linux to libc++
>
> Design doc detailing the changes at [1], and announcement to
> chromium-dev at [2].
>
> In addition, this CL updates perf_expectations to increase the number
> of allowed static initializers.  libc++ adds some initializers from
> iostream.cpp.  However, this case is net-neutral since the initializer
> used to live in libstdc++, but has been pushed into the chrome and
> nacl executables.  The perf_expectations change also required adding
> NOPRESUBMIT=true to silence a bogus warning.
>
> [1] https://docs.google.com/document/d/1zmHUXlpGNXB433wHnr40dLwj7c-USsIVlyAeH7vOI9o/edit#heading=h.bfky2xssferh
> [2] https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/z2YnFCxq0MA
>
> BUG= 593874 
> R=thakis@chromium.org
> TBR=rdevlin.cronin@chromium.org
> CC=thestig@chromium.org
> NOPRESUBMIT=true
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_dbg_ng;master.tryserver.chromium.linux:linux_arm;master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.linux:linux_chromium_dbg_32_ng
>
> Review-Url: https://codereview.chromium.org/2933573002
> Cr-Commit-Position: refs/heads/master@{#483498}
> Committed: https://chromium.googlesource.com/chromium/src/+/39fcd6af4d8c9ddcf909b8d489c6ba684d046157

TBR=thakis@chromium.org,rdevlin.cronin@chromium.org,thomasanderson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 593874 

Review-Url: https://codereview.chromium.org/2965693002
Cr-Commit-Position: refs/heads/master@{#483560}

[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/build/config/c++/c++.gni
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/chrome/installer/linux/debian/expected_deps_ia32_jessie
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/chrome/installer/linux/debian/expected_deps_x64_jessie
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/chrome/installer/linux/rpm/build.sh
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/chrome/installer/linux/rpm/expected_deps_i386
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/chrome/installer/linux/rpm/expected_deps_x86_64
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/extensions/shell/installer/linux/debian/expected_deps_x64_jessie
[modify] https://crrev.com/71911249cfd027e31384c7daa1a781773545036c/tools/perf_expectations/perf_expectations.json

I think it could only break linux_optional_gpu_tests_rel, not linux_chromium_rel_ng or linux_chromium_compile_dbg_ng since those two were added to the CQ on the original CL.  What are the specific build IDs for which you think libc++ caused the failure?
Oh, these failed because that CL is adding a new target, angle_shader_translator
I suspect libangle_deqp_libgles2.so link is failing because it needs exceptions enabled, contrary to rest of chrome.
Cc: ynovikov@chromium.org
c#68 Ah, that makes sense.  Could you add exe_and_shlib_deps as a dependency of angle_shader_translator before landing?

c#69 libc++ is built with exceptions enabled, I think it's just another missing exe_and_shlib_deps
So, in order not to break linux_optional_gpu_tests_rel, let's land
https://chromium-review.googlesource.com/c/557350/ and https://chromium-review.googlesource.com/c/557599/.
Then I'll roll ANGLE and reland your CL.
sgtm!

In the reland, please add master.tryserver.chromium.linux:linux_optional_gpu_tests_rel to CQ_INCLUDE_TRYBOTS
Project Member

Comment 73 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/802a73ba380a8d20b8a6f7be68f57b2873ac9813

commit 802a73ba380a8d20b8a6f7be68f57b2873ac9813
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Fri Jun 30 02:36:19 2017

[ANGLE] Add missing dependency on exe_and_shlib_deps

BUG= chromium:593874 
Change-Id: I025f31e422cf3eb5db1730710cca26587c283839
Reviewed-on: https://chromium-review.googlesource.com/557350
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>

[modify] https://crrev.com/802a73ba380a8d20b8a6f7be68f57b2873ac9813/src/tests/BUILD.gn

Project Member

Comment 74 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/angle/angle/+/f0be43fee2a89588a63d4d7beb82ea18db7431e8

commit f0be43fee2a89588a63d4d7beb82ea18db7431e8
Author: Yuly Novikov <ynovikov@chromium.org>
Date: Fri Jun 30 02:39:30 2017

Add missing dependency on exe_and_shlib_deps

BUG= chromium:593874 ,  angleproject:2095 

Change-Id: I97860f7978d509bb36dfdfb5fac7524e9d24f5fe
Reviewed-on: https://chromium-review.googlesource.com/557599
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

[modify] https://crrev.com/f0be43fee2a89588a63d4d7beb82ea18db7431e8/BUILD.gn

Project Member

Comment 75 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/00e9c296931acf6c7f6a0a3b91fcb678a9d01fc6

commit 00e9c296931acf6c7f6a0a3b91fcb678a9d01fc6
Author: Yuly Novikov <ynovikov@chromium.org>
Date: Fri Jun 30 05:02:28 2017

Roll ANGLE 0dc9781..f0be43f

https://chromium.googlesource.com/angle/angle.git/+log/0dc9781..f0be43f

BUG=  angleproject:2095 , chromium:593874 

TBR=jmadill@chromium.org

TEST=bots

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel

Change-Id: Ieac8d2706ae8f2d9f75d24541d7a89f463e42933
Reviewed-on: https://chromium-review.googlesource.com/557679
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483636}
[modify] https://crrev.com/00e9c296931acf6c7f6a0a3b91fcb678a9d01fc6/DEPS

Switch reland in https://codereview.chromium.org/2963223003 , looks like bugdroid is broken again
Project Member

Comment 77 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b5152538d133f59aa6709a0811ff6c745973cc6

commit 3b5152538d133f59aa6709a0811ff6c745973cc6
Author: thomasanderson <thomasanderson@chromium.org>
Date: Fri Jun 30 19:23:49 2017

Simplify condition to use libc++

This CL simplifies use_custom_libcxx.  Most of the sanitizers are only
used on Linux so those cases can be removed.

BUG= 593874 
R=thakis@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_tsan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng

Review-Url: https://codereview.chromium.org/2963183003
Cr-Commit-Position: refs/heads/master@{#483787}

[modify] https://crrev.com/3b5152538d133f59aa6709a0811ff6c745973cc6/build/config/c++/c++.gni

Project Member

Comment 78 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d667444e9a52506535575a508d35dd9cede6d49b

commit d667444e9a52506535575a508d35dd9cede6d49b
Author: findit-for-me <findit-for-me@appspot.gserviceaccount.com>
Date: Fri Jun 30 21:13:58 2017

Revert of Simplify condition to use libc++ (patchset #2 id:20001 of https://codereview.chromium.org/2963183003/ )

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 483787 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzNiNTE1MjUzOGQxMzNmNTlhYTY3MDlhMDgxMWZmNmM3NDU5NzNjYzYM

Original issue's description:
> Simplify condition to use libc++
>
> This CL simplifies use_custom_libcxx.  Most of the sanitizers are only
> used on Linux so those cases can be removed.
>
> BUG= 593874 
> R=thakis@chromium.org
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_tsan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng
>
> Review-Url: https://codereview.chromium.org/2963183003
> Cr-Commit-Position: refs/heads/master@{#483787}
> Committed: https://chromium.googlesource.com/chromium/src/+/3b5152538d133f59aa6709a0811ff6c745973cc6

TBR=thakis@chromium.org,thomasanderson@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 593874 

Review-Url: https://codereview.chromium.org/2966893002
Cr-Commit-Position: refs/heads/master@{#483814}

[modify] https://crrev.com/d667444e9a52506535575a508d35dd9cede6d49b/build/config/c++/c++.gni

Project Member

Comment 79 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbab88489dff618fe1b8c4b9a8e192c1a5e1883a

commit cbab88489dff618fe1b8c4b9a8e192c1a5e1883a
Author: thomasanderson <thomasanderson@chromium.org>
Date: Fri Jun 30 23:53:07 2017

Simplify condition to use libc++ [Take 2]

This CL simplifies use_custom_libcxx.  Most of the sanitizers are only
used on Linux so those cases can be removed.

BUG= 593874 
R=thakis@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_tsan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;master.tryserver.chromium.linux:linux_chromium_chromeos_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_chromeos_asan_rel_ng

Review-Url: https://codereview.chromium.org/2970593002
Cr-Commit-Position: refs/heads/master@{#483866}

[modify] https://crrev.com/cbab88489dff618fe1b8c4b9a8e192c1a5e1883a/build/config/c++/c++.gni

Blockedon: 738814
While I build and develop on Windows, I do often build on a Ubiquity instance; I've been burned in the past by Windows changes breaking other platforms.

I'm now seeing the following error when running "gn gen":

ERROR Input to targets not generated by a dependency.
The file:
  //out/Debug/libc++.so
is listed as an input or source for the targets:
  //chrome/installer/linux:stable_deb
  //chrome/installer/linux:stable_rpm
  //chrome/installer/linux:beta_deb
  //chrome/installer/linux:beta_rpm
  //chrome/installer/linux:unstable_deb
  //chrome/installer/linux:unstable_rpm
  //chrome/installer/linux:trunk_deb
  //chrome/installer/linux:trunk_rpm
  //extensions/shell/installer/linux:unstable_deb
  //extensions/shell/installer/linux:stable_deb
  //extensions/shell/installer/linux:beta_deb
  //extensions/shell/installer/linux:trunk_deb
but this file was not generated by any dependencies of the targets. The target
that generates the file is:
  //buildtools/third_party/libc++:libc++

After pouring over the .gn and .gni files, here's a patch that seems to fix the issue:

diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn
index 292e1e4d5f58..652bbaa1356b 100644
--- a/chrome/installer/linux/BUILD.gn
+++ b/chrome/installer/linux/BUILD.gn
@@ -190,6 +190,12 @@ group("installer_deps") {
   if (!is_chromeos) {
     public_deps += [ ":rpm_packaging_files" ]
   }
+  libcpp_is_static = !is_component_build && !using_sanitizer
+  if (!libcpp_is_static && use_custom_libcxx) {
+    public_deps += [
+      "//buildtools/third_party/libc++:libc++",
+    ]
+  }
 }
 
 # Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
diff --git a/extensions/shell/installer/linux/BUILD.gn b/extensions/shell/installer/linux/BUILD.gn
index d537e7130eca..bd816aba9507 100644
--- a/extensions/shell/installer/linux/BUILD.gn
+++ b/extensions/shell/installer/linux/BUILD.gn
@@ -128,6 +128,12 @@ group("installer_deps") {
       "//ppapi/native_client:irt",
     ]
   }
+  libcpp_is_static = !is_component_build && !using_sanitizer
+  if (!libcpp_is_static && use_custom_libcxx) {
+    public_deps += [
+      "//buildtools/third_party/libc++:libc++",
+    ]
+  }
 }
 
 # Creates .deb installer package.

While there is a comment regarding libcpp_is_static being placed into a .gni file, I didn't do that since I don't expect this patch to be the final one anyway.

@thomasanderson: Is Ubuntu 12.04 not supported anymore?

I'm getting this now:

FAILED: gen/net/http/transport_security_state_static.h 
python ../../build/gn_run_binary.py transport_security_state_generator ../../net/http/transport_security_state_static.json ../../net/http/transport_security_state_static.pins ../../net/http/transport_security_state_static.template gen/net/http/transport_security_state_static.h
./transport_security_state_generator: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.18' not found (required by /home/tfarina/chromium/src/gn-ninja-out/local_linux-dbg/./libc++.so)

c#81:
Thanks!  You're on windows, right?  And what are your gn args?

c#82:
Nope, we dropped support for Ubuntu 12.04 some time last year
Correct, 12.04 is no longer supported and won't work.
Project Member

Comment 85 by bugdroid1@chromium.org, Jul 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/45583c7e7cbf700efd503ee2fb6a956740bb7b65

commit 45583c7e7cbf700efd503ee2fb6a956740bb7b65
Author: Tom Anderson <thomasanderson@chromium.org>
Date: Sat Jul 08 02:53:34 2017

Add dependency on libc++ from linux packaging build files

Patch thanks to kylixrd@chromium.org!

BUG= 593874 
R=thestig@chromium.org
TBR=rdevlin.cronin@chromium.org
CC=kylixrd@chromium.org

Change-Id: If554b0e1ed1d40386e7a639dc9b8869225500b51
Reviewed-on: https://chromium-review.googlesource.com/564284
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485135}
[modify] https://crrev.com/45583c7e7cbf700efd503ee2fb6a956740bb7b65/chrome/installer/linux/BUILD.gn
[modify] https://crrev.com/45583c7e7cbf700efd503ee2fb6a956740bb7b65/extensions/shell/installer/linux/BUILD.gn

c#83: looks like it was time to upgrade. I did yesterday to 14.04 and I'm able to build again.
Project Member

Comment 87 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b5161efc5688ca9a7d45524c672b4cda02ea56ea

commit b5161efc5688ca9a7d45524c672b4cda02ea56ea
Author: thomasanderson <thomasanderson@chromium.org>
Date: Thu Jul 13 02:31:57 2017

Move c++ configs from buildtools to build/config/c++ [src-side change]

This CL moves //buildtools/third_party/libc++:no_libstdcpp and part of
/buildtools/third_party/libc++:config into //build/config/c++/c++.
This has several advantages:
* Users can remove libc++ config if they want since it's added in
  BUILDCONFIG.gn
* Allows removal of libcxx_proxy
* libc++-specific configs are in buildtools and non-libc++ configs are
  in build/config
* Allows changing c++ flags without having to roll buildtools
* Removes a bit of duplicated build configuration

buildtools change:
https://codereview.chromium.org/2962423002

BUG= 593874 
R=thakis@chromium.org
TBR=dpranke@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_msan_rel_ng;master.tryserver.chromium.linux:linux_chromium_ubsan_rel_ng;master.tryserver.chromium.linux:linux_chromium_dbg_ng

Review-Url: https://codereview.chromium.org/2964243002
Cr-Commit-Position: refs/heads/master@{#486229}

[modify] https://crrev.com/b5161efc5688ca9a7d45524c672b4cda02ea56ea/DEPS
[modify] https://crrev.com/b5161efc5688ca9a7d45524c672b4cda02ea56ea/build/config/BUILD.gn
[modify] https://crrev.com/b5161efc5688ca9a7d45524c672b4cda02ea56ea/build/config/c++/BUILD.gn

Cc: kcc@chromium.org
 Issue 674310  has been merged into this issue.
Status: Fixed (was: Started)
This is done.
Labels: M-61
Project Member

Comment 92 by bugdroid1@chromium.org, Aug 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/buildtools/+/275b8c481615a168464800fc925364aa1a432d37

commit 275b8c481615a168464800fc925364aa1a432d37
Author: Scott Graham <scottmg@chromium.org>
Date: Tue Aug 01 18:45:27 2017

Only disable export of libunwind symbols when libcpp is static

src tryjob at https://chromium-review.googlesource.com/c/596668.

Bug:  750392 ,  593874 
Change-Id: I3becf1ff62db61a2f0c630516bad5fffefac7d2d

[modify] https://crrev.com/275b8c481615a168464800fc925364aa1a432d37/third_party/libunwind/BUILD.gn

Project Member

Comment 93 by bugdroid1@chromium.org, Aug 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/baca0c48578ca9509e5aa4bf94a1083f80106ca3

commit baca0c48578ca9509e5aa4bf94a1083f80106ca3
Author: Scott Graham <scottmg@chromium.org>
Date: Wed Aug 02 01:42:21 2017

fuchsia: roll buildtools to c950cb0

c950cb0 Only disable export of libunwind symbols when libcpp is static

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_arm

Bug:  750392 ,  593874 
Change-Id: I420202d5c83663da56654009350206784c7f6bc5
Reviewed-on: https://chromium-review.googlesource.com/596668
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491182}
[modify] https://crrev.com/baca0c48578ca9509e5aa4bf94a1083f80106ca3/DEPS

Blockedon: 717554
Project Member

Comment 95 by bugdroid1@chromium.org, Sep 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/571076ecb1419e97e8396ba82a174c095c08ba75

commit 571076ecb1419e97e8396ba82a174c095c08ba75
Author: Michael Achenbach <machenbach@chromium.org>
Date: Mon Sep 25 09:52:23 2017

[build] Port "Add patched eu-strip in third_party"

This ports:
https://chromium-review.googlesource.com/c/544798/

This is needed to unblock rolling build into v8 at:
https://chromium-review.googlesource.com/c/v8/v8/+/657634

Bug:  chromium:593874 ,  chromium:742655 
Change-Id: Ie00f2d13cfd052881a84b6e0cb95c336b7d2581c
Reviewed-on: https://chromium-review.googlesource.com/680815
Commit-Queue: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48134}
[modify] https://crrev.com/571076ecb1419e97e8396ba82a174c095c08ba75/.gitignore
[add] https://crrev.com/571076ecb1419e97e8396ba82a174c095c08ba75/third_party/eu-strip/README.v8
[add] https://crrev.com/571076ecb1419e97e8396ba82a174c095c08ba75/third_party/eu-strip/bin/eu-strip

Project Member

Comment 96 by bugdroid1@chromium.org, Oct 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/427454c842443a7880822fd9c4a475d566728f70

commit 427454c842443a7880822fd9c4a475d566728f70
Author: Misha Efimov <mef@chromium.org>
Date: Thu Oct 19 19:43:05 2017

Remove unused include crt_externs.h from sanitizer_options.cc

- Unused after https://codereview.chromium.org/2911513002
- Causing compilation error with use_asan=true on iOS.

Bug:  593874 
Change-Id: I448cdcc472faaa44fa914efe56219b2448ed0b71
Reviewed-on: https://chromium-review.googlesource.com/728395
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Misha Efimov <mef@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510163}
[modify] https://crrev.com/427454c842443a7880822fd9c4a475d566728f70/build/sanitizers/sanitizer_options.cc

Blocking: 752660
Blocking: 554717

Sign in to add a comment