From c595d5ed3dd05e278c12e740d32bcb3650b6f069 Mon Sep 17 00:00:00 2001 From: Dan Peebles Date: Sun, 9 Apr 2017 17:32:37 -0400 Subject: [PATCH] cctools-port: 886 -> 895 --- .../darwin/cctools/ld-tbd-v2.patch | 98 ------------------- pkgs/os-specific/darwin/cctools/port.nix | 10 +- .../darwin/cctools/undo-unknown-triple.patch | 17 ---- 3 files changed, 3 insertions(+), 122 deletions(-) delete mode 100644 pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch delete mode 100644 pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch 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 _allowedClients; -+ std::vector _allowableClients; - std::vector _reexportedLibraries; - std::vector _symbols; - std::vector _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 202426e78726..0154d395216f 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 7df9bdd16dab..000000000000 --- 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);