Bug 218273

Summary: [exp-run] Use llvm 4.0 for c++14-lang
Product: Ports & Packages Reporter: Baptiste Daroussin <bapt>
Component: Ports FrameworkAssignee: Baptiste Daroussin <bapt>
Status: Closed FIXED    
Severity: Affects Only Me CC: dim, franco, portmgr, ports-bugs
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://reviews.freebsd.org/D10228
Bug Depends on:    
Bug Blocks: 224490, 224591    
Description Flags
remove noexcept annotation from scope_guard.h none

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