From fa9c81f69468098e0dd0ca79ea4d2ef74ec6bc0c Mon Sep 17 00:00:00 2001 From: Jude Taylor Date: Thu, 11 Jun 2015 17:58:26 -0700 Subject: pure darwin stdenv --- pkgs/os-specific/darwin/binutils/default.nix | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 pkgs/os-specific/darwin/binutils/default.nix (limited to 'pkgs/os-specific/darwin/binutils') diff --git a/pkgs/os-specific/darwin/binutils/default.nix b/pkgs/os-specific/darwin/binutils/default.nix new file mode 100644 index 000000000000..abe4aa67b143 --- /dev/null +++ b/pkgs/os-specific/darwin/binutils/default.nix @@ -0,0 +1,39 @@ +{ stdenv, binutils-raw, cctools }: + +stdenv.mkDerivation { + name = "cctools-binutils-darwin"; + buildCommand = '' + mkdir -p $out/bin $out/include + + ln -s ${binutils-raw}/bin/c++filt $out/bin/c++filt + + # We specifically need: + # - ld: binutils doesn't provide it on darwin + # - as: as above + # - ar: the binutils one prodices .a files that the cctools ld doesn't like + # - ranlib: for compatibility with ar + # - dsymutil: soon going away once it goes into LLVM (this one is fake anyway) + # - otool: we use it for some of our name mangling + # - install_name_tool: we use it to rewrite stuff in our bootstrap tools + # - strip: the binutils one seems to break mach-o files + # - lipo: gcc build assumes it exists + # - nm: the gnu one doesn't understand many new load commands + for i in ar ranlib as dsymutil install_name_tool ld strip otool lipo nm strings size; do + ln -sf "${cctools}/bin/$i" "$out/bin/$i" + done + + for i in ${binutils-raw}/include/*.h; do + ln -s "$i" "$out/include/$(basename $i)" + done + + for i in ${cctools}/include/*; do + ln -s "$i" "$out/include/$(basename $i)" + done + + # FIXME: this will give us incorrect man pages for bits of cctools + ln -s ${binutils-raw}/share $out/share + ln -s ${binutils-raw}/lib $out/lib + + ln -s ${cctools}/libexec $out/libexec + ''; +} -- cgit 1.4.1