From 3702b3f68b2dccbdb7203f8a4caeec8578556aba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 30 May 2017 14:43:08 +0200 Subject: Pick up default library paths for clang We need to actually run the linker, otherwise clang will just run the preprocessing step as we asked for. We build as a shared library to not have to provide a main() function. Change-Id: Ied34757bb5c43a862bf2d9778340c497b93d572f Reviewed-by: Oswald Buddenhagen --- mkspecs/features/toolchain.prf | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index 46a9c5707a..d3487ef1ab 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -40,19 +40,36 @@ isEmpty($${target_prefix}.INCDIRS) { # QMAKE_DEFAULT_*DIRS, because they're handled in a single build pass. darwin: cxx_flags += -isysroot $$QMAKE_MAC_SDK_PATH - output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ -E -v - 2>&1 $$cmd_suffix", lines) + clang: \ + # Need to link to pick up library paths + cxx_flags += $$QMAKE_LFLAGS_SHLIB -o /dev/null -v -Wl,-v + else: \ + # gcc is fine with just preprocessing + cxx_flags += -E -v + + output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines) add_includes = false + add_libraries = false for (line, output) { - line ~= s/^ *// # remove leading spaces + line ~= s/^[ \\t]*// # remove leading spaces contains(line, "LIBRARY_PATH=.*") { line ~= s/^LIBRARY_PATH=// # remove leading LIBRARY_PATH= paths = $$split(line, $$QMAKE_DIRLIST_SEP) for (path, paths): \ QMAKE_DEFAULT_LIBDIRS += $$clean_path($$path) + } else: contains(line, "Library search paths:") { + add_libraries = true } else: contains(line, "$${LITERAL_HASH}include <.*") { # #include <...> search starts here: add_includes = true } else: contains(line, "End of search.*") { add_includes = false + } else: $$add_libraries { + # We assume all library search paths are absolute + !contains(line, "^/.*") { + add_libraries = false + next() + } + QMAKE_DEFAULT_LIBDIRS += $$clean_path($$line) } else: $$add_includes { !contains(line, ".* \\(framework directory\\)"): \ QMAKE_DEFAULT_INCDIRS += $$clean_path($$line) -- cgit v1.2.3 From 1216f596bdb776da24851111cec764e04105bd62 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 8 Jun 2017 14:30:33 +0200 Subject: make qconfig.pri export QT__VERSION variables again ... and rename those determined by toolchain.prf to QMAKE_* (this was already the case for the newly introduced msvc and icc variables). this restores the ability for user projects to query the toolchain qt itself was built with, which is necessary for compatibility checks. in fact, we may do such validation in toolchain.prf itself at a later point. Change-Id: I35f4c393c5e4e0fe987c0844714b7a8f8687c24e Reviewed-by: Joerg Bornemann --- mkspecs/features/data/macros.cpp | 18 +++++++++--------- mkspecs/features/toolchain.prf | 30 +++++++++++------------------- 2 files changed, 20 insertions(+), 28 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/data/macros.cpp b/mkspecs/features/data/macros.cpp index e677dace12..9dcb8f0914 100644 --- a/mkspecs/features/data/macros.cpp +++ b/mkspecs/features/data/macros.cpp @@ -13,17 +13,17 @@ QMAKE_APPLE_CC = __APPLE_CC__ #endif #ifdef __clang__ #ifdef __APPLE_CC__ -QT_APPLE_CLANG_MAJOR_VERSION = __clang_major__ -QT_APPLE_CLANG_MINOR_VERSION = __clang_minor__ -QT_APPLE_CLANG_PATCH_VERSION = __clang_patchlevel__ +QMAKE_APPLE_CLANG_MAJOR_VERSION = __clang_major__ +QMAKE_APPLE_CLANG_MINOR_VERSION = __clang_minor__ +QMAKE_APPLE_CLANG_PATCH_VERSION = __clang_patchlevel__ #else -QT_CLANG_MAJOR_VERSION = __clang_major__ -QT_CLANG_MINOR_VERSION = __clang_minor__ -QT_CLANG_PATCH_VERSION = __clang_patchlevel__ +QMAKE_CLANG_MAJOR_VERSION = __clang_major__ +QMAKE_CLANG_MINOR_VERSION = __clang_minor__ +QMAKE_CLANG_PATCH_VERSION = __clang_patchlevel__ #endif #endif #ifdef __GNUC__ -QT_GCC_MAJOR_VERSION = __GNUC__ -QT_GCC_MINOR_VERSION = __GNUC_MINOR__ -QT_GCC_PATCH_VERSION = __GNUC_PATCHLEVEL__ +QMAKE_GCC_MAJOR_VERSION = __GNUC__ +QMAKE_GCC_MINOR_VERSION = __GNUC_MINOR__ +QMAKE_GCC_PATCH_VERSION = __GNUC_PATCHLEVEL__ #endif diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index d3487ef1ab..6cab503b0f 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -155,35 +155,27 @@ unset(target_prefix) # Populate QMAKE_COMPILER_DEFINES and some compatibility variables. # The $$format_number() calls strip leading zeros to avoid misinterpretation as octal. QMAKE_COMPILER_DEFINES += __cplusplus=$$QT_COMPILER_STDCXX -!isEmpty(QMAKE_MSC_VER) { +!isEmpty(QMAKE_MSC_VER): \ QMAKE_COMPILER_DEFINES += _MSC_VER=$$QMAKE_MSC_VER _MSC_FULL_VER=$$QMAKE_MSC_FULL_VER - QT_MSVC_MAJOR_VERSION = $$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", "\\1") - QT_MSVC_MINOR_VERSION = $$format_number($$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", "\\2")) - QT_MSVC_PATCH_VERSION = $$replace(QMAKE_MSC_FULL_VER, "(..)(..)(.*)", "\\3")) -} -!isEmpty(QMAKE_ICC_VER) { +!isEmpty(QMAKE_ICC_VER): \ QMAKE_COMPILER_DEFINES += __INTEL_COMPILER=$$QMAKE_ICC_VER __INTEL_COMPILER_UPDATE=$$QMAKE_ICC_UPDATE_VER - QT_ICC_MAJOR_VERSION = $$replace(QMAKE_ICC_VER, "(..)(..)", "\\1") - QT_ICC_MINOR_VERSION = $$format_number($$replace(QMAKE_ICC_VER, "(..)(..)", "\\2")) - QT_ICC_PATCH_VERSION = $$QMAKE_ICC_UPDATE_VER -} !isEmpty(QMAKE_APPLE_CC): \ QMAKE_COMPILER_DEFINES += __APPLE_CC__=$$QMAKE_APPLE_CC !isEmpty(QT_APPLE_CLANG_MAJOR_VERSION): \ QMAKE_COMPILER_DEFINES += __clang__ \ - __clang_major__=$$QT_APPLE_CLANG_MAJOR_VERSION \ - __clang_minor__=$$QT_APPLE_CLANG_MINOR_VERSION \ - __clang_patchlevel__=$$QT_APPLE_CLANG_PATCH_VERSION + __clang_major__=$$QMAKE_APPLE_CLANG_MAJOR_VERSION \ + __clang_minor__=$$QMAKE_APPLE_CLANG_MINOR_VERSION \ + __clang_patchlevel__=$$QMAKE_APPLE_CLANG_PATCH_VERSION !isEmpty(QT_CLANG_MAJOR_VERSION): \ QMAKE_COMPILER_DEFINES += __clang__ \ - __clang_major__=$$QT_CLANG_MAJOR_VERSION \ - __clang_minor__=$$QT_CLANG_MINOR_VERSION \ - __clang_patchlevel__=$$QT_CLANG_PATCH_VERSION + __clang_major__=$$QMAKE_CLANG_MAJOR_VERSION \ + __clang_minor__=$$QMAKE_CLANG_MINOR_VERSION \ + __clang_patchlevel__=$$QMAKE_CLANG_PATCH_VERSION !isEmpty(QT_GCC_MAJOR_VERSION): \ QMAKE_COMPILER_DEFINES += \ - __GNUC__=$$QT_GCC_MAJOR_VERSION \ - __GNUC_MINOR__=$$QT_GCC_MINOR_VERSION \ - __GNUC_PATCHLEVEL__=$$QT_GCC_PATCH_VERSION + __GNUC__=$$QMAKE_GCC_MAJOR_VERSION \ + __GNUC_MINOR__=$$QMAKE_GCC_MINOR_VERSION \ + __GNUC_PATCHLEVEL__=$$QMAKE_GCC_PATCH_VERSION QMAKE_CFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT -- cgit v1.2.3 From 76223ecbaa3b01a9c2ab641bd30d674f7c46a4d6 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 8 Jun 2017 14:39:05 +0200 Subject: complain when toolchain.prf fails to run the compiler Task-number: QTBUG-60059 Change-Id: I2babe8aaf7cdf5912686f679d14bebc82231a846 Reviewed-by: Joerg Bornemann --- mkspecs/features/toolchain.prf | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index 6cab503b0f..34bd8f1d78 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -47,7 +47,9 @@ isEmpty($${target_prefix}.INCDIRS) { # gcc is fine with just preprocessing cxx_flags += -E -v - output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines) + output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines, ec) + !equals(ec, 0): \ + error("Cannot run compiler '$$QMAKE_CXX'. Maybe you forgot to setup the environment?") add_includes = false add_libraries = false for (line, output) { @@ -102,13 +104,19 @@ isEmpty($${target_prefix}.INCDIRS) { # defineReplace(qtVariablesFromMSVC) { - return($$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) NUL", lines)) + ret = $$system("$$1 -nologo -E $$2 $$system_quote($$PWD/data/macros.cpp) NUL", lines, ec) + !equals(ec, 0): \ + error("Cannot run compiler '$$1'. Maybe you forgot to setup the environment?") + return($$ret) } defineReplace(qtVariablesFromGCC) { null_device = /dev/null equals(QMAKE_HOST.os, Windows): null_device = NUL - return($$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) <$$null_device 2>$$null_device", lines)) + ret = $$system("$$1 -E $$system_quote($$PWD/data/macros.cpp) <$$null_device 2>$$null_device", lines, ec) + !equals(ec, 0): \ + error("Cannot run compiler '$$1'. Maybe you forgot to setup the environment?") + return($$ret) } isEmpty($${target_prefix}.COMPILER_MACROS) { -- cgit v1.2.3 From 5dab77ba968ceac57efe108abd5c580d1df24d21 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 15 May 2017 14:14:28 +0200 Subject: build the configure tests in the top-level build dir there isn't really a point in doing strict shadow builds of them, and it complicates stand-alone building of sub-projects (because it points below the build root). Task-number: QTBUG-58372 Change-Id: Ia3bde3826baac44749b27452fd4aeb9491ecb94e Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_configure.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 964c2393c2..f3db6b467d 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -326,7 +326,7 @@ defineTest(qtConfParseCommandLine) { } defineReplace(qtConfToolchainSupportsFlag) { - test_out_dir = $$shadowed($$QMAKE_CONFIG_TESTS_DIR) + test_out_dir = $$OUT_PWD/$$basename(QMAKE_CONFIG_TESTS_DIR) test_cmd_base = "$$QMAKE_CD $$system_quote($$system_path($$test_out_dir)) &&" conftest = "int main() { return 0; }" @@ -849,7 +849,7 @@ defineTest(qtConfTest_compile) { isEmpty(host): host = false test_dir = $$QMAKE_CONFIG_TESTS_DIR/$$test - test_base_out_dir = $$shadowed($$QMAKE_CONFIG_TESTS_DIR) + test_base_out_dir = $$OUT_PWD/$$basename(QMAKE_CONFIG_TESTS_DIR) test_out_dir = $$test_base_out_dir/$$test !isEmpty($${1}.pro): \ test_dir = $$test_dir/$$eval($${1}.pro) -- cgit v1.2.3 From 2e8aecc37943343eae71d7336613923bd5425aab Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 9 Jun 2017 12:54:05 +0200 Subject: Do not disable MSVC extensions when generating moc_predefs.h Do not pass /Za to MSVC to generate moc_predefs.h, because this option is incompatible with compiler options like /fp:fast that may be user-specified. The /Za option added, because moc failed parsing header files that contain MSVC extensions. Moc was fixed in 94a2aec0, and we can safely remove the /Za option. Task-number: QTBUG-58391 Change-Id: I9791224b1773d0f81d2bbb7915787a7c5e68430c Reviewed-by: Olivier Goffart (Woboq GmbH) --- mkspecs/features/moc.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/moc.prf b/mkspecs/features/moc.prf index 15eb38af31..955933d874 100644 --- a/mkspecs/features/moc.prf +++ b/mkspecs/features/moc.prf @@ -31,10 +31,10 @@ if(gcc|intel_icl|msvc):!rim_qcc:!uikit:!no_moc_predefs:if(!macos|count(QMAKE_APP moc_predefs.name = "Generate moc_predefs.h" moc_predefs.CONFIG = no_link gcc: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -dM -E -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} - else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Za -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} + else:intel_icl: moc_predefs.commands = $$QMAKE_CXX $$QMAKE_CXXFLAGS -QdM -P -Fi${QMAKE_FILE_OUT} ${QMAKE_FILE_IN} else:msvc { moc_predefs.commands += $$QMAKE_CXX -Bx$$shell_quote($$shell_path($$QMAKE_QMAKE)) $$QMAKE_CXXFLAGS \ - -E -Za ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} + -E ${QMAKE_FILE_IN} 2>NUL >${QMAKE_FILE_OUT} } else: error("Oops, I messed up") moc_predefs.output = $$MOC_DIR/moc_predefs.h moc_predefs.input = MOC_PREDEF_FILE -- cgit v1.2.3 From 3a782e66fb457f3967bb4bea3af68ceb2ce601fd Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 9 Jun 2017 14:31:22 +0200 Subject: Add /NOLOGO to midl and rc calls This removes clutter from build logs. Task-number: QTBUG-52383 Change-Id: If057f26df017eb9c53a57bc2ba825ae2191130bc Reviewed-by: Oswald Buddenhagen --- mkspecs/common/msvc-desktop.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index acc8d235a2..5296050ad8 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -98,9 +98,9 @@ QMAKE_LIBS_COMPAT = advapi32.lib shell32.lib comdlg32.lib user32.lib gdi32 QMAKE_LIBS_QT_ENTRY = -lqtmain -QMAKE_IDL = midl +QMAKE_IDL = midl /NOLOGO QMAKE_LIB = lib /NOLOGO -QMAKE_RC = rc +QMAKE_RC = rc /NOLOGO VCPROJ_EXTENSION = .vcproj VCSOLUTION_EXTENSION = .sln -- cgit v1.2.3 From 77c2dd401737f7f6e229216c778d710424c0303f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 7 Jun 2017 13:52:30 +0200 Subject: Only use -Xarch when specifying precompiled header if building multi arch The -Xarch option is not supported by ccache, so unless we need to distinguish precompiled headers for multiple architectures it's better to not pass it. Change-Id: Iae02d37f7a89aedebecedff7290f88d2de1ca362 Reviewed-by: Oswald Buddenhagen Reviewed-by: Jake Petroules --- mkspecs/features/mac/default_post.prf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index 2bba73d795..395ac34001 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -162,8 +162,12 @@ macx-xcode { else: \ use_flag = -include + # Only use Xarch with multi-arch, as the option confuses ccache + count(VALID_ARCHS, 1, greaterThan): \ + QMAKE_CFLAGS_USE_PRECOMPILE += \ + -Xarch_$${arch} + QMAKE_CFLAGS_USE_PRECOMPILE += \ - -Xarch_$${arch} \ $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}} } icc_pch_style { -- cgit v1.2.3 From d0706ae3a3996ef6edc196152ad7ae6eaac24dc6 Mon Sep 17 00:00:00 2001 From: James McDonnell Date: Mon, 24 Apr 2017 09:53:57 -0400 Subject: Enable stack-protector-strong for QNX 7.0.0 This was originally enabled in the mkspecs for 64-bit QNX 7.0.0 but that broke when the qtConfig change was made. It looks like qtConfig shouldn't be used in the platform mkspecs. I suspect the stack-protector changes were left out of the 32-bit mkspecs so that 6.6.0 builds wouldn't be affected. Ignore the stack-protector/stack-protector-all possibility since it isn't possible to access it without a command line option. Specifying both options doesn't even make sense since stack-protector-all encompasses stack-protector. For now, leave out command line control of this feature. Task-number: QTBUG-59644 Change-Id: I99323216be5b592dd2c3bef6d22da195764a6e65 Reviewed-by: Oswald Buddenhagen --- mkspecs/common/qcc-base.conf | 2 ++ mkspecs/features/default_post.prf | 5 +++++ mkspecs/features/qt_common.prf | 1 + mkspecs/qnx-aarch64le-qcc/qmake.conf | 8 -------- mkspecs/qnx-x86-64-qcc/qmake.conf | 8 -------- 5 files changed, 8 insertions(+), 16 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/qcc-base.conf b/mkspecs/common/qcc-base.conf index 4ef03d8587..b48e84ee1d 100644 --- a/mkspecs/common/qcc-base.conf +++ b/mkspecs/common/qcc-base.conf @@ -34,6 +34,8 @@ QMAKE_CFLAGS_SSE4_2 += -msse4.2 QMAKE_CFLAGS_AVX += -mavx QMAKE_CFLAGS_AVX2 += -mavx2 +QMAKE_CFLAGS_STACK_PROTECTOR_STRONG = -fstack-protector-strong + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS -lang-c++ QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index d18604e0b8..7e027325bd 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -71,6 +71,11 @@ debug { QMAKE_LIBFLAGS += $$QMAKE_LIBFLAGS_RELEASE } +stack_protector_strong { + QMAKE_CFLAGS += $$QMAKE_CFLAGS_STACK_PROTECTOR_STRONG + QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_STACK_PROTECTOR_STRONG +} + # disable special linker flags for host builds (no proper test for host support yet) !host_build|!cross_compile { use_gold_linker: QMAKE_LFLAGS += $$QMAKE_LFLAGS_USE_GOLD diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index ea235514b7..1e138730b3 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -17,6 +17,7 @@ DEFINES *= QT_NO_NARROWING_CONVERSIONS_IN_CONNECT qtConfig(c++11): CONFIG += c++11 strict_c++ qtConfig(c++14): CONFIG += c++14 qtConfig(c++1z): CONFIG += c++1z +qtConfig(stack-protector-strong): CONFIG += stack_protector_strong contains(TEMPLATE, .*lib) { # module and plugins if(!host_build|!cross_compile):qtConfig(reduce_exports): CONFIG += hide_symbols diff --git a/mkspecs/qnx-aarch64le-qcc/qmake.conf b/mkspecs/qnx-aarch64le-qcc/qmake.conf index 5e3123bece..754bc27358 100644 --- a/mkspecs/qnx-aarch64le-qcc/qmake.conf +++ b/mkspecs/qnx-aarch64le-qcc/qmake.conf @@ -7,11 +7,3 @@ DEFINES += _FORTIFY_SOURCE=2 QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now include(../common/qcc-base-qnx-aarch64le.conf) - -qtConfig(stack-protector-strong) { - QMAKE_CFLAGS += -fstack-protector-strong - QMAKE_CXXFLAGS += -fstack-protector-strong -} else { - QMAKE_CFLAGS += -fstack-protector -fstack-protector-all - QMAKE_CXXFLAGS += -fstack-protector -fstack-protector-all -} diff --git a/mkspecs/qnx-x86-64-qcc/qmake.conf b/mkspecs/qnx-x86-64-qcc/qmake.conf index 2a01ed1405..c479181342 100644 --- a/mkspecs/qnx-x86-64-qcc/qmake.conf +++ b/mkspecs/qnx-x86-64-qcc/qmake.conf @@ -5,11 +5,3 @@ QMAKE_LFLAGS_SHLIB += -Wl,-z,relro -Wl,-z,now include(../common/qcc-base-qnx-x86-64.conf) - -qtConfig(stack-protector-strong) { - QMAKE_CFLAGS += -fstack-protector-strong - QMAKE_CXXFLAGS += -fstack-protector-strong -} else { - QMAKE_CFLAGS += -fstack-protector -fstack-protector-all - QMAKE_CXXFLAGS += -fstack-protector -fstack-protector-all -} -- cgit v1.2.3 From c0e94dd0933c549f35d05318cdcd97572c61fabf Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 6 Jun 2017 20:31:59 +0200 Subject: don't overwrite pre-existing INSTALL for target while it's mildly insane that we auto-generate install targets to start with, we can at least refrain from doing so if there is one already. as it happens, this removes the need for excluding the qt build explicitly. Task-number: QTBUG-38452 Change-Id: I74d5df447fba525fa79896c9be2c71d82bc2c6ce Reviewed-by: Joerg Bornemann --- mkspecs/features/android/android.prf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/android/android.prf b/mkspecs/features/android/android.prf index 7d77598e76..d2a3ee54c1 100644 --- a/mkspecs/features/android/android.prf +++ b/mkspecs/features/android/android.prf @@ -1,3 +1,6 @@ +android_install:contains(INSTALLS, target):!isEmpty(target.path): \ + CONFIG -= android_install + contains(TEMPLATE, ".*app") { !android_app { !contains(TARGET, ".so"): TARGET = lib$${TARGET}.so @@ -8,7 +11,7 @@ contains(TEMPLATE, ".*app") { INSTALLS *= target } } -} else: contains(TEMPLATE, "lib"):!QTDIR_build:android_install { +} else: contains(TEMPLATE, "lib"):android_install { target.path = /libs/$$ANDROID_TARGET_ARCH/ INSTALLS *= target } -- cgit v1.2.3 From 72d4f0750baae1bb296341bde166f020d29c7faa Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 6 Jun 2017 20:37:29 +0200 Subject: don't auto-create install targets for static libs these are not meant to be deployed, so the install hack should skip them. Task-number: QTBUG-42830 Change-Id: I870499dca2cfea87bf0048f019d651ce9cc5d788 Reviewed-by: Joerg Bornemann --- mkspecs/features/android/android.prf | 2 +- mkspecs/features/android/resolve_target.prf | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/android/android.prf b/mkspecs/features/android/android.prf index d2a3ee54c1..45eadc9fdb 100644 --- a/mkspecs/features/android/android.prf +++ b/mkspecs/features/android/android.prf @@ -11,7 +11,7 @@ contains(TEMPLATE, ".*app") { INSTALLS *= target } } -} else: contains(TEMPLATE, "lib"):android_install { +} else: contains(TEMPLATE, "lib"):!static:android_install { target.path = /libs/$$ANDROID_TARGET_ARCH/ INSTALLS *= target } diff --git a/mkspecs/features/android/resolve_target.prf b/mkspecs/features/android/resolve_target.prf index 2bbeffcfd0..25682cd894 100644 --- a/mkspecs/features/android/resolve_target.prf +++ b/mkspecs/features/android/resolve_target.prf @@ -1,2 +1,3 @@ +load(resolve_config) load(android) load(resolve_target) -- cgit v1.2.3