Date: Sat, 18 Feb 2017 08:20:45 +0000 (UTC) From: Thomas Zander <riggs@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r434332 - in head/multimedia/vlc: . files Message-ID: <201702180820.v1I8Kjtq086391@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: riggs Date: Sat Feb 18 08:20:45 2017 New Revision: 434332 URL: https://svnweb.freebsd.org/changeset/ports/434332 Log: Use c++11 by default, in preparation for Qt 5.7.1 update PR: 217051 Submitted by: rakuco Added: head/multimedia/vlc/files/patch-git_92ec47e (contents, props changed) head/multimedia/vlc/files/patch-git_d2571e6 (contents, props changed) Deleted: head/multimedia/vlc/files/patch-modules_gui_qt4_dialogs_messages.hpp Modified: head/multimedia/vlc/Makefile head/multimedia/vlc/files/patch-include_vlc__atomic.h Modified: head/multimedia/vlc/Makefile ============================================================================== --- head/multimedia/vlc/Makefile Sat Feb 18 08:00:14 2017 (r434331) +++ head/multimedia/vlc/Makefile Sat Feb 18 08:20:45 2017 (r434332) @@ -3,7 +3,7 @@ PORTNAME= vlc DISTVERSION= 2.2.4 -PORTREVISION= 7 +PORTREVISION= 8 PORTEPOCH= 4 CATEGORIES= multimedia audio ipv6 net www MASTER_SITES= http://download.videolan.org/pub/videolan/${PORTNAME}/${DISTVERSION:S/a$//}/ \ @@ -24,7 +24,13 @@ BUILD_DEPENDS= ffmpeg>=2.0:multimedia/ff yasm:devel/yasm RUN_DEPENDS= ffmpeg>=2.0:multimedia/ffmpeg -USES= compiler:c11 desktop-file-utils gmake iconv libtool pathfix \ +# VLC git (post 2.2.4) requires C++11 support and passes the appropriate flag +# to the compiler. Until the port is updated, we explicitly pass -std=c++11 to +# the compiler because Qt 5.7+ requires C++11 support, and FreeBSD 10.3's clang +# does not default to C++11 mode. +USE_CXXSTD= c++11 + +USES= compiler:c++11-lib desktop-file-utils gmake iconv libtool pathfix \ pkgconfig tar:xz USE_GNOME= libxml2 USE_LDCONFIG= yes Added: head/multimedia/vlc/files/patch-git_92ec47e ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/vlc/files/patch-git_92ec47e Sat Feb 18 08:20:45 2017 (r434332) @@ -0,0 +1,43 @@ +Partial import of upstream git-commit to fix build in c++11 mode + +From 92ec47e15b62ef12e15e6ce5550abe2620bc3167 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hugo=20Beauz=C3=A9e-Luyssen?= <hugo@beauzee.fr> +Date: Wed, 2 Jul 2014 14:17:19 +0000 +Subject: [PATCH] Fix build when using C++11 + +--- modules/access/live555.cpp.orig 2015-10-21 17:48:45 UTC ++++ modules/access/live555.cpp +@@ -307,7 +307,7 @@ static int Open ( vlc_object_t *p_this + p_demux->p_sys = p_sys = (demux_sys_t*)calloc( 1, sizeof( demux_sys_t ) ); + if( !p_sys ) return VLC_ENOMEM; + +- msg_Dbg( p_demux, "version "LIVEMEDIA_LIBRARY_VERSION_STRING ); ++ msg_Dbg( p_demux, "version " LIVEMEDIA_LIBRARY_VERSION_STRING ); + + TAB_INIT( p_sys->i_track, p_sys->track ); + p_sys->f_npt = 0.; +@@ -593,7 +593,7 @@ createnew: + + p_sys->rtsp = new RTSPClientVlc( *p_sys->env, psz_url, + var_InheritInteger( p_demux, "verbose" ) > 1 ? 1 : 0, +- "LibVLC/"VERSION, i_http_port, p_sys ); ++ "LibVLC/" VERSION, i_http_port, p_sys ); + if( !p_sys->rtsp ) + { + msg_Err( p_demux, "RTSPClient::createNew failed (%s)", + modules/access/live555.cpp | 4 ++-- + modules/demux/mp4/libmp4.h | 2 +- + modules/demux/vobsub.h | 8 +++---- + 10 files changed, 40 insertions(+), 40 deletions(-) + +--- modules/demux/mp4/libmp4.h.orig 2015-02-02 19:42:29 UTC ++++ modules/demux/mp4/libmp4.h +@@ -1360,7 +1360,7 @@ static inline size_t mp4_box_headersize( + if( i_actually_read < 0 || (int64_t)i_actually_read < i_read )\ + { \ + msg_Warn( p_stream, "MP4_READBOX_ENTER: I got %i bytes, "\ +- "but I requested %"PRId64"", i_actually_read, i_read );\ ++ "but I requested %" PRId64, i_actually_read, i_read );\ + free( p_buff ); \ + return( 0 ); \ + } \ Added: head/multimedia/vlc/files/patch-git_d2571e6 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/multimedia/vlc/files/patch-git_d2571e6 Sat Feb 18 08:20:45 2017 (r434332) @@ -0,0 +1,51 @@ +commit d2571e643edb0f1cb217805ef8d5ac172d59a864 +Author: RĂ©mi Denis-Courmont <remi@remlab.net> +Date: Fri Jun 26 00:06:44 2015 +0300 + + qt: use QAtomicInt + +diff --git a/modules/gui/qt4/dialogs/messages.cpp b/modules/gui/qt4/dialogs/messages.cpp +index 21c11107c7..d23007f036 100644 +--- modules/gui/qt4/dialogs/messages.cpp ++++ modules/gui/qt4/dialogs/messages.cpp +@@ -146,7 +146,7 @@ MessagesDialog::~MessagesDialog() + + void MessagesDialog::changeVerbosity( int i_verbosity ) + { +- atomic_store( &this->verbosity, i_verbosity ); ++ verbosity = i_verbosity; + } + + void MessagesDialog::updateConfig() +@@ -340,7 +340,7 @@ void MessagesDialog::MsgCallback( void *self, int type, const vlc_log_t *item, + { + MessagesDialog *dialog = (MessagesDialog *)self; + char *str; +- int verbosity = atomic_load( &dialog->verbosity ); ++ int verbosity = dialog->verbosity; + + if( verbosity < 0 || verbosity < (type - VLC_MSG_ERR) + || unlikely(vasprintf( &str, format, ap ) == -1) ) +diff --git a/modules/gui/qt4/dialogs/messages.hpp b/modules/gui/qt4/dialogs/messages.hpp +index a8d5804be2..0491a8f158 100644 +--- modules/gui/qt4/dialogs/messages.hpp ++++ modules/gui/qt4/dialogs/messages.hpp +@@ -28,8 +28,8 @@ + #include "util/singleton.hpp" + #include "ui/messages_panel.h" + #include <stdarg.h> +-#include <vlc_atomic.h> + #include <QMutex> ++#include <QAtomicInt> + + class QPushButton; + class QTreeWidget; +@@ -49,7 +49,7 @@ private: + void sinkMessage( const MsgEvent * ); + bool matchFilter( const QString& ); + +- atomic_uint verbosity; ++ QAtomicInt verbosity; + static void MsgCallback( void *, int, const vlc_log_t *, const char *, + va_list ); + Modified: head/multimedia/vlc/files/patch-include_vlc__atomic.h ============================================================================== --- head/multimedia/vlc/files/patch-include_vlc__atomic.h Sat Feb 18 08:00:14 2017 (r434331) +++ head/multimedia/vlc/files/patch-include_vlc__atomic.h Sat Feb 18 08:20:45 2017 (r434332) @@ -1,17 +1,103 @@ +Move vlc_atomic.h closer to the git version (post-2.2.4), especially revision +ab550d60dd8d8 ("include: stick to a single version (2011) C/C++ atomics") by +assuming C++ builds are being done in C++11 mode or later and include <atomic>. +For C usages, use <stdatomic.h> in C11 mode and define some shims otherwise. + +The original 2.2.4 version does not have C++11 support and breaks with Qt5, as +Qt 5.7+ requires C++11 support. --- include/vlc_atomic.h.orig 2014-08-14 07:20:03 UTC +++ include/vlc_atomic.h -@@ -32,6 +32,14 @@ +@@ -26,13 +26,13 @@ + * Atomic operations do not require locking, but they are not very powerful. + */ + +-# if !defined (__cplusplus) && (__STDC_VERSION__ >= 201112L) \ +- && !defined (__STDC_NO_ATOMICS__) ++# ifndef __cplusplus ++# if (__STDC_VERSION__ >= 201112L) && !defined (__STDC_NO_ATOMICS__) + /*** Native C11 atomics ***/ # include <stdatomic.h> -+# elif defined (__cplusplus) && defined(_LIBCPP_VERSION) && _LIBCPP_VERSION >= 3800 -+ -+# include <atomic> -+ -+using std::atomic_uint_least32_t; -+using std::atomic_uintptr_t; -+using std::atomic_int; -+ - # else +-# else ++# else # define ATOMIC_FLAG_INIT false + +@@ -57,7 +57,7 @@ + * unsigned equivalents, i.e. 4-bytes and 8-bytes types, although GCC also + * supports 1 and 2-bytes types. Some non-x86 architectures do not support + * 8-byte atomic types (or not efficiently). */ +-# if defined (_MSC_VER) ++# if defined (_MSC_VER) + /* Some atomic operations of the Interlocked API are only + available for desktop apps. Thus we define the atomic types to + be at least 32 bits wide. */ +@@ -68,7 +68,7 @@ + typedef uint_least32_t atomic_uchar; + typedef int_least32_t atomic_short; + typedef uint_least32_t atomic_ushort; +-# else ++# else + typedef bool atomic_flag; + typedef bool atomic_bool; + typedef char atomic_char; +@@ -76,7 +76,7 @@ + typedef unsigned char atomic_uchar; + typedef short atomic_short; + typedef unsigned short atomic_ushort; +-# endif ++# endif + typedef int atomic_int; + typedef unsigned int atomic_uint; + typedef long atomic_long; +@@ -109,7 +109,7 @@ + typedef intmax_t atomic_intmax_t; + typedef uintmax_t atomic_uintmax_t; + +-# if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) || (defined (__clang__) && (defined (__x86_64__) || defined (__i386__))) ++# if defined (__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) || (defined (__clang__) && (defined (__x86_64__) || defined (__i386__))) + + /*** Intel/GCC atomics ***/ + +@@ -203,7 +203,7 @@ + # define atomic_flag_clear_explicit(object,order) \ + atomic_flag_clear(object) + +-# elif defined (__GNUC__) ++# elif defined (__GNUC__) + + /*** No atomics ***/ + +@@ -315,7 +315,7 @@ + # define atomic_flag_clear_explicit(object,order) \ + atomic_flag_clear(object) + +-# elif defined (_MSC_VER) ++# elif defined (_MSC_VER) + + # include <windows.h> + +@@ -397,10 +397,8 @@ + # define atomic_flag_clear_explicit(object,order) \ + atomic_flag_clear(object) + +-# else +-# error FIXME: implement atomic operations for this compiler. +-# endif +-# endif ++# endif ++# endif + + typedef atomic_uint_least32_t vlc_atomic_float; + +@@ -427,4 +425,9 @@ + atomic_store(atom, u.i); + } + ++# else /* C++ */ ++/*** Native C++11 atomics ***/ ++# include <atomic> ++# endif ++ + #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702180820.v1I8Kjtq086391>