Try to ensure that -fPIC is used in CMake builds (QTBUG-45755)
This commit is contained in:
parent
656fd93b8c
commit
30b6c96916
45
0260-Make-qglobal.h-complain-if-you-use-fPIE.patch
Normal file
45
0260-Make-qglobal.h-complain-if-you-use-fPIE.patch
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
From 3eca75de67b3fd2c890715b30c7899cebc096fe9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thiago Macieira <thiago.macieira@intel.com>
|
||||||
|
Date: Mon, 11 May 2015 18:30:00 +0900
|
||||||
|
Subject: [PATCH 260/262] 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 <mitya57@gmail.com>
|
||||||
|
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
||||||
|
---
|
||||||
|
dist/changes-5.4.2 | 7 +++++++
|
||||||
|
src/corelib/global/qglobal.h | 4 ++--
|
||||||
|
2 files changed, 9 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.1
|
||||||
|
|
34
0262-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch
Normal file
34
0262-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
From 083c9269ed73e8771e1dbe10812696b45b7389f3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Evangelos Foutras <evangelos@foutrelis.com>
|
||||||
|
Date: Mon, 11 May 2015 12:20:57 +0300
|
||||||
|
Subject: [PATCH 262/262] 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 <thiago.macieira@intel.com>
|
||||||
|
---
|
||||||
|
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})
|
||||||
|
|
||||||
|
!!IF !isEmpty(QT_NAMESPACE)
|
||||||
|
list(APPEND Qt5Core_DEFINITIONS -DQT_NAMESPACE=$$QT_NAMESPACE)
|
||||||
|
--
|
||||||
|
2.4.1
|
||||||
|
|
@ -37,7 +37,7 @@
|
|||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Version: 5.4.1
|
Version: 5.4.1
|
||||||
Release: 16%{?dist}
|
Release: 17%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -112,6 +112,9 @@ Patch336: 0136-Make-sure-there-s-a-scene-before-using-it.patch
|
|||||||
Patch440: 0240-QLockFile-fix-deadlock-when-the-lock-file-is-corrupt.patch
|
Patch440: 0240-QLockFile-fix-deadlock-when-the-lock-file-is-corrupt.patch
|
||||||
Patch448: 0248-QNAM-Fix-upload-corruptions-when-server-closes-conne.patch
|
Patch448: 0248-QNAM-Fix-upload-corruptions-when-server-closes-conne.patch
|
||||||
Patch460: 0260-Require-fPIC-instead-of-just-fPIE-for-reduce-relocat.patch
|
Patch460: 0260-Require-fPIC-instead-of-just-fPIE-for-reduce-relocat.patch
|
||||||
|
# from 5.4.2 branch
|
||||||
|
Patch461: 0260-Make-qglobal.h-complain-if-you-use-fPIE.patch
|
||||||
|
Patch462: 0262-Try-to-ensure-that-fPIC-is-used-in-CMake-builds.patch
|
||||||
|
|
||||||
# http://lists.qt-project.org/pipermail/announce/2015-February/000059.html
|
# http://lists.qt-project.org/pipermail/announce/2015-February/000059.html
|
||||||
# CVE-2015-0295
|
# CVE-2015-0295
|
||||||
@ -391,6 +394,8 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
|
|||||||
%patch440 -p1 -b .0240
|
%patch440 -p1 -b .0240
|
||||||
%patch448 -p1 -b .0248
|
%patch448 -p1 -b .0248
|
||||||
%patch460 -p1 -b .0260
|
%patch460 -p1 -b .0260
|
||||||
|
%patch461 -p1 -b .0260-2
|
||||||
|
%patch462 -p1 -b .0262
|
||||||
|
|
||||||
# drop -fexceptions from $RPM_OPT_FLAGS
|
# drop -fexceptions from $RPM_OPT_FLAGS
|
||||||
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
||||||
@ -913,8 +918,11 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat May 16 2015 Rex Dieter <rdieter@fedoraproject.org> 5.4.1-17
|
||||||
|
- Try to ensure that -fPIC is used in CMake builds (QTBUG-45755)
|
||||||
|
|
||||||
* Thu May 14 2015 Rex Dieter <rdieter@fedoraproject.org> 5.4.1-16
|
* Thu May 14 2015 Rex Dieter <rdieter@fedoraproject.org> 5.4.1-16
|
||||||
- Some Qt apps crashs if they are compiled with gcc5 (QTBUG-45755)
|
- Some Qt apps crash if they are compiled with gcc5 (QTBUG-45755)
|
||||||
|
|
||||||
* Thu May 07 2015 Rex Dieter <rdieter@fedoraproject.org> 5.4.1-15
|
* Thu May 07 2015 Rex Dieter <rdieter@fedoraproject.org> 5.4.1-15
|
||||||
- try harder to avoid doc/multilib conflicts (#1212750)
|
- try harder to avoid doc/multilib conflicts (#1212750)
|
||||||
|
Loading…
Reference in New Issue
Block a user