Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 0 additions & 98 deletions pkgs/os-specific/darwin/cctools/ld-tbd-v2.patch

This file was deleted.

48 changes: 11 additions & 37 deletions pkgs/os-specific/darwin/cctools/port.nix
Original file line number Diff line number Diff line change
@@ -1,18 +1,10 @@
{ stdenv, fetchFromGitHub, autoconf, automake, libtool_2, autoreconfHook
{ stdenv, fetchFromGitHub, autoconf, automake, libtool, autoreconfHook
, libcxxabi, libuuid, llvm
, libobjc ? null, maloader ? null
, enableDumpNormalizedLibArgs ? false
}:

let

# We need to use an old version of cctools-port to support linking TBD files
# in the iOS SDK. Note that this only provides support for SDK versions up to
# 10.x. For 11.0 and higher we will need to upgrade to a newer cctools than the
# default version here, which can support the new TBD format via Apple's
# libtapi.
useOld = stdenv.targetPlatform.isiOS;

# The targetPrefix prepended to binary names to allow multiple binuntils on the
# PATH to both be usable.
targetPrefix = stdenv.lib.optionalString
Expand All @@ -23,51 +15,31 @@ in
# Non-Darwin alternatives
assert (!stdenv.hostPlatform.isDarwin) -> maloader != null;

assert enableDumpNormalizedLibArgs -> (!useOld);

let
baseParams = rec {
name = "${targetPrefix}cctools-port-${version}";
version = if useOld then "886" else "895";
version = "895";

src = fetchFromGitHub (if enableDumpNormalizedLibArgs then {
owner = "tpoechtrager";
repo = "cctools-port";
# master with https://github.com/tpoechtrager/cctools-port/pull/34
rev = "8395d4b2c3350356e2fb02f5e04f4f463c7388df";
sha256 = "10vbf1cfzx02q8chc77s84fp2kydjpx2y682mr6mrbb7sq5rwh8f";
} else if useOld then {
src = fetchFromGitHub {
owner = "tpoechtrager";
repo = "cctools-port";
rev = "02f0b8ecd87a3951653d838a321ae744815e21a5";
sha256 = "0bzyabzr5dvbxglr74d0kbrk2ij5x7s5qcamqi1v546q1had1wz1";
} else {
owner = "tpoechtrager";
repo = "cctools-port";
rev = "2e569d765440b8cd6414a695637617521aa2375b"; # From branch 895-ld64-274.2
sha256 = "0l45mvyags56jfi24rawms8j2ihbc45mq7v13pkrrwppghqrdn52";
});
rev = "07619027f8311fa61b4a549c75994b88739a82d8";
sha256 = "12g94hhz5v5bmy2w0zb6fb4bjlmn992gygc60h9nai15kshj2spi";
};

outputs = [ "out" "dev" ];

nativeBuildInputs = [
autoconf automake libtool_2
] ++ stdenv.lib.optionals useOld [
autoreconfHook
autoconf automake libtool autoreconfHook
];
buildInputs = [ libuuid ] ++
stdenv.lib.optionals stdenv.isDarwin [ llvm libcxxabi libobjc ];

patches = [
./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch
] ++ stdenv.lib.optionals useOld [
# See https://github.com/tpoechtrager/cctools-port/issues/24. Remove when that's fixed.
./undo-unknown-triple.patch
./ld-tbd-v2.patch
./support-ios.patch
];

__propagatedImpureHostDeps = stdenv.lib.optionals (!useOld) [
__propagatedImpureHostDeps = [
# As far as I can tell, otool from cctools is the only thing that depends on these two, and we should fix them
"/usr/lib/libobjc.A.dylib"
"/usr/lib/libobjc.dylib"
Expand All @@ -78,7 +50,9 @@ let
# TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";

postPatch = ''
postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace cctools/Makefile.am --replace libobjc2 ""
'' + ''
sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp

# FIXME: there are far more absolute path references that I don't want to fix right now
Expand Down
13 changes: 0 additions & 13 deletions pkgs/os-specific/darwin/cctools/support-ios.patch

This file was deleted.

17 changes: 0 additions & 17 deletions pkgs/os-specific/darwin/cctools/undo-unknown-triple.patch

This file was deleted.

5 changes: 0 additions & 5 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6467,11 +6467,6 @@ with pkgs;
name = "clang-wrapper-with-reexport-hack";
bintools = darwin.binutils.override {
useMacosReexportHack = true;
bintools = darwin.binutils.bintools.override {
cctools = darwin.cctools.override {
enableDumpNormalizedLibArgs = true;
};
};
};
};

Expand Down