]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ld/Resolver.h
ld64-302.3.tar.gz
[apple/ld64.git] / src / ld / Resolver.h
index bdb4e3edfc31b1404271536ce87f50611904c361..06b7a8b0f145702c88e304a1bc473b8fe7ff83c3 100644 (file)
@@ -62,7 +62,9 @@ public:
                                                                : _options(opts), _inputFiles(inputs), _internal(state), 
                                                                  _symbolTable(opts, state.indirectBindingTable),
                                                                  _haveLLVMObjs(false),
-                                                                 _completedInitialObjectFiles(false) {}
+                                                                 _completedInitialObjectFiles(false),
+                                                                 _ltoCodeGenFinished(false),
+                                                                 _haveAliases(false) {}
                                                                
 
                virtual void            doAtom(const ld::Atom&);
@@ -70,7 +72,7 @@ public:
                
                void                            resolve();
 
-       
+
 private:
        struct WhyLiveBackChain
        {
@@ -89,6 +91,7 @@ private:
        void                                    fillInInternalState();
        void                                    fillInHelpersInInternalState();
        void                                    removeCoalescedAwayAtoms();
+       void                                    syncAliases();
        void                                    fillInEntryPoint();
        void                                    linkTimeOptimize();
        void                                    convertReferencesToIndirect(const ld::Atom& atom);
@@ -99,7 +102,9 @@ private:
        void                                    remainingUndefines(std::vector<const char*>&);
        bool                                    printReferencedBy(const char* name, SymbolTable::IndirectBindingSlot slot);
        void                                    tweakWeakness();
+       void                                    buildArchivesList();
        void                                    doLinkerOption(const std::vector<const char*>& linkerOption, const char* fileName);
+       void                                    dumpAtoms();
 
        typedef std::unordered_set<const char*, CStringHash, CStringEquals>  StringSet;
 
@@ -122,11 +127,14 @@ private:
        ld::Internal&                                   _internal;
        std::vector<const ld::Atom*>    _atoms;
        std::set<const ld::Atom*>               _deadStripRoots;
+       std::vector<const ld::Atom*>    _dontDeadStripIfReferencesLive;
        std::vector<const ld::Atom*>    _atomsWithUnresolvedReferences;
        std::vector<const class AliasAtom*>     _aliasesFromCmdLine;
        SymbolTable                                             _symbolTable;
        bool                                                    _haveLLVMObjs;
        bool                                                    _completedInitialObjectFiles;
+       bool                                                    _ltoCodeGenFinished;
+       bool                                                    _haveAliases;
 };