Fixed static framework linker options
When using static caches we need to extract linker options in the same way as for dynamic frameworks
This commit is contained in:
+1
-1
@@ -196,7 +196,7 @@ private fun embedAppleLinkerOptionsToBitcode(llvm: Llvm, config: KonanConfig) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val optionsToEmbed = findEmbeddableOptions(config.platform.configurables.linkerKonanFlags) +
|
val optionsToEmbed = findEmbeddableOptions(config.platform.configurables.linkerKonanFlags) +
|
||||||
llvm.nativeDependenciesToLink.flatMap { findEmbeddableOptions(it.linkerOpts) }
|
llvm.allNativeDependencies.flatMap { findEmbeddableOptions(it.linkerOpts) }
|
||||||
|
|
||||||
embedLlvmLinkOptions(llvm.llvmModule, optionsToEmbed)
|
embedLlvmLinkOptions(llvm.llvmModule, optionsToEmbed)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-4
@@ -43,10 +43,7 @@ internal class Linker(val context: Context) {
|
|||||||
}
|
}
|
||||||
val includedBinaries = includedBinariesLibraries.map { (it as? KonanLibrary)?.includedPaths.orEmpty() }.flatten()
|
val includedBinaries = includedBinariesLibraries.map { (it as? KonanLibrary)?.includedPaths.orEmpty() }.flatten()
|
||||||
|
|
||||||
val cachedLibraries = context.librariesWithDependencies
|
val libraryProvidedLinkerFlags = context.llvm.allNativeDependencies.map { it.linkerOpts }.flatten()
|
||||||
.filter { context.config.cachedLibraries.isLibraryCached(it) }
|
|
||||||
val libraryProvidedLinkerFlags = (nativeDependencies + cachedLibraries)
|
|
||||||
.distinct().map { it.linkerOpts }.flatten()
|
|
||||||
|
|
||||||
runLinker(objectFiles, includedBinaries, libraryProvidedLinkerFlags)
|
runLinker(objectFiles, includedBinaries, libraryProvidedLinkerFlags)
|
||||||
renameOutput()
|
renameOutput()
|
||||||
|
|||||||
+8
@@ -21,6 +21,8 @@ import org.jetbrains.kotlin.ir.util.isReal
|
|||||||
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
import org.jetbrains.kotlin.konan.library.KonanLibrary
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
|
import org.jetbrains.kotlin.library.uniqueName
|
||||||
|
import org.jetbrains.kotlin.library.unresolvedDependencies
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import kotlin.properties.ReadOnlyProperty
|
import kotlin.properties.ReadOnlyProperty
|
||||||
@@ -395,6 +397,12 @@ internal class Llvm(val context: Context, val llvmModule: LLVMModuleRef) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val allNativeDependencies: List<KonanLibrary> by lazy {
|
||||||
|
val cachedLibraries = context.librariesWithDependencies.filter {
|
||||||
|
context.config.cachedLibraries.isLibraryCached(it)
|
||||||
|
}
|
||||||
|
(nativeDependenciesToLink + cachedLibraries).distinct()
|
||||||
|
}
|
||||||
|
|
||||||
val bitcodeToLink: List<KonanLibrary> by lazy {
|
val bitcodeToLink: List<KonanLibrary> by lazy {
|
||||||
(context.config.resolvedLibraries.getFullList(TopologicalLibraryOrder) as List<KonanLibrary>)
|
(context.config.resolvedLibraries.getFullList(TopologicalLibraryOrder) as List<KonanLibrary>)
|
||||||
|
|||||||
Reference in New Issue
Block a user