summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@digia.com>2014-01-27 17:27:36 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-01-28 02:33:40 +0100
commit4c980d2e9bc8f656179ea32fa3207d98ada59de4 (patch)
treef388efdfe973e0c895fba6ae8bb8ae16667d5462 /mkspecs
parenta4e0f4f80a4cb6b76fe5610791fe64ffcc35fd66 (diff)
Explicitly use libstdc++ for non-C++11 static builds
Otherwise the compiler may choose libc++ based on the deployment target, and we'll end up with broken builds due to the mismatch between the two libraries, eg: Undefined symbols for architecture x86_64: "std::ios_base::Init::Init()", referenced from: __GLOBAL__I_a in libQt5Qml.a(qv4object.o) ... "std::ios_base::Init::~Init()", referenced from: __GLOBAL__I_a in libQt5Qml.a(qv4object.o) ... "std::__throw_length_error(char const*)", referenced from: ... This problem is not iOS specific, which is why the logic is moved to the more generic mac/default_post.prf. Change-Id: I28b94e614f9167fc0db84bbf1c88dd97d5629938 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/mac/default_post.prf9
-rw-r--r--mkspecs/macx-ios-clang/features/default_post.prf9
2 files changed, 9 insertions, 9 deletions
diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
index 614b336f27..da3e22b5f3 100644
--- a/mkspecs/features/mac/default_post.prf
+++ b/mkspecs/features/mac/default_post.prf
@@ -25,6 +25,15 @@ qt:!isEmpty(QT_CONFIG) {
warning("Qt was not built with C++11 enabled, disabling feature")
CONFIG -= c++11
}
+
+ !c++11 {
+ # Explicitly use libstdc++ if C++11 support is not enabled,
+ # as otherwise the compiler will choose the standard library
+ # based on the deployment target, which for iOS 7 and OS X 10.9
+ # is libc++, and we can't mix and match the two.
+ QMAKE_CXXFLAGS += -stdlib=libstdc++
+ QMAKE_LFLAGS += -stdlib=libstdc++
+ }
}
}
diff --git a/mkspecs/macx-ios-clang/features/default_post.prf b/mkspecs/macx-ios-clang/features/default_post.prf
index 6662bb9c8e..28ad095da7 100644
--- a/mkspecs/macx-ios-clang/features/default_post.prf
+++ b/mkspecs/macx-ios-clang/features/default_post.prf
@@ -178,15 +178,6 @@ macx-xcode {
launch_images.files = $$copy_image.output
QMAKE_BUNDLE_DATA += launch_images
- !contains(QT_CONFIG, c++11) {
- # Explicitly use libstdc++ if C++11 support is not enabled,
- # as otherwise Xcode will choose the compiler default based
- # on the deployment target, which for iOS 7 is libc++. This
- # breaks compilation since Qt was built against libstdc++.
- QMAKE_CXXFLAGS += -stdlib=libstdc++
- QMAKE_LFLAGS += -stdlib=libstdc++
- }
-
# Make the default debug information format for debug builds
# DWARF instead of DWARF with dSYM. This cuts down build times
# for application debug builds significantly, as Xcode doesn't