Merge remote-tracking branch 'upstream/master' into hardened-stdenv

This commit is contained in:
Robin Gloster
2016-04-18 13:49:22 +00:00
1369 changed files with 35810 additions and 10571 deletions
+21 -6
View File
@@ -73,7 +73,7 @@ let version = "4.9.3";
++ optional langAda ../gnat-cflags.patch
++ optional langFortran ../gfortran-driving.patch
# The NXConstStr.patch can be removed at 4.9.4
++ optional stdenv.isDarwin ../gfortran-darwin-NXConstStr.patch;
++ optional stdenv.isDarwin ../gfortran-darwin-NXConstStr.patch;
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
@@ -199,7 +199,7 @@ let version = "4.9.3";
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
bootstrap = cross == null;
in
@@ -211,8 +211,6 @@ stdenv.mkDerivation ({
builder = ../builder.sh;
outputs = [ "out" "info" ];
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2";
sha256 = "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3";
@@ -222,6 +220,13 @@ stdenv.mkDerivation ({
hardeningDisable = [ "format" ];
outputs = if langJava || langGo then ["out" "man" "info"]
else [ "out" "lib" "man" "info" ];
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
libc_dev = stdenv.cc.libc_dev;
postPatch =
if (stdenv.isGNU
|| (libcCross != null # e.g., building `gcc.crossDrv'
@@ -313,7 +318,11 @@ stdenv.mkDerivation ({
FLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \
)
fi
'';
''
+ stdenv.lib.optionalString (langJava || langGo) ''
export lib=$out;
''
;
dontDisableStatic = true;
@@ -362,7 +371,7 @@ stdenv.mkDerivation ({
)
}
${if (stdenv ? glibc && cross == null)
then " --with-native-system-header-dir=${stdenv.glibc}/include"
then " --with-native-system-header-dir=${stdenv.glibc.dev}/include"
else ""}
${if langAda then " --enable-libada" else ""}
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
@@ -536,4 +545,10 @@ stdenv.mkDerivation ({
// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
// optionalAttrs (langJava) {
postFixup = ''
target="$(echo "$out/libexec/gcc"/*/*/ecj*)"
patchelf --set-rpath "$(patchelf --print-rpath "$target"):$out/lib" "$target"
'';}
)