Date: Mon, 23 May 2016 20:10:18 +0000 From: bugzilla-noreply@freebsd.org To: multimedia@FreeBSD.org Subject: maintainer-feedback requested: [Bug 209722] multimedia/vlc multimedia/vlc-qt4: Problems building with libc++ 3.8.0 Message-ID: <bug-209722-12827-I2UKDnKNND@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-209722-12827@https.bugs.freebsd.org/bugzilla/> References: <bug-209722-12827@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
Dimitry Andric <dim@FreeBSD.org> has reassigned Bugzilla Automation <bugzilla@FreeBSD.org>'s request for maintainer-feedback to multimedia@FreeBSD.org: Bug 209722: multimedia/vlc multimedia/vlc-qt4: Problems building with libc++ 3.8.0 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D209722 --- Description --- 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 workarou= nd, as vlc_atomic.h starts with: 29 # if !defined (__cplusplus) && (__STDC_VERSION__ >=3D 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 vers= ion 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_= 10h2 9m48s/logs/errors/vlc-2.2.1_8,4.log [2] http://package18.nyi.freebsd.org/data/headamd64PR208158-default/2016-05-01_= 10h2 9m48s/logs/errors/vlc-qt4-2.2.1_8,4.log
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-209722-12827-I2UKDnKNND>