[vlc-devel] [PATCH 3.0 20/41] contrib: qt: fixed FTBFS on glibc 2.28.
Steve Lhomme
robux4 at ycbcr.xyz
Tue Jul 7 15:11:19 CEST 2020
From: Konstantin Pavlov <thresh at videolan.org>
This is backported from the upstream 5.11.2 and can be dropped once we
bump Qt version.
(cherry picked from commit 19baedd08eb0015597ef43cb2d04d280998f5f15)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>
---
contrib/src/qt/fix-glibc-2.28-build.patch | 49 +++++++++++++++++++++++
contrib/src/qt/rules.mak | 1 +
2 files changed, 50 insertions(+)
create mode 100644 contrib/src/qt/fix-glibc-2.28-build.patch
diff --git a/contrib/src/qt/fix-glibc-2.28-build.patch b/contrib/src/qt/fix-glibc-2.28-build.patch
new file mode 100644
index 0000000000..2c0653d7f9
--- /dev/null
+++ b/contrib/src/qt/fix-glibc-2.28-build.patch
@@ -0,0 +1,49 @@
+Description: Fix qmake build with glibc 2.28
+ We haven't yet run the configure checks to see if statx and renameat2
+ are present in glibc, so this fails when we redefine the structures and
+ functions.
+Author: Thiago Macieira <thiago.macieira at intel.com>
+Origin: upstream
+Applied-Upstream: commit:25feee4
+Last-Update: 2018-08-25
+--- a/src/corelib/global/qconfig-bootstrapped.h
++++ b/src/corelib/global/qconfig-bootstrapped.h
+@@ -98,10 +98,18 @@
+ #define QT_NO_QOBJECT
+ #define QT_FEATURE_process -1
+ #define QT_FEATURE_regularexpression -1
+-#define QT_FEATURE_renameat2 -1
++#ifdef __GLIBC_PREREQ
++# define QT_FEATURE_renameat2 (__GLIBC_PREREQ(2, 28) ? 1 : -1)
++#else
++# define QT_FEATURE_renameat2 -1
++#endif
+ #define QT_FEATURE_sharedmemory -1
+ #define QT_FEATURE_slog2 -1
+-#define QT_FEATURE_statx -1
++#ifdef __GLIBC_PREREQ
++# define QT_FEATURE_statx (__GLIBC_PREREQ(2, 28) ? 1 : -1)
++#else
++# define QT_FEATURE_statx -1
++#endif
+ #define QT_FEATURE_syslog -1
+ #define QT_NO_SYSTEMLOCALE
+ #define QT_FEATURE_systemsemaphore -1
+--- a/src/corelib/io/qfilesystemengine_unix.cpp
++++ b/src/corelib/io/qfilesystemengine_unix.cpp
+@@ -91,7 +91,6 @@ extern "C" NSString *NSTemporaryDirector
+ # include <sys/syscall.h>
+ # include <sys/sendfile.h>
+ # include <linux/fs.h>
+-# include <linux/stat.h>
+
+ // in case linux/fs.h is too old and doesn't define it:
+ #ifndef FICLONE
+@@ -112,6 +111,7 @@ static int renameat2(int oldfd, const ch
+ # endif
+
+ # if !QT_CONFIG(statx) && defined(SYS_statx)
++# include <linux/stat.h>
+ static int statx(int dirfd, const char *pathname, int flag, unsigned mask, struct statx *statxbuf)
+ { return syscall(SYS_statx, dirfd, pathname, flag, mask, statxbuf); }
+ # elif !QT_CONFIG(statx) && !defined(SYS_statx)
diff --git a/contrib/src/qt/rules.mak b/contrib/src/qt/rules.mak
index ae0a366604..24b157bb3b 100644
--- a/contrib/src/qt/rules.mak
+++ b/contrib/src/qt/rules.mak
@@ -33,6 +33,7 @@ ifdef HAVE_WIN32
ifndef HAVE_WIN64
$(APPLY) $(SRC)/qt/0001-disable-qt_random_cpu.patch
endif
+ $(APPLY) $(SRC)/qt/fix-glibc-2.28-build.patch
ifndef HAVE_CROSS_COMPILE
cd qt-$(QT_VERSION_FULL); for i in QtFontDatabaseSupport QtWindowsUIAutomationSupport QtEventDispatcherSupport QtCore; do \
sed -i -e 's,"../../../../../src,"../src,g' include/$$i/$(QT_VERSION)/$$i/private/*.h; done
--
2.26.2
More information about the vlc-devel
mailing list