Add iconv void * overloads for backwards compatibility
Since Xcode 15 the iconv APIs operate on an opaque type __tag_iconv_t* instead of void*. This causes a runtime exception in older Ktor versions which depended on iconv. ^KT-62286
This commit is contained in:
+5
-1
@@ -431,7 +431,11 @@ class StubIrBuilder(private val context: StubIrContext) {
|
||||
|
||||
private fun generateStubsForFunction(func: FunctionDecl) {
|
||||
try {
|
||||
addStubs(FunctionStubBuilder(buildingContext, func, skipOverloads = true).build())
|
||||
addStubs(FunctionStubBuilder(
|
||||
buildingContext,
|
||||
func,
|
||||
skipOverloads = func.name !in context.configuration.allowedOverloadsForCFunctions
|
||||
).build())
|
||||
} catch (e: Throwable) {
|
||||
context.log("Warning: cannot generate stubs for function ${func.name}")
|
||||
}
|
||||
|
||||
+1
@@ -31,6 +31,7 @@ class InteropConfiguration(
|
||||
val nonStrictEnums: Set<String>,
|
||||
val noStringConversion: Set<String>,
|
||||
val exportForwardDeclarations: List<String>,
|
||||
val allowedOverloadsForCFunctions: Set<String>,
|
||||
val disableDesignatedInitializerChecks: Boolean,
|
||||
val disableExperimentalAnnotation: Boolean,
|
||||
val target: KonanTarget
|
||||
|
||||
+1
@@ -324,6 +324,7 @@ private fun processCLib(
|
||||
nonStrictEnums = def.config.nonStrictEnums.toSet(),
|
||||
noStringConversion = def.config.noStringConversion.toSet(),
|
||||
exportForwardDeclarations = def.config.exportForwardDeclarations,
|
||||
allowedOverloadsForCFunctions = def.config.allowedOverloadsForCFunctions.toSet(),
|
||||
disableDesignatedInitializerChecks = def.config.disableDesignatedInitializerChecks,
|
||||
disableExperimentalAnnotation = cinteropArguments.disableExperimentalAnnotation ?: false,
|
||||
target = target
|
||||
|
||||
Reference in New Issue
Block a user