summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Komissarov <abbapoh@gmail.com>2021-09-20 12:52:04 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2021-09-20 11:36:27 +0000
commit0ad9f1ccb57d5dd8c6c9badbd032b510d27a6650 (patch)
treed5e0468a146383003d41aec1a12a6c8397bb8620
parentb13fab977aae622fd88a5b8e87bedd527c4cdb4d (diff)
downloadqbs-0ad9f1ccb57d5dd8c6c9badbd032b510d27a6650.tar.gz
freebsd: fix target linker flags
Fixes: QBS-1312 Change-Id: Ic9cf4d7a9a980f31063a93c49a6f07c4b8c6abfa Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--share/qbs/modules/cpp/gcc.js26
1 files changed, 24 insertions, 2 deletions
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index 5fce2bbe4..56dd9320a 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -1472,6 +1472,28 @@ function dumpDefaultPaths(env, compilerFilePath, args, nullDevice, pathListSepar
}
}
+function targetLinkerFlags(targetArch, targetOS) {
+ var linkerFlags = {
+ "windows": {
+ "i386": "i386pe",
+ "x86_64": "i386pep",
+ },
+ "freebsd": {
+ "i386": "elf_i386_fbsd",
+ "x86_64": "elf_x86_64_fbsd",
+ },
+ "other": {
+ "i386": "elf_i386",
+ "x86_64": "elf_x86_64",
+ }
+ };
+ if (targetOS.contains("windows"))
+ return linkerFlags["windows"][targetArch];
+ else if (targetOS.contains("freebsd"))
+ return linkerFlags["freebsd"][targetArch];
+ return linkerFlags["other"][targetArch];
+}
+
function targetFlags(tool, hasTargetOption, target, targetArch, machineType, targetOS) {
var args = [];
if (hasTargetOption) {
@@ -1484,8 +1506,8 @@ function targetFlags(tool, hasTargetOption, target, targetArch, machineType, tar
"x86_64": ["-m64"],
},
"linker": {
- "i386": ["-m", targetOS.contains("windows") ? "i386pe" : "elf_i386"],
- "x86_64": ["-m", targetOS.contains("windows") ? "i386pep" : "elf_x86_64"],
+ "i386": ["-m", targetLinkerFlags("i386", targetOS)],
+ "x86_64": ["-m", targetLinkerFlags("x86_64", targetOS)],
},
"assembler": {
"i386": ["--32"],