Bug 218273 - [exp-run] Use llvm 4.0 for c++14-lang
Summary: [exp-run] Use llvm 4.0 for c++14-lang
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Ports Framework (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Baptiste Daroussin
URL: https://reviews.freebsd.org/D10228
Keywords:
Depends on:
Blocks: 224490 224591
  Show dependency treegraph
 
Reported: 2017-03-31 21:52 UTC by Baptiste Daroussin
Modified: 2018-01-27 14:02 UTC (History)
4 users (show)

See Also:


Attachments
remove noexcept annotation from scope_guard.h (544 bytes, patch)
2017-04-26 06:33 UTC, Franco Fichtner
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Baptiste Daroussin freebsd_committer 2017-03-31 21:52:42 UTC
Using llvm 4.0 would allow to nuke llvm3.6 from the ports tree
Comment 2 Dimitry Andric freebsd_committer 2017-04-24 20:52:13 UTC
This looks like a conflict between the definition of __cxa_get_globals() in libcxxrt and zen/scope_guard.h, whatever that is.

Both libcxxrt and libc++abi define this as just:

__cxa_eh_globals *__cxa_get_globals(void);

and don't specify any exception clause, while libstdc++ suffixes it with  _GLIBCXX_NOTHROW, which is defined differently depending on whether it is compiling for C, C++ < 11, or C++ >= 11.

In any case, user headers should not attempt to declare functions from cxxabi.h or other system headers themselves, so I consider this a bug in zen/scope_guard.h.  The conflicting declarations should be removed or commented out.
Comment 3 Franco Fichtner 2017-04-26 06:33:17 UTC
Created attachment 182092 [details]
remove noexcept annotation from scope_guard.h

This should do it.
Comment 4 Jan Beich freebsd_committer 2017-04-26 14:32:53 UTC
Comment on attachment 182092 [details]
remove noexcept annotation from scope_guard.h

Landed in ports r439440.
Comment 5 Kubilay Kocak freebsd_committer freebsd_triage 2017-07-05 11:50:41 UTC
Close per comment 4, assign to committer that resolved