virtual ld::dylib::File* findDylib(const char* installPath, const char* fromPath);
// iterates all atoms in initial files
virtual ld::dylib::File* findDylib(const char* installPath, const char* fromPath);
// iterates all atoms in initial files
// searches libraries for name
bool searchLibraries(const char* name, bool searchDylibs, bool searchArchives,
bool dataSymbolOnly, ld::File::AtomHandler&) const;
// searches libraries for name
bool searchLibraries(const char* name, bool searchDylibs, bool searchArchives,
bool dataSymbolOnly, ld::File::AtomHandler&) const;
void logTraceInfo (const char* format, ...) const;
void logDylib(ld::File*, bool indirect);
void logArchive(ld::File*) const;
void logTraceInfo (const char* format, ...) const;
void logDylib(ld::File*, bool indirect);
void logArchive(ld::File*) const;
static void parseWorkerThread(InputFiles *inputFiles);
void startThread(void (*threadFunc)(InputFiles *)) const;
static void parseWorkerThread(InputFiles *inputFiles);
void startThread(void (*threadFunc)(InputFiles *)) const;
- class CStringEquals {
- public:
- bool operator()(const char* left, const char* right) const { return (strcmp(left, right) == 0); }
- };
- typedef __gnu_cxx::hash_map<const char*, ld::dylib::File*, __gnu_cxx::hash<const char*>, CStringEquals> InstallNameToDylib;
+ typedef std::unordered_map<const char*, ld::dylib::File*, CStringHash, CStringEquals> InstallNameToDylib;
InstallNameToDylib _installPathToDylibs;
std::set<ld::dylib::File*> _allDylibs;
ld::dylib::File* _bundleLoader;
InstallNameToDylib _installPathToDylibs;
std::set<ld::dylib::File*> _allDylibs;
ld::dylib::File* _bundleLoader;
int _remainingInputFiles; // number of input files still to parse
ld::File::Ordinal _indirectDylibOrdinal;
int _remainingInputFiles; // number of input files still to parse
ld::File::Ordinal _indirectDylibOrdinal;