dd10bb3181
This basically is binutils for Mac OS X, but ported to work on (GNU/)Linux and FreeBSD. And it's up-to-date as well! I'm mentioning this, because it was quite hard to find a recent port of it and I just accidentally stumbled on it while trying to do the port by myself. So thanks to @tpoechtrager for doing this. Also, I've added two more patches, which essentially are: * ld-rpath-nonfinal: This allows -rpath to be used for linking non-final builds, which was allowed for earlier versions of cctools and got a check for that in more recent versions. * ld-ignore-rpath-link: Ignores the -rpath-link option, because the cross-wrapper uses it in different places. Unfortunately, the cctools linker doesn't support it, so we might need to implement this later if it's possible (I'm not a Mach-O man^H^H^Hexpert). Signed-off-by: aszlig <aszlig@redmoonstudios.org>
55 lines
1.4 KiB
Nix
55 lines
1.4 KiB
Nix
{ stdenv, cross, fetchurl, autoconf, automake, libtool
|
|
, libcxx, llvm, clang, openssl, libuuid
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "cctools-port-${version}";
|
|
version = "845";
|
|
|
|
src = fetchurl {
|
|
url = "https://github.com/tpoechtrager/cctools-port/archive/"
|
|
+ "cctools-${version}-ld64-136-1.tar.gz";
|
|
sha256 = "06pg6h1g8avgx4j6cfykdpggf490li796gzhhyqn27jsagli307i";
|
|
};
|
|
|
|
buildInputs = [
|
|
autoconf automake libtool libcxx llvm clang openssl libuuid
|
|
];
|
|
|
|
patches = [ ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
postPatch = ''
|
|
patchShebangs tools
|
|
sed -i -e 's/which/type -P/' tools/*.sh
|
|
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' cctools/autogen.sh
|
|
|
|
# Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157
|
|
cat > cctools/include/unistd.h <<EOF
|
|
#ifdef __block
|
|
# undef __block
|
|
# include_next "unistd.h"
|
|
# define __block __attribute__((__blocks__(byref)))
|
|
#else
|
|
# include_next "unistd.h"
|
|
#endif
|
|
EOF
|
|
'';
|
|
|
|
preConfigure = ''
|
|
cd cctools
|
|
sh autogen.sh
|
|
'';
|
|
|
|
configureFlags = [
|
|
"CXXFLAGS=-I${libcxx}/include/c++/v1"
|
|
"--target=${cross.config}"
|
|
];
|
|
|
|
meta = {
|
|
homepage = "http://www.opensource.apple.com/source/cctools/";
|
|
description = "Mac OS X Compiler Tools (cross-platform port)";
|
|
license = stdenv.lib.licenses.apsl20;
|
|
};
|
|
}
|