[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 {
|
native {
|
||||||
val isWindows = PlatformInfo.isWindows()
|
val isWindows = PlatformInfo.isWindows()
|
||||||
val obj = if (isWindows) "obj" else "o"
|
val obj = if (isWindows) "obj" else "o"
|
||||||
|
val lib = if (isWindows) "lib" else "a"
|
||||||
val host = rootProject.project(":kotlin-native").extra["hostName"]
|
val host = rootProject.project(":kotlin-native").extra["hostName"]
|
||||||
val hostLibffiDir = rootProject.project(":kotlin-native").extra["${host}LibffiDir"]
|
val hostLibffiDir = rootProject.project(":kotlin-native").extra["${host}LibffiDir"]
|
||||||
val cflags = mutableListOf("-I$hostLibffiDir/include",
|
val cflags = mutableListOf("-I$hostLibffiDir/include",
|
||||||
@@ -54,7 +55,7 @@ native {
|
|||||||
flags("-shared",
|
flags("-shared",
|
||||||
"-o",ruleOut(), *ruleInAll(),
|
"-o",ruleOut(), *ruleInAll(),
|
||||||
"-L${project(":kotlin-native:libclangext").buildDir}",
|
"-L${project(":kotlin-native:libclangext").buildDir}",
|
||||||
"$hostLibffiDir/lib/libffi.a",
|
"$hostLibffiDir/lib/libffi.$lib",
|
||||||
"-lclangext")
|
"-lclangext")
|
||||||
}
|
}
|
||||||
tasks.named(solib("callbacks")).configure {
|
tasks.named(solib("callbacks")).configure {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ predefinedLibffiVersions = \
|
|||||||
libffi-3.2.1-3-darwin-macos \
|
libffi-3.2.1-3-darwin-macos \
|
||||||
libffi-3.3-1-macos-arm64 \
|
libffi-3.3-1-macos-arm64 \
|
||||||
libffi-3.2.1-2-linux-x86-64 \
|
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.dev = llvm-11.1.0-linux-x64-1
|
||||||
llvm.linux_x64.user = 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.
|
# Windows x86-64, based on mingw-w64.
|
||||||
llvmHome.mingw_x64 = $llvm.mingw_x64.dev
|
llvmHome.mingw_x64 = $llvm.mingw_x64.dev
|
||||||
targetToolchain.mingw_x64 = msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1
|
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
|
windowsKitParts.mingw_x64 = windows-kit-x64-v1-alpha2
|
||||||
msvcParts.mingw_x64 = msvc-x64-v1-alpha2
|
msvcParts.mingw_x64 = msvc-x64-v1-alpha2
|
||||||
lldLocation.mingw_x64 = lld-11.1.0-windows-x64/ld.lld.exe
|
lldLocation.mingw_x64 = lld-11.1.0-windows-x64/ld.lld.exe
|
||||||
|
|||||||
Reference in New Issue
Block a user