about summary refs log tree commit diff
path: root/nixpkgs/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch')
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch98
1 files changed, 0 insertions, 98 deletions
diff --git a/nixpkgs/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch b/nixpkgs/pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch
deleted file mode 100644
index 9aae2be1d033..000000000000
--- a/nixpkgs/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();
- 	}
-