mingw_x86 target
This commit is contained in:
committed by
Sergey Bogolepov
parent
147c7d2c3e
commit
e1d2f783fe
@@ -358,6 +358,30 @@ dependencies.mingw_x64 = \
|
||||
msys2-mingw-w64-x86_64-gcc-7.3.0-clang-llvm-lld-6.0.1 \
|
||||
libffi-3.2.1-mingw-w64-x86-64
|
||||
|
||||
# Windows i686, based on mingw-w64.
|
||||
targetToolchain.mingw_x64-mingw_x86 = msys2-mingw-w64-i686-gcc-7.3.0-clang-llvm-lld-6.0.1
|
||||
dependencies.mingw_x64-mingw_x86 = \
|
||||
msys2-mingw-w64-i686-gcc-7.3.0-clang-llvm-lld-6.0.1 \
|
||||
msys2-mingw-w64-x86_64-gcc-7.3.0-clang-llvm-lld-6.0.1 \
|
||||
libffi-3.2.1-mingw-w64-x86-64
|
||||
|
||||
quadruple.mingw_x86 = i686-w64-mingw32
|
||||
targetSysRoot.mingw_x86 = msys2-mingw-w64-i686-gcc-7.3.0-clang-llvm-lld-6.0.1
|
||||
# For using with Universal Windows Platform (UWP) we need to use this slower option.
|
||||
# See https://youtrack.jetbrains.com/issue/KT-27654.
|
||||
# TODO: remove, once fixed in mingw, check with the bug testcase.
|
||||
llvmLtoFlags.mingw_x86 = -emulated-tls
|
||||
llvmLtoOptFlags.mingw_x86 = -O3 -function-sections
|
||||
llvmLtoNooptFlags.mingw_x86 = -O1
|
||||
linkerNoDebugFlags.mingw_x86 = -Wl,-S
|
||||
linkerDynamicFlags.mingw_x86 = -shared
|
||||
linkerKonanFlags.mingw_x86 = -static-libgcc -static-libstdc++ \
|
||||
-Xclang -flto-visibility-public-std -Wl,--dynamicbase \
|
||||
-Wl,-Bstatic,--whole-archive -lwinpthread -Wl,--no-whole-archive,-Bdynamic \
|
||||
-Wl,--defsym,___cxa_demangle=_Konan_cxa_demangle
|
||||
linkerOptimizationFlags.mingw_x86 = -Wl,--gc-sections
|
||||
entrySelector.mingw_x86 = -Wl,--defsym,_main=_Konan_main
|
||||
|
||||
# WebAssembly 32-bit.
|
||||
targetToolchain.macos_x64-wasm32 = target-toolchain-3-macos-wasm
|
||||
dependencies.macos_x64-wasm32 = \
|
||||
|
||||
@@ -51,7 +51,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
||||
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4",
|
||||
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4/mipsel-unknown-linux-gnu")
|
||||
|
||||
KonanTarget.MINGW_X64 ->
|
||||
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||
listOf("-target", targetArg!!, "--sysroot=$absoluteTargetSysRoot", "-Xclang", "-flto-visibility-public-std")
|
||||
|
||||
KonanTarget.MACOS_X64 ->
|
||||
@@ -149,7 +149,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
||||
"-DKONAN_NO_64BIT_ATOMIC=1",
|
||||
"-DKONAN_NO_UNALIGNED_ACCESS=1")
|
||||
|
||||
KonanTarget.MINGW_X64 ->
|
||||
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||
listOf("-DUSE_GCC_UNWIND=1",
|
||||
"-DUSE_PE_COFF_SYMBOLS=1",
|
||||
"-DKONAN_WINDOWS=1",
|
||||
|
||||
@@ -46,7 +46,7 @@ fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: Stri
|
||||
AppleConfigurablesImpl(target, properties, baseDir)
|
||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
||||
AndroidConfigurablesImpl(target, properties, baseDir)
|
||||
KonanTarget.MINGW_X64 ->
|
||||
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||
MingwConfigurablesImpl(target, properties, baseDir)
|
||||
KonanTarget.WASM32 ->
|
||||
WasmConfigurablesImpl(target, properties, baseDir)
|
||||
|
||||
@@ -35,6 +35,7 @@ enum class Family(val exeSuffix:String, val dynamicPrefix: String, val dynamicSu
|
||||
|
||||
enum class Architecture(val bitness: Int) {
|
||||
X64(64),
|
||||
X86(32),
|
||||
ARM64(64),
|
||||
ARM32(32),
|
||||
MIPS32(32),
|
||||
@@ -49,6 +50,7 @@ sealed class KonanTarget(override val name: String, val family: Family, val arch
|
||||
object IOS_ARM64 : KonanTarget( "ios_arm64", Family.IOS, Architecture.ARM64)
|
||||
object IOS_X64 : KonanTarget( "ios_x64", Family.IOS, Architecture.X64)
|
||||
object LINUX_X64 : KonanTarget( "linux_x64", Family.LINUX, Architecture.X64)
|
||||
object MINGW_X86 : KonanTarget( "mingw_x86", Family.MINGW, Architecture.X86)
|
||||
object MINGW_X64 : KonanTarget( "mingw_x64", Family.MINGW, Architecture.X64)
|
||||
object MACOS_X64 : KonanTarget( "macos_x64", Family.OSX, Architecture.X64)
|
||||
object LINUX_ARM32_HFP :KonanTarget( "linux_arm32_hfp", Family.LINUX, Architecture.ARM32)
|
||||
@@ -134,7 +136,7 @@ open class HostManager(protected val distribution: Distribution = Distribution()
|
||||
ANDROID_ARM32, ANDROID_ARM64,
|
||||
IOS_ARM32, IOS_ARM64, IOS_X64,
|
||||
LINUX_X64, LINUX_ARM32_HFP, LINUX_MIPS32, LINUX_MIPSEL32,
|
||||
MINGW_X64,
|
||||
MINGW_X64, MINGW_X86,
|
||||
MACOS_X64,
|
||||
WASM32)
|
||||
|
||||
@@ -182,6 +184,7 @@ open class HostManager(protected val distribution: Distribution = Distribution()
|
||||
) + zephyrSubtargets
|
||||
KonanTarget.MINGW_X64 -> listOf(
|
||||
KonanTarget.MINGW_X64,
|
||||
KonanTarget.MINGW_X86,
|
||||
KonanTarget.LINUX_X64,
|
||||
KonanTarget.LINUX_ARM32_HFP,
|
||||
KonanTarget.ANDROID_ARM32,
|
||||
|
||||
@@ -395,7 +395,7 @@ fun linker(configurables: Configurables): LinkerFlags =
|
||||
MacOSBasedLinker(configurables as AppleConfigurables)
|
||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
||||
AndroidLinker(configurables as AndroidConfigurables)
|
||||
KonanTarget.MINGW_X64 ->
|
||||
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||
MingwLinker(configurables as MingwConfigurables)
|
||||
KonanTarget.WASM32 ->
|
||||
WasmLinker(configurables as WasmConfigurables)
|
||||
|
||||
Reference in New Issue
Block a user