Anton Saatze
02/01/2024, 9:58 AMlinux_riscv
as native target
✅ Added cross-compile-toolchain (but not generated with the kotlin-native/tools/toolchain_builder/ utils. Its pretty outdated and I could not make it work within a few days, which I set as time constraint to test that)
✅ Compiled the Runtime for RiscV target + compiled stdlib for RiscV target
✅ Compiled a Hello World application as executable and executed it on Qemu
☑️ But, I had to increase the Linker version, since all dependencies were build with the ‘relaxation’ feature, which is not supported by the current Linker (ld.lld 11.1.0)
➡️ Therefore I built a newer version of the LLVM Backend and used its Linker which resulted in a working Hello World Executable for RiscV
👨💻 Currently I am working on writing the thesis
• basics
• important concepts
• rough explanation how Kotlin/Native compiler works
• what changes I had to apply
• which challenges occurred
• …
and I am still
• experimenting with compile flags
• trying to use no relaxation for the entire build to avoid updating the Linker
• trying to upgrade the llvm backend so that the linker does not have to be increased individually
• testing if all expected stdlib functions are working
• …
For my final Contribution PR I will have to get in contact with the Jetbrains Kotlin Team how a newer Linker can be provided (independent of entire LLVM-Dependency) and how the Cross-compile-toolchain can be provided.svyatoslav.scherbina
02/05/2024, 10:02 AMFor my final Contribution PR I will have to get in contact with the Jetbrains Kotlin Team how a newer Linker can be provided (independent of entire LLVM-Dependency) and how the Cross-compile-toolchain can be provided.Please contact me for that.
Anton Saatze
02/05/2024, 10:07 AM