diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-02-08 16:54:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-08 16:54:35 +0000 |
commit | 21d991b1fd78214023551a0dada17b129cbd5cd5 (patch) | |
tree | b4d62fc6a52de5540bf1fbbdaabd6b1222cde506 /pkgs/development/compilers | |
parent | fd16049d7d840739bf116f51fb7097bac5bbc568 (diff) | |
parent | b9b83748f32b105b2cca0242ae4131521ad18290 (diff) | |
download | nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.tar nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.tar.gz nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.tar.bz2 nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.tar.lz nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.tar.xz nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.tar.zst nixlib-21d991b1fd78214023551a0dada17b129cbd5cd5.zip |
Merge pull request #54578 from alyssais/gcj-darwin
gcj: fix build on Darwin
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/gcc/6/default.nix | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index adaf4e36ce96..6fd1995354f6 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -180,18 +180,23 @@ stdenv.mkDerivation ({ hardeningDisable = [ "format" "pie" ]; - # This should kill all the stdinc frameworks that gcc and friends like to - # insert into default search paths. - prePatch = stdenv.lib.optionalString hostPlatform.isDarwin '' - substituteInPlace gcc/config/darwin-c.c \ - --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)" - - substituteInPlace libgfortran/configure \ - --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname" - ''; + prePatch = + (stdenv.lib.optionalString (langJava || langGo) '' + export lib=$out + '') + + # This should kill all the stdinc frameworks that gcc and friends like to + # insert into default search paths. + + stdenv.lib.optionalString hostPlatform.isDarwin '' + substituteInPlace gcc/config/darwin-c.c \ + --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)" + + substituteInPlace libgfortran/configure \ + --replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname" + ''; postPatch = if targetPlatform != hostPlatform || stdenv.cc.libc != null then @@ -447,7 +452,7 @@ stdenv.mkDerivation ({ // optionalAttrs (enableMultilib) { dontMoveLib64 = true; } -// optionalAttrs (langJava) { +// optionalAttrs (langJava && !stdenv.hostPlatform.isDarwin) { postFixup = '' target="$(echo "$out/libexec/gcc"/*/*/ecj*)" patchelf --set-rpath "$(patchelf --print-rpath "$target"):$out/lib" "$target" |