qt: fix gcc6 build
+ Fix alsa-lib detection which was broken since 1.1.x + Various patches to fix errors when trying to build webkit with gcc6 + Disable webkit for gcc6 because it currently won't compile
This commit is contained in:
parent
3c69381a18
commit
5704e3c0c5
6 changed files with 136 additions and 14 deletions
13
srcpkgs/qt/patches/fix-alsatest.patch
Normal file
13
srcpkgs/qt/patches/fix-alsatest.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
Currently alsa-lib is at 1.1.2, thus accept SND_LIB_MINOR > 0 anyway.
|
||||
|
||||
--- a/config.tests/unix/alsa/alsatest.cpp 2015-05-07 16:14:42.000000000 +0200
|
||||
+++ b/config.tests/unix/alsa/alsatest.cpp 2016-09-11 22:51:18.647973737 +0200
|
||||
@@ -40,7 +40,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include <alsa/asoundlib.h>
|
||||
-#if(!(SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 10))
|
||||
+#if(!(SND_LIB_MAJOR == 1 && (SND_LIB_MINOR > 0 || (SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 10))))
|
||||
#error "Alsa version found too old, require >= 1.0.10"
|
||||
#endif
|
||||
|
22
srcpkgs/qt/patches/fix-bytecompiler_narrowing.patch
Normal file
22
srcpkgs/qt/patches/fix-bytecompiler_narrowing.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
Fix gcc6 -Wnarrowing errors by casting to uint32_t
|
||||
|
||||
--- a/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h 2015-05-07 16:14:47.000000000 +0200
|
||||
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/bytecompiler/BytecodeGenerator.h 2016-09-11 22:26:00.614829051 +0200
|
||||
@@ -176,7 +176,7 @@
|
||||
// Node::emitCode assumes that dst, if provided, is either a local or a referenced temporary.
|
||||
ASSERT(!dst || dst == ignoredResult() || !dst->isTemporary() || dst->refCount());
|
||||
if (!m_codeBlock->numberOfLineInfos() || m_codeBlock->lastLineInfo().lineNumber != n->lineNo()) {
|
||||
- LineInfo info = { instructions().size(), n->lineNo() };
|
||||
+ LineInfo info = { (uint32_t)instructions().size(), n->lineNo() };
|
||||
m_codeBlock->addLineInfo(info);
|
||||
}
|
||||
if (m_emitNodeDepth >= s_maxEmitNodeDepth)
|
||||
@@ -195,7 +195,7 @@
|
||||
void emitNodeInConditionContext(ExpressionNode* n, Label* trueTarget, Label* falseTarget, bool fallThroughMeansTrue)
|
||||
{
|
||||
if (!m_codeBlock->numberOfLineInfos() || m_codeBlock->lastLineInfo().lineNumber != n->lineNo()) {
|
||||
- LineInfo info = { instructions().size(), n->lineNo() };
|
||||
+ LineInfo info = { (uint32_t)instructions().size(), n->lineNo() };
|
||||
m_codeBlock->addLineInfo(info);
|
||||
}
|
||||
if (m_emitNodeDepth >= s_maxEmitNodeDepth)
|
14
srcpkgs/qt/patches/fix-itemviews.patch
Normal file
14
srcpkgs/qt/patches/fix-itemviews.patch
Normal file
|
@ -0,0 +1,14 @@
|
|||
This & seems wrong, but the static_cast to QItemSelectionModel::SelectionFlags
|
||||
is required anyway to make gcc6 happy.
|
||||
|
||||
--- a/src/plugins/accessible/widgets/itemviews.cpp 2015-05-07 16:14:48.000000000 +0200
|
||||
+++ b/src/plugins/accessible/widgets/itemviews.cpp 2016-09-11 23:17:33.960195447 +0200
|
||||
@@ -393,7 +393,7 @@
|
||||
QModelIndex index = view()->model()->index(0, column, view()->rootIndex());
|
||||
if (!index.isValid() || view()->selectionMode() & QAbstractItemView::NoSelection)
|
||||
return false;
|
||||
- view()->selectionModel()->select(index, QItemSelectionModel::Columns & QItemSelectionModel::Deselect);
|
||||
+ view()->selectionModel()->select(index, static_cast<QItemSelectionModel::SelectionFlags>(QItemSelectionModel::Columns & QItemSelectionModel::Deselect));
|
||||
return true;
|
||||
}
|
||||
|
13
srcpkgs/qt/patches/fix-qcoloroutput_p_h.patch
Normal file
13
srcpkgs/qt/patches/fix-qcoloroutput_p_h.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
--- a/src/xmlpatterns/api/qcoloroutput_p.h 2015-05-07 16:14:48.000000000 +0200
|
||||
+++ b/src/xmlpatterns/api/qcoloroutput_p.h 2016-09-11 22:21:15.868628553 +0200
|
||||
@@ -70,8 +70,8 @@
|
||||
ForegroundShift = 10,
|
||||
BackgroundShift = 20,
|
||||
SpecialShift = 20,
|
||||
- ForegroundMask = ((1 << ForegroundShift) - 1) << ForegroundShift,
|
||||
- BackgroundMask = ((1 << BackgroundShift) - 1) << BackgroundShift
|
||||
+ ForegroundMask = ((1 << ForegroundShift) - 1),
|
||||
+ BackgroundMask = ((1 << BackgroundShift) - 1)
|
||||
};
|
||||
|
||||
public:
|
25
srcpkgs/qt/patches/fix-wtf_typetraits.patch
Normal file
25
srcpkgs/qt/patches/fix-wtf_typetraits.patch
Normal file
|
@ -0,0 +1,25 @@
|
|||
Fix type_traits for newer compilers (both, gcc-4.9.4 and gcc-6.2.0)
|
||||
There is no std::tr1::has_trivial_constructor etc. anymore.
|
||||
|
||||
--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h 2016-09-12 01:09:46.592885353 +0200
|
||||
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h 2016-09-12 01:20:07.594161571 +0200
|
||||
@@ -166,7 +166,7 @@
|
||||
typedef T Type;
|
||||
};
|
||||
|
||||
-#if (defined(__GLIBCXX__) && (__GLIBCXX__ >= 20070724) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && (_MSC_VER >= 1600))
|
||||
+#if (defined(__GLIBCXX__) && (__GLIBCXX__ >= 20070724) && (__GLIBCXX__ < 20160726) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && (_MSC_VER >= 1600))
|
||||
|
||||
// GCC's libstdc++ 20070724 and later supports C++ TR1 type_traits in the std namespace.
|
||||
// VC10 (VS2010) and later support C++ TR1 type_traits in the std::tr1 namespace.
|
||||
--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/TypeTraits.h 2015-05-07 16:14:45.000000000 +0200
|
||||
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/TypeTraits.h 2016-09-12 01:36:22.347445737 +0200
|
||||
@@ -179,7 +179,7 @@
|
||||
typedef T Type;
|
||||
};
|
||||
|
||||
-#if (defined(__GLIBCXX__) && (__GLIBCXX__ >= 20070724) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && (_MSC_VER >= 1600))
|
||||
+#if (defined(__GLIBCXX__) && (__GLIBCXX__ >= 20070724) && (__GLIBCXX__ < 20160726) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || (defined(_MSC_VER) && (_MSC_VER >= 1600))
|
||||
|
||||
// GCC's libstdc++ 20070724 and later supports C++ TR1 type_traits in the std namespace.
|
||||
// VC10 (VS2010) and later support C++ TR1 type_traits in the std::tr1 namespace.
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'qt'
|
||||
pkgname=qt
|
||||
version=4.8.7
|
||||
revision=10
|
||||
revision=11
|
||||
_distname=qt-everywhere-opensource-src
|
||||
patch_args="-Np1"
|
||||
wrksrc=${_distname}-${version}
|
||||
|
@ -24,8 +24,10 @@ makedepends="
|
|||
depends="qtchooser hicolor-icon-theme icu-libs"
|
||||
replaces="qt-qtconfig>=0"
|
||||
|
||||
CXXFLAGS="-std=gnu++98 -Wno-deprecated"
|
||||
|
||||
do_configure() {
|
||||
local _libdir
|
||||
local _libdir _opts _gccver
|
||||
|
||||
export LD_LIBRARY_PATH="${wrksrc}/lib:${LD_LIBRARY_PATH}"
|
||||
export LD="$CXX"
|
||||
|
@ -36,23 +38,56 @@ do_configure() {
|
|||
_libdir=lib
|
||||
fi
|
||||
|
||||
_gccver=$(gcc --version|awk '/^gcc / { print $3 }')
|
||||
if [ "${_gccver%%.*}" -gt 5 ]; then
|
||||
# Enable gcc6 for building webkit (which doesn't build, though)
|
||||
sed -i configure \
|
||||
-e"s;5\*|4\*|3.4\*);6*|&;"
|
||||
fi
|
||||
|
||||
# qmake CFLAGS/LDFLAGS
|
||||
sed -i -e '/outpath\/qmake\".*\"\$MAKE\")/s/)/ QMAKE_CFLAGS="$CFLAGS" QMAKE_CXXFLAGS="$CXXFLAGS" QMAKE_LFLAGS="$LDFLAGS" )/' \
|
||||
-e 's/\(setBootstrapVariable\s\+\|EXTRA_C\(XX\)\?FLAGS=.*\)QMAKE_C\(XX\)\?FLAGS_\(DEBUG\|RELEASE\).*/:/' \
|
||||
configure
|
||||
|
||||
QMAKE_CFLAGS="${CFLAGS}" \
|
||||
QMAKE_CXXFLAGS="${CXXFLAGS}" \
|
||||
QMAKE_LFLAGS="${LDFLAGS}" \
|
||||
./configure -confirm-license -opensource \
|
||||
-prefix /usr -sysconfdir /etc -docdir /usr/share/doc/qt \
|
||||
-plugindir /usr/${_libdir}/qt/plugins -importdir /usr/lib/qt/imports \
|
||||
-translationdir /usr/share/qt/translations \
|
||||
-datadir /usr/share/qt -bindir /usr/lib/qt/bin \
|
||||
-nomake demos -nomake examples -gtkstyle \
|
||||
-system-sqlite -no-phonon -no-phonon-backend \
|
||||
-graphicssystem raster -openssl-linked -silent -no-pch -no-rpath \
|
||||
-optimized-qmake -reduce-relocations -dbus-linked -no-openvg
|
||||
_opts="-confirm-license"
|
||||
_opts+=" -opensource"
|
||||
_opts+=" -prefix /usr"
|
||||
_opts+=" -sysconfdir /etc"
|
||||
_opts+=" -bindir /usr/lib/qt/bin"
|
||||
_opts+=" -datadir /usr/share/qt"
|
||||
_opts+=" -docdir /usr/share/doc/qt"
|
||||
_opts+=" -plugindir /usr/${_libdir}/qt/plugins"
|
||||
_opts+=" -importdir /usr/lib/qt/imports"
|
||||
_opts+=" -translationdir /usr/share/qt/translations"
|
||||
_opts+=" -nomake demos"
|
||||
_opts+=" -nomake examples"
|
||||
_opts+=" -graphicssystem raster"
|
||||
_opts+=" -openssl-linked"
|
||||
_opts+=" -xmlpatterns"
|
||||
if [ "${_gccver%%.*}" -gt 5 ]; then
|
||||
# webkit is broken with gcc-6.2.0
|
||||
_opts+=" -no-webkit"
|
||||
else
|
||||
_opts+=" -webkit"
|
||||
fi
|
||||
_opts+=" -gtkstyle"
|
||||
_opts+=" -system-sqlite"
|
||||
_opts+=" -no-openvg"
|
||||
_opts+=" -no-phonon"
|
||||
_opts+=" -no-phonon-backend"
|
||||
_opts+=" -no-pch"
|
||||
_opts+=" -no-rpath"
|
||||
_opts+=" -optimized-qmake"
|
||||
_opts+=" -reduce-relocations"
|
||||
_opts+=" -dbus-linked"
|
||||
_opts+=" -v"
|
||||
|
||||
echo "./configure ${_opts}"
|
||||
export QMAKE_CFLAGS="${CFLAGS}"
|
||||
export QMAKE_CXXFLAGS="${CXXFLAGS}"
|
||||
export QMAKE_LFLAGS="${LDFLAGS}"
|
||||
./configure ${_opts}
|
||||
}
|
||||
do_build() {
|
||||
export LD_LIBRARY_PATH="${wrksrc}/lib:${LD_LIBRARY_PATH}"
|
||||
|
|
Loading…
Reference in a new issue