diff --git a/runtime/src/launcher/cpp/launcher.cpp b/runtime/src/launcher/cpp/launcher.cpp index bd32b1b58ec..7c03f21448a 100644 --- a/runtime/src/launcher/cpp/launcher.cpp +++ b/runtime/src/launcher/cpp/launcher.cpp @@ -15,18 +15,14 @@ ArrayHeader* setupArgs(int argc, char** argv) { return args; } -#ifdef __linux__ -extern "C" void konanStart(void*) asm("kfun:start(Array)"); -#else -extern "C" void konanStart(void*) asm("_kfun:start(Array)"); -#endif +extern "C" void Kotlin_start(ArrayHeader* ); int main(int argc, char** argv) { InitMemory(); ArrayHeader* args = setupArgs(argc, argv); - konanStart(args); + Kotlin_start(args); // Yes, we have to follow Java convention and return zero. return 0; diff --git a/runtime/src/launcher/kotlin/konan/start.kt b/runtime/src/launcher/kotlin/konan/start.kt index 09e8e7574ff..b4d81df93eb 100644 --- a/runtime/src/launcher/kotlin/konan/start.kt +++ b/runtime/src/launcher/kotlin/konan/start.kt @@ -1,7 +1,9 @@ +import konan.internal.ExportForCppRuntime external fun main(args: Array) -fun start(args: Array) { +@ExportForCppRuntime +private fun Kotlin_start(args: Array) { try { // This is kotlin program main entry point