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 \
|
msys2-mingw-w64-x86_64-gcc-7.3.0-clang-llvm-lld-6.0.1 \
|
||||||
libffi-3.2.1-mingw-w64-x86-64
|
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.
|
# WebAssembly 32-bit.
|
||||||
targetToolchain.macos_x64-wasm32 = target-toolchain-3-macos-wasm
|
targetToolchain.macos_x64-wasm32 = target-toolchain-3-macos-wasm
|
||||||
dependencies.macos_x64-wasm32 = \
|
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",
|
||||||
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.4/mipsel-unknown-linux-gnu")
|
"-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")
|
listOf("-target", targetArg!!, "--sysroot=$absoluteTargetSysRoot", "-Xclang", "-flto-visibility-public-std")
|
||||||
|
|
||||||
KonanTarget.MACOS_X64 ->
|
KonanTarget.MACOS_X64 ->
|
||||||
@@ -149,7 +149,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
|||||||
"-DKONAN_NO_64BIT_ATOMIC=1",
|
"-DKONAN_NO_64BIT_ATOMIC=1",
|
||||||
"-DKONAN_NO_UNALIGNED_ACCESS=1")
|
"-DKONAN_NO_UNALIGNED_ACCESS=1")
|
||||||
|
|
||||||
KonanTarget.MINGW_X64 ->
|
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||||
listOf("-DUSE_GCC_UNWIND=1",
|
listOf("-DUSE_GCC_UNWIND=1",
|
||||||
"-DUSE_PE_COFF_SYMBOLS=1",
|
"-DUSE_PE_COFF_SYMBOLS=1",
|
||||||
"-DKONAN_WINDOWS=1",
|
"-DKONAN_WINDOWS=1",
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ fun loadConfigurables(target: KonanTarget, properties: Properties, baseDir: Stri
|
|||||||
AppleConfigurablesImpl(target, properties, baseDir)
|
AppleConfigurablesImpl(target, properties, baseDir)
|
||||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
||||||
AndroidConfigurablesImpl(target, properties, baseDir)
|
AndroidConfigurablesImpl(target, properties, baseDir)
|
||||||
KonanTarget.MINGW_X64 ->
|
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||||
MingwConfigurablesImpl(target, properties, baseDir)
|
MingwConfigurablesImpl(target, properties, baseDir)
|
||||||
KonanTarget.WASM32 ->
|
KonanTarget.WASM32 ->
|
||||||
WasmConfigurablesImpl(target, properties, baseDir)
|
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) {
|
enum class Architecture(val bitness: Int) {
|
||||||
X64(64),
|
X64(64),
|
||||||
|
X86(32),
|
||||||
ARM64(64),
|
ARM64(64),
|
||||||
ARM32(32),
|
ARM32(32),
|
||||||
MIPS32(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_ARM64 : KonanTarget( "ios_arm64", Family.IOS, Architecture.ARM64)
|
||||||
object IOS_X64 : KonanTarget( "ios_x64", Family.IOS, Architecture.X64)
|
object IOS_X64 : KonanTarget( "ios_x64", Family.IOS, Architecture.X64)
|
||||||
object LINUX_X64 : KonanTarget( "linux_x64", Family.LINUX, 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 MINGW_X64 : KonanTarget( "mingw_x64", Family.MINGW, Architecture.X64)
|
||||||
object MACOS_X64 : KonanTarget( "macos_x64", Family.OSX, Architecture.X64)
|
object MACOS_X64 : KonanTarget( "macos_x64", Family.OSX, Architecture.X64)
|
||||||
object LINUX_ARM32_HFP :KonanTarget( "linux_arm32_hfp", Family.LINUX, Architecture.ARM32)
|
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,
|
ANDROID_ARM32, ANDROID_ARM64,
|
||||||
IOS_ARM32, IOS_ARM64, IOS_X64,
|
IOS_ARM32, IOS_ARM64, IOS_X64,
|
||||||
LINUX_X64, LINUX_ARM32_HFP, LINUX_MIPS32, LINUX_MIPSEL32,
|
LINUX_X64, LINUX_ARM32_HFP, LINUX_MIPS32, LINUX_MIPSEL32,
|
||||||
MINGW_X64,
|
MINGW_X64, MINGW_X86,
|
||||||
MACOS_X64,
|
MACOS_X64,
|
||||||
WASM32)
|
WASM32)
|
||||||
|
|
||||||
@@ -182,6 +184,7 @@ open class HostManager(protected val distribution: Distribution = Distribution()
|
|||||||
) + zephyrSubtargets
|
) + zephyrSubtargets
|
||||||
KonanTarget.MINGW_X64 -> listOf(
|
KonanTarget.MINGW_X64 -> listOf(
|
||||||
KonanTarget.MINGW_X64,
|
KonanTarget.MINGW_X64,
|
||||||
|
KonanTarget.MINGW_X86,
|
||||||
KonanTarget.LINUX_X64,
|
KonanTarget.LINUX_X64,
|
||||||
KonanTarget.LINUX_ARM32_HFP,
|
KonanTarget.LINUX_ARM32_HFP,
|
||||||
KonanTarget.ANDROID_ARM32,
|
KonanTarget.ANDROID_ARM32,
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ fun linker(configurables: Configurables): LinkerFlags =
|
|||||||
MacOSBasedLinker(configurables as AppleConfigurables)
|
MacOSBasedLinker(configurables as AppleConfigurables)
|
||||||
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
KonanTarget.ANDROID_ARM32, KonanTarget.ANDROID_ARM64 ->
|
||||||
AndroidLinker(configurables as AndroidConfigurables)
|
AndroidLinker(configurables as AndroidConfigurables)
|
||||||
KonanTarget.MINGW_X64 ->
|
KonanTarget.MINGW_X64, KonanTarget.MINGW_X86 ->
|
||||||
MingwLinker(configurables as MingwConfigurables)
|
MingwLinker(configurables as MingwConfigurables)
|
||||||
KonanTarget.WASM32 ->
|
KonanTarget.WASM32 ->
|
||||||
WasmLinker(configurables as WasmConfigurables)
|
WasmLinker(configurables as WasmConfigurables)
|
||||||
|
|||||||
Reference in New Issue
Block a user