From 405adf3348b6d5ffb87f02550743050e4f0da4a6 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Fri, 19 Nov 2021 10:55:27 +0800 Subject: [PATCH] Win32: Enable large address aware explicitly Large address aware is enabled by default in 64-bit compilers, but not 32-bit compilers. But Qt users may build 32-bit Qt themself, in this case large address aware is disabled in fact, and it may cause some issues. So we pass /LARGEADDRESSAWARE to the linker unconditionally to make sure large address aware is enabled for both 32-bit and 64-bit builds. Microsoft Docs: https://docs.microsoft.com/en-us/cpp/build/reference/largeaddressaware-handle-large-addresses?view=msvc-170 Change-Id: Idb2603d9ba0ba9ef4477ce1c3174b7c7e8ba76f6 Reviewed-by: Thiago Macieira Reviewed-by: Oliver Wolff --- cmake/QtInternalTargets.cmake | 2 +- mkspecs/features/qt_module.prf | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/QtInternalTargets.cmake b/cmake/QtInternalTargets.cmake index a6c77d10cb..7a0d8cd1b7 100644 --- a/cmake/QtInternalTargets.cmake +++ b/cmake/QtInternalTargets.cmake @@ -203,7 +203,7 @@ if (MSVC) ) target_link_options(PlatformCommonInternal INTERFACE - -DYNAMICBASE -NXCOMPAT + -DYNAMICBASE -NXCOMPAT -LARGEADDRESSAWARE $<$>:-OPT:REF -OPT:ICF -GUARD:CF> ) endif() diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 8bc1175ebb..6ef7dbc69f 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -343,6 +343,8 @@ msvc { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -guard:cf QMAKE_LFLAGS_RELEASE += /GUARD:CF QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO += /GUARD:CF + + QMAKE_LFLAGS += /LARGEADDRESSAWARE } win32 {