diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2021-12-02 21:02:54 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2021-12-02 21:02:54 +0000 |
commit | f65dcba83ce5035ab88a85fe17628b447eb56e1b (patch) | |
tree | 35f37bb72b3cfc6060193e66c76ee7c9478969b0 /lld/MachO/Symbols.h | |
parent | 846a2208a8ab099f595fe7e8b2e6d54a7b5e67fb (diff) | |
download | src-f65dcba83ce5035ab88a85fe17628b447eb56e1b.tar.gz src-f65dcba83ce5035ab88a85fe17628b447eb56e1b.zip |
Diffstat (limited to 'lld/MachO/Symbols.h')
-rw-r--r-- | lld/MachO/Symbols.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lld/MachO/Symbols.h b/lld/MachO/Symbols.h index cc6f51cc5fd3..d1182a0a2d32 100644 --- a/lld/MachO/Symbols.h +++ b/lld/MachO/Symbols.h @@ -236,7 +236,12 @@ public: uint64_t getVA() const override; bool isWeakDef() const override { return weakDef; } - bool isWeakRef() const override { return refState == RefState::Weak; } + + // Symbols from weak libraries/frameworks are also weakly-referenced. + bool isWeakRef() const override { + return refState == RefState::Weak || + (file && getFile()->umbrella->forceWeakImport); + } bool isReferenced() const { return refState != RefState::Unreferenced; } bool isTlv() const override { return tlv; } bool isDynamicLookup() const { return file == nullptr; } |