]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ld/InputFiles.h
ld64-305.tar.gz
[apple/ld64.git] / src / ld / InputFiles.h
index e9927cd689346935098e5442ce0153add64bef21..21f878a513b3046e5e3258a6d804ff5187d56593 100644 (file)
@@ -60,7 +60,7 @@ public:
                                                                InputFiles(Options& opts, const char** archName);
 
        // implementation from ld::dylib::File::DylibHandler
-       virtual ld::dylib::File*        findDylib(const char* installPath, const char* fromPath);
+       virtual ld::dylib::File*        findDylib(const char* installPath, const ld::dylib::File* fromDylib, bool speculative);
        
        // iterates all atoms in initial files
        void                                            forEachInitialAtom(ld::File::AtomHandler&, ld::Internal& state);
@@ -72,6 +72,8 @@ public:
        // copy dylibs to link with in command line order
        void                                            dylibs(ld::Internal& state);
        
+       void                                            archives(ld::Internal& state);
+       
        bool                                            inferredArch() const { return _inferredArch; }
        
        void                                            addLinkerOptionLibraries(ld::Internal& state, ld::File::AtomHandler& handler);
@@ -91,7 +93,7 @@ private:
        ld::File*                                       makeFile(const Options::FileInfo& info, bool indirectDylib);
        ld::File*                                       addDylib(ld::dylib::File* f,        const Options::FileInfo& info);
        void                                            logTraceInfo (const char* format, ...) const;
-       void                                            logDylib(ld::File*, bool indirect);
+       void                                            logDylib(ld::File*, bool indirect, bool speculative);
        void                                            logArchive(ld::File*) const;
        void                                            markExplicitlyLinkedDylibs();
        void                                            checkDylibClientRestrictions(ld::dylib::File*);
@@ -113,6 +115,7 @@ private:
        const Options&                          _options;
        std::vector<ld::File*>          _inputFiles;
        mutable std::set<class ld::File*>       _archiveFilesLogged;
+       mutable std::vector<std::string>        _archiveFilePaths;
        InstallNameToDylib                      _installPathToDylibs;
        std::set<ld::dylib::File*>      _allDylibs;
        ld::dylib::File*                        _bundleLoader;