Make qglobal.h only complain for GCC >= 5 about -fPIE

Commit 3eca75de67b3fd2c890715b30c7899cebc096fe9 introduced the #error
nagging about use of -fPIE, but it makes the transition quite difficult
for people using other buildsystems. So let's give people a grace period
and enforce only for GCC >= 5.

Clang is affected, but differently. The problem only happens with -flto
-- that is, it happens when the linker detects that it's creating a
final executable. Maybe -Wl,-pie would fix it.

Change-Id: If4d5ac8db0ed4a84a3eaffff13e275edc29a72b7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
This commit is contained in:
Thiago Macieira 2015-05-28 11:21:35 -07:00
parent 9d662d9d2f
commit 95b6c4fed6

View File

@ -1047,7 +1047,8 @@ Q_CORE_EXPORT int qrand();
# define QT_NO_SHAREDMEMORY
#endif
#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && (!defined(__PIC__) || defined(__PIE__))
#if !defined(QT_BOOTSTRAPPED) && defined(QT_REDUCE_RELOCATIONS) && defined(__ELF__) && \
(!defined(__PIC__) || (defined(__PIE__) && defined(Q_CC_GNU) && Q_CC_GNU >= 500))
# error "You must build your code with position independent code if Qt was built with -reduce-relocations. "\
"Compile your code with -fPIC (-fPIE is not enough)."
#endif