Don't use weak aliases for string literals

Apple ld seems to treat hidden weak alias symbols as duplicates.
This commit is contained in:
Svyatoslav Scherbina
2020-04-14 14:11:55 +03:00
committed by SvyatoslavScherbina
parent 44a66bdfe6
commit da4d943afb
@@ -32,15 +32,9 @@ private fun StaticData.arrayHeader(typeInfo: ConstPointer, length: Int): Struct
}
internal fun StaticData.createKotlinStringLiteral(value: String): ConstPointer {
val name = "kstr:" + value.globalHashBase64
val elements = value.toCharArray().map(::Char16)
val objRef = createConstKotlinArray(context.ir.symbols.string.owner, elements)
val res = createAlias(name, objRef)
LLVMSetLinkage(res.llvm, LLVMLinkage.LLVMWeakAnyLinkage)
return res
return objRef
}
private fun StaticData.createRef(objHeaderPtr: ConstPointer) = objHeaderPtr.bitcast(kObjHeaderPtr)