FreeBSD Bugzilla – Attachment 179920 Details for
Bug 217051
[PATCH] multimedia/vlc: Build in C++11 mode by default
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed patch
vlc-cxx11.diff (text/plain), 10.19 KB, created by
Raphael Kubo da Costa
on 2017-02-12 21:47:57 UTC
(
hide
)
Description:
Proposed patch
Filename:
MIME Type:
Creator:
Raphael Kubo da Costa
Created:
2017-02-12 21:47:57 UTC
Size:
10.19 KB
patch
obsolete
>Index: Makefile >=================================================================== >--- Makefile (revision 433821) >+++ Makefile (working copy) >@@ -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,6 +24,12 @@ > yasm:devel/yasm > RUN_DEPENDS= ffmpeg>=2.0:multimedia/ffmpeg > >+# 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:c11 desktop-file-utils gmake iconv libtool pathfix \ > pkgconfig tar:xz > USE_GNOME= libxml2 >Index: files/patch-git_92ec47e >=================================================================== >--- files/patch-git_92ec47e (nonexistent) >+++ files/patch-git_92ec47e (working copy) >@@ -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 ); \ >+ } \ > >Property changes on: files/patch-git_92ec47e >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/patch-git_d2571e6 >=================================================================== >--- files/patch-git_d2571e6 (nonexistent) >+++ files/patch-git_d2571e6 (working copy) >@@ -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 ); >+ > >Property changes on: files/patch-git_d2571e6 >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: files/patch-include_vlc__atomic.h >=================================================================== >--- files/patch-include_vlc__atomic.h (revision 433944) >+++ files/patch-include_vlc__atomic.h (working copy) >@@ -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 >-+ >+-# 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 > + >-+using std::atomic_uint_least32_t; >-+using std::atomic_uintptr_t; >-+using std::atomic_int; >-+ >- # else >- >- # define ATOMIC_FLAG_INIT false >+ #endif >Index: files/patch-modules_gui_qt4_dialogs_messages.hpp >=================================================================== >--- files/patch-modules_gui_qt4_dialogs_messages.hpp (revision 433944) >+++ files/patch-modules_gui_qt4_dialogs_messages.hpp (nonexistent) >@@ -1,11 +0,0 @@ >---- modules/gui/qt4/dialogs/messages.hpp.orig 2014-08-14 07:20:04 UTC >-+++ modules/gui/qt4/dialogs/messages.hpp >-@@ -55,7 +55,7 @@ private: >- void sinkMessage( const MsgEvent * ); >- bool matchFilter( const QString& ); >- >-- atomic_uint verbosity; >-+ atomic_int verbosity; >- static void MsgCallback( void *, int, const vlc_log_t *, const char *, >- va_list ); >- > >Property changes on: files/patch-modules_gui_qt4_dialogs_messages.hpp >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
rakuco
:
maintainer-approval?
(
multimedia
)
Actions:
View
|
Diff
Attachments on
bug 217051
: 179920