summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/cctools
diff options
context:
space:
mode:
authorDan Peebles <pumpkin@me.com>2017-04-09 17:32:37 -0400
committerDan Peebles <pumpkin@me.com>2017-04-09 17:32:37 -0400
commitc595d5ed3dd05e278c12e740d32bcb3650b6f069 (patch)
tree4bd05af791e51c0f9e55a62c23bc00b8788ed00d /pkgs/os-specific/darwin/cctools
parentd93f2c38659b6ec5a61428ce504626e742c2a361 (diff)
downloadnixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.tar
nixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.tar.gz
nixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.tar.bz2
nixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.tar.lz
nixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.tar.xz
nixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.tar.zst
nixpkgs-c595d5ed3dd05e278c12e740d32bcb3650b6f069.zip
cctools-port: 886 -> 895
Diffstat (limited to 'pkgs/os-specific/darwin/cctools')
-rw-r--r--pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch98
-rw-r--r--pkgs/os-specific/darwin/cctools/port.nix10
-rw-r--r--pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch17
3 files changed, 3 insertions, 122 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 9aae2be1d03..00000000000
--- 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();
- 	}
- 
diff --git a/pkgs/os-specific/darwin/cctools/port.nix b/pkgs/os-specific/darwin/cctools/port.nix
index 202426e7872..0154d395216 100644
--- a/pkgs/os-specific/darwin/cctools/port.nix
+++ b/pkgs/os-specific/darwin/cctools/port.nix
@@ -6,13 +6,13 @@
 let
   baseParams = rec {
     name = "cctools-port-${version}";
-    version = "886";
+    version = "895";
 
     src = fetchFromGitHub {
       owner  = "tpoechtrager";
       repo   = "cctools-port";
-      rev    = "02f0b8ecd87a3951653d838a321ae744815e21a5";
-      sha256 = "0bzyabzr5dvbxglr74d0kbrk2ij5x7s5qcamqi1v546q1had1wz1";
+      rev    = "2e569d765440b8cd6414a695637617521aa2375b"; # From branch 895-ld64-274.2
+      sha256 = "0l45mvyags56jfi24rawms8j2ihbc45mq7v13pkrrwppghqrdn52";
     };
 
     buildInputs = [ autoconf automake libtool_2 libuuid ] ++
@@ -22,10 +22,6 @@ let
 
     patches = [
       ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch
-    ] ++ stdenv.lib.optionals stdenv.isDarwin [
-      # See https://github.com/tpoechtrager/cctools-port/issues/24. Remove when that's fixed.
-      ./undo-unknown-triple.patch
-      ./ld-tbd-v2.patch
     ];
 
     enableParallelBuilding = true;
diff --git a/pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch b/pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch
deleted file mode 100644
index 7df9bdd16da..00000000000
--- a/pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/cctools/as/driver.c b/cctools/as/driver.c
-index b06d085..c03397a 100644
---- a/cctools/as/driver.c
-+++ b/cctools/as/driver.c
-@@ -363,12 +363,6 @@ char **envp)
- 	    /* Add -c or clang will run ld(1). */
- 	    new_argv[j] = "-c";
- 	    j++;
--	    /* cctools-port start */
--	    new_argv[j] = "-target";
--	    j++;
--	    new_argv[j] = "unknown-apple-darwin";
--	    j++;
--	    /* cctools-port end */
- 	    new_argv[j] = NULL;
- 	    if(execute(new_argv, verbose))
- 		exit(0);