diff --git a/lld/MachO/Symbols.h b/lld/MachO/Symbols.h --- a/lld/MachO/Symbols.h +++ b/lld/MachO/Symbols.h @@ -228,8 +228,8 @@ public: DylibSymbol(DylibFile *file, StringRefZ name, bool isWeakDef, RefState refState, bool isTlv) - : Symbol(DylibKind, name, file), refState(refState), weakDef(isWeakDef), - tlv(isTlv) { + : Symbol(DylibKind, name, file), refState(refState), + weakDef(isWeakDef || (file && file->forceWeakImport)), tlv(isTlv) { if (file && refState > RefState::Unreferenced) file->numReferencedSymbols++; }