-
Notifications
You must be signed in to change notification settings - Fork 6
Closed
OpenSwiftUIProject/DarwinPrivateFrameworks
#17Description
We used to workaround them by using @alwaysEmitIntoClient.
But the protocol conformance of Hashable can't be workaround.
Undefined symbols for architecture arm64:
"protocol conformance descriptor for __C.AGWeakAttribute : Swift.Hashable in AttributeGraph", referenced from:
lazy protocol witness table accessor for type __C.AGWeakAttribute and conformance __C.AGWeakAttribute : Swift.Hashable in AttributeGraph in OpenSwiftUICore.o
"_AGGraphGetAttributeSubgraph2", referenced from:
xx in xx.o
ld: symbol(s) not found for architecture arm64
It turns out that we are linking sSo15AGWeakAttributeVSH0B5GraphMc but AG contains sSo15AGWeakAttributeaSH0B5GraphMc
➜ swift demangle --expand sSo15AGWeakAttributeVSH0B5GraphMc
Demangling for $sSo15AGWeakAttributeVSH0B5GraphMc
kind=Global
kind=ProtocolConformanceDescriptor
kind=ProtocolConformance
kind=Type
kind=Structure
kind=Module, text="__C"
kind=Identifier, text="AGWeakAttribute"
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="Hashable"
kind=Module, text="AttributeGraph"
$sSo15AGWeakAttributeVSH0B5GraphMc ---> protocol conformance descriptor for __C.AGWeakAttribute : Swift.Hashable in AttributeGraph
➜ swift demangle --expand sSo15AGWeakAttributeaSH0B5GraphMc
Demangling for $sSo15AGWeakAttributeaSH0B5GraphMc
kind=Global
kind=ProtocolConformanceDescriptor
kind=ProtocolConformance
kind=Type
kind=TypeAlias
kind=Module, text="__C"
kind=Identifier, text="AGWeakAttribute"
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="Hashable"
kind=Module, text="AttributeGraph"
$sSo15AGWeakAttributeaSH0B5GraphMc ---> protocol conformance descriptor for __C.AGWeakAttribute : Swift.Hashable in AttributeGraph
The difference is that we have 'Structure' here while AG will have TypeAlias.
The current def is as following:
typedef struct AG_SWIFT_NAME(AnyWeakAttribute) AGWeakAttribute {
struct {
AGAttribute identifier;
uint32_t seed;
} _details;
} AGWeakAttribute;
Metadata
Metadata
Assignees
Labels
No labels