Update LLVM to 6.0.1 and WebAssembly target refactoring (#1788)
* wasm updates: removed binaryen, simplified morecore and launcher.js * Updated LLVM toolchain to 6.0.1
This commit is contained in:
@@ -78,12 +78,22 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
||||
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.x",
|
||||
"-I$absoluteTargetSysRoot/usr/include/c++/4.9.x/aarch64-linux-android")
|
||||
|
||||
// By default wasm target forces `hidden` visibility which causes
|
||||
// linkage problems.
|
||||
KonanTarget.WASM32 ->
|
||||
listOf("-target", targetArg!!, "-fno-rtti", "-fno-exceptions",
|
||||
"-D_LIBCPP_ABI_VERSION=2", "-D_LIBCPP_NO_EXCEPTIONS=1",
|
||||
"-nostdinc", "-Xclang", "-nobuiltininc", "-Xclang", "-nostdsysteminc",
|
||||
"-Xclang", "-isystem$absoluteTargetSysRoot/include/libcxx", "-Xclang", "-isystem$absoluteTargetSysRoot/lib/libcxxabi/include",
|
||||
"-Xclang", "-isystem$absoluteTargetSysRoot/include/compat", "-Xclang", "-isystem$absoluteTargetSysRoot/include/libc")
|
||||
listOf("-target", targetArg!!,
|
||||
"-fno-rtti",
|
||||
"-fno-exceptions",
|
||||
"-fvisibility=default",
|
||||
"-D_LIBCPP_ABI_VERSION=2",
|
||||
"-D_LIBCPP_NO_EXCEPTIONS=1",
|
||||
"-nostdinc",
|
||||
"-Xclang", "-nobuiltininc",
|
||||
"-Xclang", "-nostdsysteminc",
|
||||
"-Xclang", "-isystem$absoluteTargetSysRoot/include/libcxx",
|
||||
"-Xclang", "-isystem$absoluteTargetSysRoot/lib/libcxxabi/include",
|
||||
"-Xclang", "-isystem$absoluteTargetSysRoot/include/compat",
|
||||
"-Xclang", "-isystem$absoluteTargetSysRoot/include/libc")
|
||||
|
||||
is KonanTarget.ZEPHYR ->
|
||||
listOf("-target", targetArg!!,
|
||||
@@ -142,7 +152,7 @@ class ClangArgs(private val configurables: Configurables) : Configurables by con
|
||||
KonanTarget.WASM32 ->
|
||||
listOf("-DKONAN_WASM=1", "-DKONAN_NO_FFI=1", "-DKONAN_NO_THREADS=1", "-DKONAN_NO_EXCEPTIONS=1",
|
||||
"-DKONAN_INTERNAL_DLMALLOC=1", "-DKONAN_INTERNAL_SNPRINTF=1",
|
||||
"-DKONAN_INTERNAL_NOW=1", "-DKONAN_NO_MEMMEM", "-DKONAN_NO_CTORS_SECTION")
|
||||
"-DKONAN_INTERNAL_NOW=1", "-DKONAN_NO_MEMMEM", "-DKONAN_NO_CTORS_SECTION=1")
|
||||
|
||||
is KonanTarget.ZEPHYR ->
|
||||
listOf( "-DKONAN_ZEPHYR=1", "-DKONAN_NO_FFI=1", "-DKONAN_NO_THREADS=1", "-DKONAN_NO_EXCEPTIONS=1",
|
||||
|
||||
@@ -76,7 +76,6 @@ interface RaspberryPiConfigurables : LinuxBasedConfigurables
|
||||
interface AndroidConfigurables : NonAppleConfigurables
|
||||
|
||||
interface WasmConfigurables : NonAppleConfigurables {
|
||||
val s2wasmFlags get() = targetList("s2wasmFlags")
|
||||
|
||||
val llcFlags get() = targetList("llcFlags")
|
||||
val llcNooptFlags get() = targetList("llcNooptFlags")
|
||||
@@ -87,6 +86,8 @@ interface WasmConfigurables : NonAppleConfigurables {
|
||||
val optNooptFlags get() = targetList("optNooptFlags")
|
||||
val optOptFlags get() = targetList("optOptFlags")
|
||||
val optDebugFlags get() = targetList("optDebugFlags")
|
||||
|
||||
val lldFlags get() = targetList("lld")
|
||||
}
|
||||
|
||||
interface ZephyrConfigurables : NonAppleConfigurables {
|
||||
|
||||
@@ -44,8 +44,6 @@ abstract class LinkerFlags(val configurables: Configurables)
|
||||
else -> error("Don't know libLTO location for this platform.")
|
||||
}
|
||||
|
||||
val libLTO = "$libLTODir/${System.mapLibraryName("LTO")}"
|
||||
|
||||
val targetLibffi = configurables.libffiDir?.let { listOf("${configurables.absoluteLibffiDir}/lib/libffi.a") }
|
||||
?: emptyList()
|
||||
|
||||
@@ -145,7 +143,6 @@ open class MacOSBasedLinker(targetProperties: AppleConfigurables)
|
||||
val dynamic = kind == LinkerOutputKind.DYNAMIC_LIBRARY
|
||||
return listOf(Command(linker).apply {
|
||||
+"-demangle"
|
||||
+listOf("-object_path_lto", "temporary.o", "-lto_library", libLTO)
|
||||
+listOf("-dynamic", "-arch", arch)
|
||||
+osVersionMinFlags
|
||||
+listOf("-syslibroot", absoluteTargetSysRoot, "-o", executable)
|
||||
@@ -250,11 +247,6 @@ open class LinuxBasedLinker(targetProperties: LinuxBasedConfigurables)
|
||||
if (!isMips) +"--hash-style=gnu" // MIPS doesn't support hash-style=gnu
|
||||
+specificLibs
|
||||
+listOf("-L$absoluteTargetSysRoot/../lib", "-L$absoluteTargetSysRoot/lib", "-L$absoluteTargetSysRoot/usr/lib")
|
||||
if (optimize) {
|
||||
+"-plugin"
|
||||
+"$llvmLib/LLVMgold.so"
|
||||
+pluginOptimizationFlags
|
||||
}
|
||||
if (optimize) +linkerOptimizationFlags
|
||||
if (!debug) +linkerNoDebugFlags
|
||||
if (dynamic) +linkerDynamicFlags
|
||||
|
||||
Reference in New Issue
Block a user