diff options
Diffstat (limited to 'pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch')
-rw-r--r-- | pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch b/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch deleted file mode 100644 index 9aae2be1d033..000000000000 --- a/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp b/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp -index 09c0e12..ac6b085 100644 ---- a/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp -+++ b/cctools/ld64/src/ld/parsers/textstub_dylib_file.cpp -@@ -187,6 +187,7 @@ struct DynamicLibrary { - ld::File::ObjcConstraint _objcConstraint; - Options::Platform _platform; - std::vector<Token> _allowedClients; -+ std::vector<Token> _allowableClients; - std::vector<Token> _reexportedLibraries; - std::vector<Token> _symbols; - std::vector<Token> _classes; -@@ -246,6 +247,14 @@ class TBDFile { - }); - } - -+ void parseAllowableClients(DynamicLibrary& lib) { -+ if ( !hasOptionalToken("allowable-clients") ) -+ return; -+ parseFlowSequence([&](Token name) { -+ lib._allowableClients.emplace_back(name); -+ }); -+ } -+ - void parseReexportedDylibs(DynamicLibrary& lib) { - if ( !hasOptionalToken("re-exports") ) - return; -@@ -306,6 +315,21 @@ class TBDFile { - return false; - } - -+ void skipUUIDs(DynamicLibrary& lib) { -+ expectToken("uuids"); -+ while ( true ) { -+ auto token = next(); -+ if ( token == "]" ) -+ break; -+ } -+ } -+ -+ void skipParentUmbrella(DynamicLibrary& lib) { -+ if (!hasOptionalToken("parent-umbrella")) -+ return; -+ next(); -+ } -+ - void parsePlatform(DynamicLibrary& lib) { - expectToken("platform"); - -@@ -410,6 +434,7 @@ class TBDFile { - } - - parseAllowedClients(lib); -+ parseAllowableClients(lib); - parseReexportedDylibs(lib); - parseSymbols(lib); - if ( !hasOptionalToken("-") ) -@@ -455,17 +480,21 @@ class TBDFile { - return result.front(); - } - -- void parseDocument(DynamicLibrary& lib, std::string &requestedArchName) { -+ void parseDocument(DynamicLibrary& lib, std::string &requestedArchName, bool isTbdV2) { - auto selectedArchName = parseAndSelectArchitecture(requestedArchName); - if (selectedArchName.empty()) - throwf("invalid arch"); - -+ if(isTbdV2) -+ skipUUIDs(lib); - parsePlatform(lib); - parseInstallName(lib); - parseCurrentVersion(lib); - parseCompatibilityVersion(lib); - parseSwiftVersion(lib); - parseObjCConstraint(lib); -+ if(isTbdV2) -+ skipParentUmbrella(lib); - parseExportsBlock(lib, selectedArchName); - } - -@@ -476,7 +505,8 @@ public: - _tokenizer.reset(); - DynamicLibrary lib; - expectToken("---"); -- parseDocument(lib, requestedArchName); -+ auto isTbdV2 = hasOptionalToken("!tapi-tbd-v2"); -+ parseDocument(lib, requestedArchName, isTbdV2); - expectToken("..."); - return lib; - } -@@ -486,6 +516,7 @@ public: - auto token = next(); - if ( token != "---" ) - return false; -+ hasOptionalToken("!tapi-tbd-v2"); - return !parseAndSelectArchitecture(requestedArchName).empty(); - } - |