Summary: | multimedia/vlc multimedia/vlc-qt4: Problems building with libc++ 3.8.0 | ||||||
---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Dimitry Andric <dim> | ||||
Component: | Individual Port(s) | Assignee: | Thomas Zander <riggs> | ||||
Status: | Closed FIXED | ||||||
Severity: | Affects Some People | CC: | allanjude, riggs | ||||
Priority: | --- | Flags: | riggs:
maintainer-feedback+
|
||||
Version: | Latest | ||||||
Hardware: | Any | ||||||
OS: | Any | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 208158 | ||||||
Attachments: |
|
Description
Dimitry Andric
2016-05-23 20:10:18 UTC
Created attachment 170584 [details]
Work around atomic redeclarations in vlc
Here is a first proposed patch, which is not very elegant, but it works for me in the following scenarios:
- Using clang on head with the old libc++ (approximately 3.7.0)
- Using clang on head with the new libc++ 3.8.0
- Using ports gcc on head with its copy of libstdc++
patch-include_vlc__atomic.h defines a special case for when libc++ 3.8.0 is used: then it includes <atomic>, and specifies a few atomic_xxx types (there were just three needed to make everything compile successfully).
patch-include_vlc__playlist.h and patch-include_vlc__sout.h move including of system and vlc headers to _before_ any 'extern "C" {' statement. Otherwise inclusion of C++ headers within those system or vlc headers will basically explode with zillions of errors.
patch-modules_gui_qt4_dialogs_messages.hpp fixes an inconsistency in the qt4 dialog messages class, where it tried to atomic_store an int into an unsigned int.
Note that the failure to build VLC is causing there to be no KDE4 meta package. A commit references this bug: Author: riggs Date: Wed Jun 1 06:17:52 UTC 2016 New revision: 416225 URL: https://svnweb.freebsd.org/changeset/ports/416225 Log: Fix build with libc++ 3.8.0 VLC brings its own header for atomic operations which defines a whole bunch of atomic macros, conflicting with the ones in the C++ standard <atomic> header. This changeset works around those. PR: 209722 Submitted by: dim Changes: head/multimedia/vlc/files/patch-include_vlc__atomic.h head/multimedia/vlc/files/patch-include_vlc__playlist.h head/multimedia/vlc/files/patch-include_vlc__sout.h head/multimedia/vlc/files/patch-modules_gui_qt4_dialogs_messages.hpp A commit references this bug: Author: riggs Date: Sat Jun 11 16:22:02 UTC 2016 New revision: 416726 URL: https://svnweb.freebsd.org/changeset/ports/416726 Log: MFH: r415944 r416225 r416711 Update to upstream version 2.2.3 Differential Revision: https://reviews.freebsd.org/D6373 Fix build with libc++ 3.8.0 VLC brings its own header for atomic operations which defines a whole bunch of atomic macros, conflicting with the ones in the C++ standard <atomic> header. This changeset works around those. PR: 209722 Submitted by: dim Update to upstream release 2.2.4, fix remote attack CVE-2016-5108 Detailed changelog (BSD relevant excerpts): Decoder: * Fix crash in G.711 wav files * Fix mp3 crash in libmad * Fix out-of-bound write in adpcm QT IMA codec (CVE-2016-5108) Qt: * Fix resizing issues Translations: * Update of Bulgarian, Catalan, German, French, Italian, Marathi, Norwegian Bokm?l, Norwegian Nynorsk, Portuguese, Slovak, Spanish (Mexico), Swedish, Simplified Chinese, and Traditional Chinese translations Security: CVE-2016-5108 Approved by: ports-secteam (junovitch) Changes: _U branches/2016Q2/ branches/2016Q2/multimedia/vlc/Makefile branches/2016Q2/multimedia/vlc/distinfo branches/2016Q2/multimedia/vlc/files/patch-configure branches/2016Q2/multimedia/vlc/files/patch-include_vlc__atomic.h branches/2016Q2/multimedia/vlc/files/patch-include_vlc__playlist.h branches/2016Q2/multimedia/vlc/files/patch-include_vlc__sout.h branches/2016Q2/multimedia/vlc/files/patch-modules_gui_qt4_dialogs_messages.hpp branches/2016Q2/multimedia/vlc/files/patch-share-lua-intf-cli.lua branches/2016Q2/multimedia/vlc/files/patch-vendor-00-ce91452 branches/2016Q2/multimedia/vlc/pkg-descr branches/2016Q2/multimedia/vlc/pkg-plist |