|
|
DescriptionRemove outdated __GLIBCXX_ checks in base::StackTrace for POSIX.
This fixes symbol name unmangling under Mac OS X, where we have switched
from building against libstdc++, which defines __GLIBCXX__, to libc++,
which does not. All we actually care about is that the C++ library
provides the abi::__cxa_demangle() API, which both libraries do.
BUG=598886, 596760
Review-Url: https://codereview.chromium.org/2651893002
Cr-Commit-Position: refs/heads/master@{#446398}
Committed: https://chromium.googlesource.com/chromium/src/+/bf51bcfadc991bbf00161d8a28fa7fdad74b8222
Patch Set 1 #
Messages
Total messages: 19 (12 generated)
The CQ bit was checked by wez@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Remove outdated __GLIBCXX_ checks. BUG= ========== to ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. Under Mac OS X we use the POSIX StackTrace implementation, and build it to use its own name de-mangler rather than the Symbolize library that we use under Linux. The StackTrace de-mangler was built conditional on __GLIBCXX__, to check for the necessary demangling support in the ABI, but recent Clang versions do not define __GLIBCXX__ any more. BUG=598886 ==========
wez@chromium.org changed reviewers: + esprehn@chromium.org
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
wez@chromium.org changed reviewers: + thakis@chromium.org - esprehn@chromium.org
Nico, do you know if there's any remaining reason for USE_SYMBOLIZE? Could we switch things to be purely conditional on the target platform (i.e. Linux (Symbolize) vs Mac OS vs Android (no demangling))?
> recent Clang versions do not define __GLIBCXX__ clang doesn't define __GLIBCXX__; that define identifies libstdc++ and is defined by its headers. It's not defined when libc++ is used instead, but that's independent of the compiler. libc++ also has a __cxa_demangle, but you're right that those are the only c++ libs we use on posix, so removing that check lgtm (with fixed CL description). (When statically linking libc++(abi), pulling in __cxa_demangle adds quite a bit of binary size, so we might want to consider something like https://codereview.chromium.org/1215673002 -- at the moment we don't link libc++ statically, but we will on linux eventually, and maybe on mac again.) USE_SYMBOLIZE is from https://codereview.chromium.org/545148/
Description was changed from ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. Under Mac OS X we use the POSIX StackTrace implementation, and build it to use its own name de-mangler rather than the Symbolize library that we use under Linux. The StackTrace de-mangler was built conditional on __GLIBCXX__, to check for the necessary demangling support in the ABI, but recent Clang versions do not define __GLIBCXX__ any more. BUG=598886 ========== to ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. This fixes symbol name unmangling under Mac OS X, where we have switched from building against libstdc++, which defines __GLIBCXX__, to libc++, which does not. All we actually care about is that the C++ library provides the abi::__cxa_demangle() API, which both libraries do. BUG=598886,596760 ==========
On 2017/01/25 15:51:27, Nico wrote: > > recent Clang versions do not define __GLIBCXX__ > > clang doesn't define __GLIBCXX__; that define identifies libstdc++ and is > defined by its headers. It's not defined when libc++ is used instead, but that's > independent of the compiler. libc++ also has a __cxa_demangle, but you're right > that those are the only c++ libs we use on posix, so removing that check lgtm > (with fixed CL description). > > (When statically linking libc++(abi), pulling in __cxa_demangle adds quite a bit > of binary size, so we might want to consider something like > https://codereview.chromium.org/1215673002 -- at the moment we don't link libc++ > statically, but we will on linux eventually, and maybe on mac again.) > > USE_SYMBOLIZE is from https://codereview.chromium.org/545148/ Thanks for the correction & context, Nico. I've update the description but tried to keep it brief & to the point re lib[std]c++ ABI API. :)
The CQ bit was checked by wez@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Thanks, new CL description looks great. I'd wrap it at 80ish cols though, those long lines always look a bit strange in `git log`
Description was changed from ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. This fixes symbol name unmangling under Mac OS X, where we have switched from building against libstdc++, which defines __GLIBCXX__, to libc++, which does not. All we actually care about is that the C++ library provides the abi::__cxa_demangle() API, which both libraries do. BUG=598886,596760 ========== to ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. This fixes symbol name unmangling under Mac OS X, where we have switched from building against libstdc++, which defines __GLIBCXX__, to libc++, which does not. All we actually care about is that the C++ library provides the abi::__cxa_demangle() API, which both libraries do. BUG=598886,596760 ==========
On 2017/01/26 17:58:37, Nico wrote: > Thanks, new CL description looks great. I'd wrap it at 80ish cols though, those > long lines always look a bit strange in `git log` Done; for some reason I thought CQ already did some wrapping, but I must have imagined it...
CQ is committing da patch. Bot data: {"patchset_id": 1, "attempt_start_ts": 1485453107185150, "parent_rev": "873a0b98cbf3a3e6aa5f2b0cc2f1138257fdf21b", "commit_rev": "bf51bcfadc991bbf00161d8a28fa7fdad74b8222"}
Message was sent while issue was closed.
Description was changed from ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. This fixes symbol name unmangling under Mac OS X, where we have switched from building against libstdc++, which defines __GLIBCXX__, to libc++, which does not. All we actually care about is that the C++ library provides the abi::__cxa_demangle() API, which both libraries do. BUG=598886,596760 ========== to ========== Remove outdated __GLIBCXX_ checks in base::StackTrace for POSIX. This fixes symbol name unmangling under Mac OS X, where we have switched from building against libstdc++, which defines __GLIBCXX__, to libc++, which does not. All we actually care about is that the C++ library provides the abi::__cxa_demangle() API, which both libraries do. BUG=598886,596760 Review-Url: https://codereview.chromium.org/2651893002 Cr-Commit-Position: refs/heads/master@{#446398} Committed: https://chromium.googlesource.com/chromium/src/+/bf51bcfadc991bbf00161d8a28fa... ==========
Message was sent while issue was closed.
Committed patchset #1 (id:1) as https://chromium.googlesource.com/chromium/src/+/bf51bcfadc991bbf00161d8a28fa... |