[K/N] Update libffi for Windows
MinGW and MSVC are hardly compatible in case of static linkage, so we need to use a native libffi.
This commit is contained in:
@@ -32,6 +32,7 @@ plugins {
|
||||
native {
|
||||
val isWindows = PlatformInfo.isWindows()
|
||||
val obj = if (isWindows) "obj" else "o"
|
||||
val lib = if (isWindows) "lib" else "a"
|
||||
val host = rootProject.project(":kotlin-native").extra["hostName"]
|
||||
val hostLibffiDir = rootProject.project(":kotlin-native").extra["${host}LibffiDir"]
|
||||
val cflags = mutableListOf("-I$hostLibffiDir/include",
|
||||
@@ -54,7 +55,7 @@ native {
|
||||
flags("-shared",
|
||||
"-o",ruleOut(), *ruleInAll(),
|
||||
"-L${project(":kotlin-native:libclangext").buildDir}",
|
||||
"$hostLibffiDir/lib/libffi.a",
|
||||
"$hostLibffiDir/lib/libffi.$lib",
|
||||
"-lclangext")
|
||||
}
|
||||
tasks.named(solib("callbacks")).configure {
|
||||
|
||||
@@ -45,7 +45,7 @@ predefinedLibffiVersions = \
|
||||
libffi-3.2.1-3-darwin-macos \
|
||||
libffi-3.3-1-macos-arm64 \
|
||||
libffi-3.2.1-2-linux-x86-64 \
|
||||
libffi-3.2.1-mingw-w64-x86-64
|
||||
libffi-3.3-windows-x64-1
|
||||
|
||||
llvm.linux_x64.dev = llvm-11.1.0-linux-x64-1
|
||||
llvm.linux_x64.user = llvm-11.1.0-linux-x64-1
|
||||
@@ -872,7 +872,7 @@ runtimeDefinitions.android_x64 = __ANDROID__ USE_GCC_UNWIND=1 USE_ELF_SYMBOLS=1
|
||||
# Windows x86-64, based on mingw-w64.
|
||||
llvmHome.mingw_x64 = $llvm.mingw_x64.dev
|
||||
targetToolchain.mingw_x64 = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1
|
||||
libffiDir.mingw_x64 = libffi-3.2.1-mingw-w64-x86-64
|
||||
libffiDir.mingw_x64 = libffi-3.3-windows-x64-1
|
||||
windowsKitParts.mingw_x64 = windows-kit-x64-v1-alpha2
|
||||
msvcParts.mingw_x64 = msvc-x64-v1-alpha2
|
||||
lldLocation.mingw_x64 = lld-11.1.0-windows-x64/ld.lld.exe
|
||||
|
||||
Reference in New Issue
Block a user