Date: Thursday, May 21, 2015 @ 18:35:17 Author: foutrelis Revision: 239618
upgpkg: qt5 5.4.1-9 Pull two more upstream patches to ensure -fPIC is used when building Qt5 apps. Added: qt5/trunk/0001-Make-qglobal.h-complain-if-you-use-fPIE.patch qt5/trunk/0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch Modified: qt5/trunk/PKGBUILD ------------------------------------------------------------+ 0001-Make-qglobal.h-complain-if-you-use-fPIE.patch | 44 +++++++++++ 0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch | 34 ++++++++ PKGBUILD | 8 +- 3 files changed, 85 insertions(+), 1 deletion(-) Added: 0001-Make-qglobal.h-complain-if-you-use-fPIE.patch =================================================================== --- 0001-Make-qglobal.h-complain-if-you-use-fPIE.patch (rev 0) +++ 0001-Make-qglobal.h-complain-if-you-use-fPIE.patch 2015-05-21 16:35:17 UTC (rev 239618) @@ -0,0 +1,44 @@ +From 3eca75de67b3fd2c890715b30c7899cebc096fe9 Mon Sep 17 00:00:00 2001 +From: Thiago Macieira <[email protected]> +Date: Mon, 11 May 2015 18:30:00 +0900 +Subject: [PATCH] Make qglobal.h complain if you use -fPIE + +Prior to Qt 5.4.2 (commit 36d6eb721e7d5997ade75e289d4088dc48678d0d), we +allowed it, but now we need to enforce that it is not used. Note that +-fPIE does define __PIC__, so we need this to catch the use of -fPIE. + +[ChangeLog][Important Behavior Changes] On x86 and x86-64 systems with +ELF binaries (especially Linux), due to a new optimization in GCC 5.x in +combination with a recent version of GNU binutils, compiling Qt +applications with -fPIE is no longer enough. Applications now need to be +compiled with the -fPIC option if Qt's option "reduce relocations" is +active. Note that Clang is known to generate incompatible code even with +-fPIC if the -flto option is active. + +Task-number: QTBUG-45755 +Change-Id: I66a35ce5f88941f29aa6ffff13dd210e0aa2728f +Reviewed-by: Dmitry Shachnev <[email protected]> +Reviewed-by: Simon Hausmann <[email protected]> +--- + src/corelib/global/qglobal.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h +index ef84662..4547877 100644 +--- a/src/corelib/global/qglobal.h ++++ b/src/corelib/global/qglobal.h +@@ -1047,9 +1047,9 @@ Q_CORE_EXPORT int qrand(); + # define QT_NO_SHAREDMEMORY + #endif + +-#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && !defined(__PIC__) ++#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && (!defined(__PIC__) || defined(__PIE__)) + # error "You must build your code with position independent code if Qt was built with -reduce-relocations. "\ +- "Compile your code with -fPIC." ++ "Compile your code with -fPIC (-fPIE is not enough)." + #endif + + namespace QtPrivate { +-- +2.4.0 + Added: 0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch =================================================================== --- 0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch (rev 0) +++ 0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch 2015-05-21 16:35:17 UTC (rev 239618) @@ -0,0 +1,34 @@ +From 083c9269ed73e8771e1dbe10812696b45b7389f3 Mon Sep 17 00:00:00 2001 +From: Evangelos Foutras <[email protected]> +Date: Mon, 11 May 2015 12:20:57 +0300 +Subject: [PATCH] Try to ensure that -fPIC is used in CMake builds + +In commit 36d6eb721e7d5997ade75e289d4088dc48678d0d the -fPIE switch was +replaced with -fPIC in an effort to avoid generating copy relocations +which are incompatible with Qt5 when built with -reduce-relocations. + +Task-number: QTBUG-45755 +Change-Id: I59a55ea15052f498104848c5fd867e563ddc2290 +Reviewed-by: Thiago Macieira <[email protected]> +--- + src/corelib/Qt5CoreConfigExtras.cmake.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in +index 48d5f21..d4abc5f 100644 +--- a/src/corelib/Qt5CoreConfigExtras.cmake.in ++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in +@@ -70,8 +70,9 @@ set(_qt5_corelib_extra_includes) + # Qt5_POSITION_INDEPENDENT_CODE variable is used in the # qt5_use_module + # macro to add it. + set(Qt5_POSITION_INDEPENDENT_CODE True) +-set_property(TARGET Qt5::Core PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") + set(Qt5Core_EXECUTABLE_COMPILE_FLAGS \"-fPIC\") ++set_property(TARGET Qt5::Core PROPERTY INTERFACE_POSITION_INDEPENDENT_CODE \"ON\") ++set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_COMPILE_OPTIONS ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}) + !!ENDIF + + !!IF !isEmpty(QT_NAMESPACE) +-- +2.4.0 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2015-05-21 14:40:32 UTC (rev 239617) +++ PKGBUILD 2015-05-21 16:35:17 UTC (rev 239618) @@ -28,7 +28,7 @@ 'qt5-x11extras' 'qt5-xmlpatterns') pkgver=5.4.1 -pkgrel=8 +pkgrel=9 arch=('i686' 'x86_64') url='http://qt-project.org/' license=('GPL3' 'LGPL' 'FDL' 'custom') @@ -44,6 +44,8 @@ source=("http://download.qt-project.org/official_releases/qt/${pkgver%.*}/${pkgver}/single/${_pkgfqn}.tar.xz" '0001-Revert-Rotate-images-according-to-Exif-orientation.patch' '0001-Require-fPIC-instead-of-just-fPIE-for-reduce-relocat.patch' + '0001-Make-qglobal.h-complain-if-you-use-fPIE.patch' + '0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch' 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qdbusviewer.desktop' 'glib-2.43.patch' 'qlockfile-deadlock.patch' 'qnam-corruption.patch' 'keypad-shortcuts.patch' 'CVE-2015-0295.patch' 'CVE-2015-1858_1859.patch' 'CVE-2015-1860.patch') @@ -50,6 +52,8 @@ md5sums=('7afb5f9235d8d42b5b6e832442a32a5d' 'fb1459f325a15b15b18afeac51173a1d' 'ac8fa252868161c676d876b614e24436' + '913a5931d33110b8e698bc9ce733075e' + 'fb18ddd022422cd42721d6fb2a994e6a' 'b2897dd6a2967bccf8f10e397aafee55' '76e150b20178d2d43801f7367232e5f7' '188da8f4c87316e730ebf1c6217bf5a0' @@ -70,6 +74,8 @@ # https://bugreports.qt.io/browse/QTBUG-45755 (cd qtbase; patch -p1 -i "$srcdir/0001-Require-fPIC-instead-of-just-fPIE-for-reduce-relocat.patch") + (cd qtbase; patch -p1 -i "$srcdir/0001-Make-qglobal.h-complain-if-you-use-fPIE.patch") + (cd qtbase; patch -p1 -i "$srcdir/0001-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch") # for glib 2.43+ https://bugreports.qt.io/browse/QTBUG-44714 (cd qtwebkit; patch -p1 -i "$srcdir/glib-2.43.patch")
