aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2019-12-15 18:59:38 +0100
committerIvan Komissarov <ABBAPOH@gmail.com>2019-12-16 16:38:40 +0000
commit8b77afedbd4468fa57cd0dec48a5e6833365948a (patch)
tree688c2d99dd7fce789f804f74f03035ce99d78aa5
parent72be773e12177620a4f49e25da06d85d58642f68 (diff)
clang-cl: Fix cpp.generateLinkerMapFile when using lld-link.exe
Change-Id: I0338983e1cf35e4639473db4b920f2e11cdc92b0 Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--share/qbs/modules/cpp/msvc.js11
1 files changed, 8 insertions, 3 deletions
diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js
index 8b7864400..dead67b43 100644
--- a/share/qbs/modules/cpp/msvc.js
+++ b/share/qbs/modules/cpp/msvc.js
@@ -415,12 +415,13 @@ function prepareLinker(project, product, inputs, outputs, input, output) {
subsystemSwitch = product.consoleApplication === false ? '/SUBSYSTEM:WINDOWS' : '/SUBSYSTEM:CONSOLE';
}
+ var useLldLink = product.cpp.linkerName === "lld-link.exe";
if (minimumWindowsVersion) {
var subsystemVersion = WindowsUtils.getWindowsVersionInFormat(minimumWindowsVersion,
'subsystem');
if (subsystemVersion) {
subsystemSwitch += ',' + subsystemVersion;
- if (product.cpp.linkerName !== "lld-link.exe") // llvm linker does not support /OSVERSION
+ if (!useLldLink) // llvm linker does not support /OSVERSION
args.push('/OSVERSION:' + subsystemVersion);
}
}
@@ -478,8 +479,12 @@ function prepareLinker(project, product, inputs, outputs, input, output) {
if (product.cpp.entryPoint)
args.push("/ENTRY:" + product.cpp.entryPoint);
- if (outputs.application && product.cpp.generateLinkerMapFile)
- args.push("/MAP:" + outputs.mem_map[0].filePath);
+ if (outputs.application && product.cpp.generateLinkerMapFile) {
+ if (useLldLink)
+ args.push("/lldmap:" + outputs.mem_map[0].filePath);
+ else
+ args.push("/MAP:" + outputs.mem_map[0].filePath);
+ }
args.push('/OUT:' + linkerOutputNativeFilePath)
var libraryPaths = product.cpp.libraryPaths;