summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/binutils
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2018-12-15 12:26:11 -0600
committerMatthew Bauer <mjbauer95@gmail.com>2018-12-15 12:26:11 -0600
commit0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff (patch)
tree887293da47acfdef0d6d081234ffef2c3e667ed9 /pkgs/os-specific/darwin/binutils
parent921d046537f6d7f0fc0db07b7aa46be7e9df030b (diff)
downloadnixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.tar
nixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.tar.gz
nixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.tar.bz2
nixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.tar.lz
nixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.tar.xz
nixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.tar.zst
nixpkgs-0a996c8ef31eb5ffb55d24dc4703fe0fe29589ff.zip
darwin: use llvm’s dsymutil instead of dummy version
We were previously using a dummy wrapper for dsymutil. This meant that
debug symbols were not getting generated when dsymutil was otherwise
available. This should fix that issue & provide a real dsymutil from
llvm.

Fixes #52148.
Diffstat (limited to 'pkgs/os-specific/darwin/binutils')
-rw-r--r--pkgs/os-specific/darwin/binutils/default.nix12
1 files changed, 6 insertions, 6 deletions
diff --git a/pkgs/os-specific/darwin/binutils/default.nix b/pkgs/os-specific/darwin/binutils/default.nix
index bd10dde5572..db33b78a4ab 100644
--- a/pkgs/os-specific/darwin/binutils/default.nix
+++ b/pkgs/os-specific/darwin/binutils/default.nix
@@ -1,5 +1,4 @@
-{ stdenv, binutils-unwrapped, cctools
-}:
+{ stdenv, binutils-unwrapped, cctools, llvm }:
 
 # Make sure both underlying packages claim to have prepended their binaries
 # with the same targetPrefix.
@@ -8,12 +7,12 @@ assert binutils-unwrapped.targetPrefix == cctools.targetPrefix;
 let
   inherit (binutils-unwrapped) targetPrefix;
   cmds = [
-    "ar" "ranlib" "as" "dsymutil" "install_name_tool"
+    "ar" "ranlib" "as" "install_name_tool"
     "ld" "strip" "otool" "lipo" "nm" "strings" "size"
   ];
 in
 
-# TODO loop over targetPrefixed binaries too
+# TODO: loop over targetPrefixed binaries too
 stdenv.mkDerivation {
   name = "${targetPrefix}cctools-binutils-darwin";
   outputs = [ "out" "info" "man" ];
@@ -25,9 +24,8 @@ stdenv.mkDerivation {
     # 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
+    # - ar: the binutils one produces .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
@@ -37,6 +35,8 @@ stdenv.mkDerivation {
       ln -sf "${cctools}/bin/$i" "$out/bin/$i"
     done
 
+    ln -s ${llvm}/bin/llvm-dsymutil $out/bin/dsymutil
+
     ln -s ${binutils-unwrapped.out}/share $out/share
 
     ln -s ${cctools}/libexec $out/libexec