Is it possible to run kotlinc-native compiler on R...
# kotlin-native
m
Is it possible to run kotlinc-native compiler on Raspberry Pi? As I understand the prebuilt kotlinc release packages are only meant for limited targets And since RPi is AARCH64, none of them match So I built the kotlinc-native from source code using :bundle :distPlatformLibs But still I cannot use it on RPi, the error I'm getting is:
Copy code
../coding_tools/kn_d1/bin/kotlinc-native helloWorld.kt -o hellod1
error: compilation failed: /home/pi/coding_tools/kn_d1/konan/nativelib/12300764954060379176/libcallbacks.so: /home/pi/coding_tools/kn_d1/konan/nativelib/12300764954060379176/libcallbacks.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)

 * Source files: helloWorld.kt
 * Compiler version: 2.1.255-SNAPSHOT
 * Output kind: PROGRAM

exception: java.lang.UnsatisfiedLinkError: /home/pi/coding_tools/kn_d1/konan/nativelib/12300764954060379176/libcallbacks.so: /home/pi/coding_tools/kn_d1/konan/nativelib/12300764954060379176/libcallbacks.so: cannot open shared object file: No such file or directory (Possible cause: can't load AMD 64 .so on a AARCH64 platform)
        at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
        at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
        at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
        at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
        at java.base/java.lang.Runtime.load0(Runtime.java:755)
        at java.base/java.lang.System.load(System.java:1970)
        at kotlinx.cinterop.JvmUtilsKt.tryLoadKonanLibrary(JvmUtils.kt:182)
        at kotlinx.cinterop.JvmUtilsKt.loadKonanLibrary(JvmUtils.kt:196)
        at kotlinx.cinterop.JvmCallbacksKt.<clinit>(JvmCallbacks.kt:428)
        at org.jetbrains.kotlin.backend.konan.driver.DynamicCompilerDriver.run(DynamicCompilerDriver.kt:250)
        at org.jetbrains.kotlin.backend.konan.KonanDriver.run(KonanDriver.kt:153)
        at org.jetbrains.kotlin.cli.bc.K2Native.runKonanDriver(K2Native.kt:173)
        at org.jetbrains.kotlin.cli.bc.K2Native.access$runKonanDriver(K2Native.kt:32)
        at org.jetbrains.kotlin.cli.bc.K2Native$runKonanDriver$konanDriver$1.spawn(K2Native.kt:170)
        at org.jetbrains.kotlin.backend.konan.KonanDriver.splitOntoTwoStages(KonanDriver.kt:191)
        at org.jetbrains.kotlin.backend.konan.KonanDriver.run(KonanDriver.kt:78)
        at org.jetbrains.kotlin.cli.bc.K2Native.runKonanDriver(K2Native.kt:173)
        at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:63)
        at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:32)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:113)
        at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:337)
        at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:315)
        at org.jetbrains.kotlin.cli.common.CLICompiler.exec(CLICompiler.kt:279)
        at org.jetbrains.kotlin.cli.common.CLICompiler$Companion.doMainNoExit(CLICompiler.kt:416)
        at org.jetbrains.kotlin.cli.common.CLICompiler$Companion.doMainNoExit$default(CLICompiler.kt:409)
        at org.jetbrains.kotlin.cli.common.CLICompiler$Companion.doMain(CLICompiler.kt:403)
        at org.jetbrains.kotlin.cli.bc.K2Native$Companion.main$lambda$0(K2Native.kt:209)
        at org.jetbrains.kotlin.util.UtilKt.profileIf(Util.kt:22)
        at org.jetbrains.kotlin.util.UtilKt.profile(Util.kt:16)
        at org.jetbrains.kotlin.cli.bc.K2Native$Companion.main(K2Native.kt:208)
        at org.jetbrains.kotlin.cli.bc.K2NativeKt.main(K2Native.kt:239)
        at org.jetbrains.kotlin.cli.utilities.MainKt$main$1.invoke(main.kt:44)
        at org.jetbrains.kotlin.cli.utilities.MainKt$main$1.invoke(main.kt:44)
        at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:20)
        at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:44)
I don't understand where that
nativelib/12300764954060379176/libcallbacks.so
directory in middle come. I dont - in fact - have it there
Copy code
pi@raspberrypi:~/coding_tools/kn_d1/konan/nativelib $ ls
libcallbacks.so   libllvmstubs.so                               liborgjetbrainskotlinbackendkonanfilesstubs.so
libclangstubs.so  liborgjetbrainskotlinbackendkonanenvstubs.so
Also - pardon me, but I'm novice when it comes to compilers, buildtools, cpu architectures etc So any guidance here would be highly appreciated
v
I'm 99% sure that you cannot and Jetbrains don't support the Pi as a build host. I've always had to cross compile to aarch64 from my windows x86 machine. Of course, Jetbrains do support a MacOS native build on the same underlying cpu architecture...
m
Thank you both That KT-36871 ticket was super useful Seems it's beyond my skills for now, but that's some decent direction already