[K/N] Prepare MinGW linker for LLVM 11

Explicitly set sysroot, target and linker when linking MinGW binary
because it won't be the default target after LLVM update.
This commit is contained in:
Sergey Bogolepov
2021-07-22 14:49:08 +07:00
committed by Space
parent 272284680e
commit bce1075fc4

View File

@@ -423,7 +423,7 @@ class MingwLinker(targetProperties: MingwConfigurables)
: LinkerFlags(targetProperties), MingwConfigurables by targetProperties {
private val ar = "$absoluteTargetToolchain/bin/ar"
private val linker = "$absoluteTargetToolchain/bin/clang++"
private val linker = "$absoluteLlvmHome/bin/clang++"
override val useCompilerDriverAsLinker: Boolean get() = true
@@ -464,6 +464,8 @@ class MingwLinker(targetProperties: MingwConfigurables)
additionalArguments: List<String> = listOf(),
skipDefaultArguments: List<String> = listOf()
): Command = apply {
+listOf("--sysroot", absoluteTargetSysRoot)
+listOf("-target", targetTriple.toString())
+listOf("-o", executable)
+objectFiles
// --gc-sections flag may affect profiling.
@@ -501,7 +503,9 @@ class MingwLinker(targetProperties: MingwConfigurables)
return listOf(when {
HostManager.hostIsMingw -> Command(linker)
else -> Command("wine64", "$linker.exe")
}.constructLinkerArguments())
}.constructLinkerArguments(
additionalArguments = listOf("-fuse-ld=${absoluteTargetToolchain}/bin/ld.exe")
))
}
}