]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ld/parsers/lto_file.h
ld64-351.8.tar.gz
[apple/ld64.git] / src / ld / parsers / lto_file.h
index 65682326fda8d772f0ffe85ea538fd7f577e75ad..a086548da109335baba59f284f30d3a951457cc6 100644 (file)
@@ -31,13 +31,19 @@ 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,
                                                                        bool verboseOptimizationHints);
@@ -45,6 +51,10 @@ extern ld::relocatable::File* parse(const uint8_t* fileContent, uint64_t fileLen
 struct OptimizeOptions {
        const char*                                                     outputFilePath;
        const char*                                                     tmpObjectFilePath;
+       const char*                                                     ltoCachePath;
+       int                                                                     ltoPruneInterval;
+       int                                                                     ltoPruneAfter;
+       unsigned                                                        ltoMaxCacheSize;
        bool                                                            preserveAllGlobals;
        bool                                                            verbose; 
        bool                                                            saveTemps; 
@@ -52,6 +62,7 @@ struct OptimizeOptions {
        bool                                                            pie; 
        bool                                                            mainExecutable; 
        bool                                                            staticExecutable; 
+       bool                                                            preload;
        bool                                                            relocatable;
        bool                                                            allowTextRelocs; 
        bool                                                            linkerDeadStripping; 
@@ -62,9 +73,11 @@ struct OptimizeOptions {
        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<const char*>*         llvmOptions;
        const std::vector<const char*>*         initialUndefines;
 };