X-Git-Url: https://git.saurik.com/apple/ld64.git/blobdiff_plain/9543cb2f21e50a417dc8cf37eb7173f353536979..f410558f5d60087e4c310119a1751b437121c3b9:/src/ld/SymbolTable.h diff --git a/src/ld/SymbolTable.h b/src/ld/SymbolTable.h index 14c7a9e..b483304 100644 --- a/src/ld/SymbolTable.h +++ b/src/ld/SymbolTable.h @@ -120,13 +120,15 @@ public: unsigned int updateCount() { return _indirectBindingTable.size(); } void undefines(std::vector& undefines); void tentativeDefs(std::vector& undefines); + void mustPreserveForBitcode(std::unordered_set& syms); void removeDeadAtoms(); bool hasName(const char* name); bool hasExternalTentativeDefinitions() { return _hasExternalTentativeDefinitions; } byNameIterator begin() { return byNameIterator(_byNameTable.begin(),_indirectBindingTable); } byNameIterator end() { return byNameIterator(_byNameTable.end(),_indirectBindingTable); } void printStatistics(); - + void removeDeadUndefs(std::vector& allAtoms, const std::unordered_set& keep); + // from ld::IndirectBindingTable virtual const char* indirectName(IndirectBindingSlot slot) const; virtual const ld::Atom* indirectAtom(IndirectBindingSlot slot) const; @@ -155,6 +157,7 @@ private: CStringToSlot _cstringTable; NameToMap _nonStdCStringSectionToMap; ReferencesToSlot _nonLazyPointerTable; + ReferencesToSlot _threadPointerTable; ReferencesToSlot _cfStringTable; ReferencesToSlot _objc2ClassRefTable; ReferencesToSlot _pointerToCStringTable;