]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ld/SymbolTable.h
ld64-351.8.tar.gz
[apple/ld64.git] / src / ld / SymbolTable.h
index 14c7a9e0077f45fc983d0a117f29f55424c4d0fd..b48330405e52a8b2543821f909b8bb22d5dad6da 100644 (file)
@@ -120,13 +120,15 @@ public:
        unsigned int            updateCount()                                           { return _indirectBindingTable.size(); }
        void                            undefines(std::vector<const char*>& undefines);
        void                            tentativeDefs(std::vector<const char*>& undefines);
+       void                            mustPreserveForBitcode(std::unordered_set<const char*>& 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<const ld::Atom *>& allAtoms, const std::unordered_set<const ld::Atom*>& 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;