diff options
| author | Ivan Komissarov <abbapoh@gmail.com> | 2021-09-20 12:52:04 +0300 |
|---|---|---|
| committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2021-09-20 11:36:27 +0000 |
| commit | 0ad9f1ccb57d5dd8c6c9badbd032b510d27a6650 (patch) | |
| tree | d5e0468a146383003d41aec1a12a6c8397bb8620 | |
| parent | b13fab977aae622fd88a5b8e87bedd527c4cdb4d (diff) | |
| download | qbs-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.js | 26 |
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"], |
