Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2016 20:10:18 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 209722] multimedia/vlc multimedia/vlc-qt4: Problems building with libc++ 3.8.0
Message-ID:  <bug-209722-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D209722

            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@FreeBSD.org
          Reporter: dim@FreeBSD.org
          Assignee: multimedia@FreeBSD.org
             Flags: maintainer-feedback?(multimedia@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 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_=
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

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-209722-13>