From fd9321d2bd01442af5bafdf11d8ecbca736e5e66 Mon Sep 17 00:00:00 2001 From: Nikolay Igotti Date: Tue, 5 Feb 2019 08:11:38 +0300 Subject: [PATCH] Support compilation to Android arm32 from Windows hosts. (#2623) --- konan/konan.properties | 12 ++++++++++++ .../org/jetbrains/kotlin/konan/target/KonanTarget.kt | 3 +++ .../org/jetbrains/kotlin/konan/target/Linker.kt | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/konan/konan.properties b/konan/konan.properties index b0022014733..aca5d42487c 100644 --- a/konan/konan.properties +++ b/konan/konan.properties @@ -289,6 +289,12 @@ dependencies.linux_x64-android_arm32 = \ target-sysroot-21-android_arm32 \ target-toolchain-21-linux-android_arm32 \ libffi-3.2.1-2-linux-x86-64 +targetToolchain.mingw_x64-android_arm32 = target-toolchain-21-windows-android_arm32 +dependencies.mingw_x64-android_arm32 = \ + msys2-mingw-w64-x86_64-gcc-7.3.0-clang-llvm-lld-6.0.1 \ + target-sysroot-21-android_arm32 \ + target-toolchain-21-windows-android_arm32 \ + libffi-3.2.1-mingw-w64-x86-64 quadruple.android_arm32 = arm-linux-androideabi entrySelector.android_arm32 = -Wl,--defsym -Wl,main=Konan_main @@ -313,6 +319,12 @@ dependencies.linux_x64-android_arm64 = \ target-sysroot-21-android_arm64 \ target-toolchain-21-linux-android_arm64 \ libffi-3.2.1-2-linux-x86-64 +targetToolchain.mingw_x64-android_arm64 = target-toolchain-21-windows-android_arm64 +dependencies.mingw_x64-android_arm64 = \ + msys2-mingw-w64-x86_64-gcc-7.3.0-clang-llvm-lld-6.0.1 \ + target-sysroot-21-android_arm64 \ + target-toolchain-21-windows-android_arm64 \ + libffi-3.2.1-mingw-w64-x86-64 quadruple.android_arm64 = aarch64-linux-android entrySelector.android_arm64 = -Wl,--defsym -Wl,main=Konan_main diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt index 930465cb8d7..9a721a4365f 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt @@ -184,6 +184,9 @@ open class HostManager(protected val distribution: Distribution = Distribution() KonanTarget.MINGW_X64, KonanTarget.LINUX_X64, KonanTarget.LINUX_ARM32_HFP, + KonanTarget.ANDROID_ARM32, + // TODO: toolchain to be fixed for that to work. + // KonanTarget.ANDROID_ARM64, KonanTarget.WASM32 ) + zephyrSubtargets KonanTarget.MACOS_X64 -> listOf( diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt index 42f8c3f1619..d85197ca5cd 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/Linker.kt @@ -93,7 +93,7 @@ open class AndroidLinker(targetProperties: AndroidConfigurables) : LinkerFlags(targetProperties), AndroidConfigurables by targetProperties { private val prefix = "$absoluteTargetToolchain/bin/" - private val clang = "$prefix/clang" + private val clang = if (HostManager.hostIsMingw) "$prefix/clang.cmd" else "$prefix/clang" private val ar = "$absoluteTargetToolchain/${targetProperties.targetArg}/bin/ar" override val useCompilerDriverAsLinker: Boolean get() = true