X-Git-Url: https://git.saurik.com/apple/ld64.git/blobdiff_plain/ec29ba20dfd4abc0cb74366b39dda06af136e073..bee7e226299dacc6d80d9cf6f1585c3d5d0645e0:/src/ld/InputFiles.h?ds=sidebyside diff --git a/src/ld/InputFiles.h b/src/ld/InputFiles.h index e9927cd..21f878a 100644 --- a/src/ld/InputFiles.h +++ b/src/ld/InputFiles.h @@ -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 _inputFiles; mutable std::set _archiveFilesLogged; + mutable std::vector _archiveFilePaths; InstallNameToDylib _installPathToDylibs; std::set _allDylibs; ld::dylib::File* _bundleLoader;