From c3653e73bee757862acfcb33027a2ea5f8bc7d83 Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Tue, 18 Apr 2017 02:09:15 +0200 Subject: [PATCH] Check whether Qt requires PIC Also includes a buildsys update required for this. --- buildsys.mk.in | 8 ++++---- configure.ac | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/buildsys.mk.in b/buildsys.mk.in index 538e778..554b3df 100644 --- a/buildsys.mk.in +++ b/buildsys.mk.in @@ -201,7 +201,7 @@ depend: pre-depend ${SRCS} { rm -f $@; false; } .mm.mm.dep: - ${CPP} ${CPPFLAGS} ${OBJCPPFLAGS} -M $< | \ + ${CPP} ${CPPFLAGS} ${OBJCXXFLAGS} -M $< | \ sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \ { rm -f $@; false; } @@ -513,7 +513,7 @@ locales: ${MO_FILES} ${COMPILE_STATUS} in="$<"; \ out="$@"; \ - if ${OBJCXX} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \ + if ${OBJCXX} ${OBJCXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \ ${COMPILE_OK}; \ else \ ${COMPILE_FAILED}; \ @@ -522,7 +522,7 @@ locales: ${MO_FILES} ${COMPILE_LIB_STATUS} in="$<"; \ out="$@"; \ - if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \ + if ${OBJCXX} ${LIB_CFLAGS} ${OBJCXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \ ${COMPILE_LIB_OK}; \ else \ ${COMPILE_LIB_FAILED}; \ @@ -531,7 +531,7 @@ locales: ${MO_FILES} ${COMPILE_PLUGIN_STATUS} in="$<"; \ out="$@"; \ - if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${OBJCFLAGS} ${CXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \ + if ${OBJCXX} ${PLUGIN_CFLAGS} ${OBJCXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \ ${COMPILE_PLUGIN_OK}; \ else \ ${COMPILE_PLUGIN_FAILED}; \ diff --git a/configure.ac b/configure.ac index 538de6d..7401410 100644 --- a/configure.ac +++ b/configure.ac @@ -19,6 +19,7 @@ AC_PROG_OBJCXX(clang++ g++) AC_PROG_OBJCXXCPP AC_PROG_LN_S AC_PROG_INSTALL +AC_PROG_EGREP CPP="$OBJCXXCPP" CPPFLAGS="$CPPFLAGS $OBJCPPFLAGS $($OBJFW_CONFIG --cppflags)" @@ -26,7 +27,7 @@ OBJCFLAGS="$OBJCFLAGS -Wall $($OBJFW_CONFIG --objcflags)" LDFLAGS="$LDFLAGS $($OBJFW_CONFIG --ldflags --rpath)" LIBS="$LIBS $($OBJFW_CONFIG --libs)" -AX_CHECK_COMPILER_FLAGS(-std=c++11, [CXXFLAGS="$CXXFLAGS -std=c++11"], [ +AX_CHECK_COMPILER_FLAGS(-std=c++11, [OBJCXXFLAGS="$OBJCXXFLAGS -std=c++11"], [ AC_MSG_ERROR(You need a compiler that supports C++11!) ]) @@ -88,6 +89,20 @@ AS_IF([test x"$GOBJC" = x"yes"], [ OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith -Werror" ]) +AC_MSG_CHECKING(whether Qt requires PIC) +AC_EGREP_CPP(yes, [ + #include + + #ifdef QT_REDUCE_RELOCATIONS + yes + #endif +], [ + OBJCXXFLAGS="$LIB_CFLAGS $OBJCXXFLAGS" + AC_MSG_RESULT(yes) +], [ + AC_MSG_RESULT(no) +]) + BUILDSYS_INIT dnl We don't call AC_PROG_CPP or AC_PROG_OBJC, but only AC_PROG_OBJCPPCXX and