gcc: don’t require "lib" output

libgccjit is a library but is used as a compiler. So it references a
bunch of compiler things in $out. To avoid a cycle, we need to put
everything in $out, so referenced to $lib need to be replaced with
${!outputLib}.
This commit is contained in:
Matthew Bauer
2020-05-05 22:23:26 -05:00
parent 5dbc4f7fda
commit 9c4fbf9cb1
5 changed files with 26 additions and 26 deletions
+3 -3
View File
@@ -85,7 +85,7 @@ stdenv.mkDerivation ({
inherit patches;
outputs = [ "out" "lib" "man" "info" ];
outputs = [ "out" "man" "info" ] ++ lib.optional langJit "lib";
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
@@ -100,10 +100,10 @@ stdenv.mkDerivation ({
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name ''${!outputLib}/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
--replace "-install_name \\\$rpath/\\\$soname" "-install_name ''${!outputLib}/lib/\\\$soname"
'';
postPatch = ''