[Bug 209722] multimedia/vlc multimedia/vlc-qt4: Problems building with libc++ 3.8.0
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon May 23 20:10:19 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209722
Bug ID: 209722
Summary: multimedia/vlc multimedia/vlc-qt4: Problems building
with libc++ 3.8.0
Product: Ports & Packages
Version: Latest
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: Individual Port(s)
Assignee: multimedia at FreeBSD.org
Reporter: dim at FreeBSD.org
Assignee: multimedia at FreeBSD.org
Flags: maintainer-feedback?(multimedia at FreeBSD.org)
During the exp-run in bug 208158, it was found that multimedia/vlc [1] and
multimedia/vlc-qt4 [2] give errors with libc++ 3.8.0:
In file included from meta_engine/taglib.cpp:53:
In file included from /usr/local/include/taglib/taglib.h:47:
In file included from /usr/include/c++/v1/string:439:
In file included from /usr/include/c++/v1/algorithm:628:
In file included from /usr/include/c++/v1/memory:616:
/usr/include/c++/v1/atomic:823:1: error: expected unqualified-id
kill_dependency(_Tp __y) _NOEXCEPT
^
../include/vlc_atomic.h:45:7: note: expanded from macro 'kill_dependency'
((void)0)
^
And many more such errors. These are caused by include/vlc_atomic.h, which
defines a whole bunch of atomic macros, conflicting with the ones in the C++
standard <atomic> header. Unfortunately there seems to be no easy workaround,
as vlc_atomic.h starts with:
29 # if !defined (__cplusplus) && (__STDC_VERSION__ >= 201112L) \
30 && !defined (__STDC_NO_ATOMICS__)
31
32 /*** Native C11 atomics ***/
33 # include <stdatomic.h>
34
35 # else
and in the following part the macros are defined. I attempted to use
<stdatomic.h> even for C++ mode, but it isn't compatible with C++. Also, we
cannot unconditionally include <atomic> for C++, since a few types are not
defined in there, e.g.:
../include/vlc_atomic.h:407:9: error: unknown type name
'atomic_uint_least32_t'; did you mean 'std::atomic_uint_least32_t'?
typedef atomic_uint_least32_t vlc_atomic_float;
^~~~~~~~~~~~~~~~~~~~~
std::atomic_uint_least32_t
Also, <atomic> is only available when using libc++, not when using the version
of libstdc++ in base.
I don't have any ready-made solution for this issue yet, but if anybody has
good suggestions, please post them here. :)
[1]
http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/vlc-2.2.1_8,4.log
[2]
http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_10h29m48s/logs/errors/vlc-qt4-2.2.1_8,4.log
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-ports-bugs
mailing list