X-Git-Url: https://git.saurik.com/apple/ld64.git/blobdiff_plain/f80fe69f3f29962e8aa43a99f8ed9201548f3d78..f410558f5d60087e4c310119a1751b437121c3b9:/src/ld/parsers/lto_file.h diff --git a/src/ld/parsers/lto_file.h b/src/ld/parsers/lto_file.h index 4140a3a..a086548 100644 --- a/src/ld/parsers/lto_file.h +++ b/src/ld/parsers/lto_file.h @@ -31,33 +31,55 @@ namespace lto { extern const char* version(); +extern unsigned int runtime_api_version(); + +extern unsigned int static_api_version(); + extern bool libLTOisLoaded(); extern const char* archName(const uint8_t* fileContent, uint64_t fileLength); extern bool isObjectFile(const uint8_t* fileContent, uint64_t fileLength, cpu_type_t architecture, cpu_subtype_t subarch); -extern ld::relocatable::File* parse(const uint8_t* fileContent, uint64_t fileLength, +extern bool hasObjCCategory(const uint8_t* fileContent, uint64_t fileLength); + +extern ld::relocatable::File* parse(const uint8_t* fileContent, uint64_t fileLength, const char* path, time_t modTime, ld::File::Ordinal ordinal, - cpu_type_t architecture, cpu_subtype_t subarch, bool logAllFiles); + cpu_type_t architecture, cpu_subtype_t subarch, bool logAllFiles, + bool verboseOptimizationHints); struct OptimizeOptions { const char* outputFilePath; const char* tmpObjectFilePath; + const char* ltoCachePath; + int ltoPruneInterval; + int ltoPruneAfter; + unsigned ltoMaxCacheSize; bool preserveAllGlobals; bool verbose; bool saveTemps; + bool ltoCodegenOnly; bool pie; bool mainExecutable; bool staticExecutable; + bool preload; bool relocatable; bool allowTextRelocs; bool linkerDeadStripping; bool needsUnwindInfoSection; bool keepDwarfUnwind; + bool verboseOptimizationHints; + bool armUsesZeroCostExceptions; + bool simulator; + bool ignoreMismatchPlatform; + bool bitcodeBundle; + uint8_t maxDefaultCommonAlignment; cpu_type_t arch; const char* mcpu; + Options::Platform platform; + uint32_t minOSVersion; const std::vector* llvmOptions; + const std::vector* initialUndefines; }; extern bool optimize( const std::vector& allAtoms,