diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index ff1d388b6e23..bbf730a26fae 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -32,7 +32,7 @@ , gnat ? null , libpthread ? null, libpthreadCross ? null # required for GNU/Hurd , stripped ? true -, gnused ? null +, CF ? null }: assert langJava -> zip != null && unzip != null @@ -47,8 +47,8 @@ assert cloog != null -> isl != null; # LTO needs libelf and zlib. assert libelf != null -> zlib != null; -# Make sure we get GNU sed. -assert stdenv.isDarwin -> gnused != null; +# Make sure we get CoreFoundation +assert stdenv.isDarwin -> CF != null; # The go frontend is written in c++ assert langGo -> langCC; @@ -288,10 +288,6 @@ stdenv.mkDerivation ({ ++ (optionals (cross != null) [binutilsCross]) ++ (optionals langAda [gnatboot]) ++ (optionals langVhdl [gnat]) - - # The builder relies on GNU sed (for instance, Darwin's `sed' fails with - # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. - ++ (optional stdenv.isDarwin gnused) ; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl"; @@ -302,14 +298,10 @@ stdenv.mkDerivation ({ export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET" export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET" '' + stdenv.lib.optionalString stdenv.isDarwin '' - if SDKROOT=$(/usr/bin/xcrun --show-sdk-path); then - configureFlagsArray+=(--with-native-system-header-dir=$SDKROOT/usr/include) - makeFlagsArray+=( \ - CFLAGS_FOR_BUILD=-F$SDKROOT/System/Library/Frameworks \ - CFLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \ - FLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \ - ) - fi + configureFlagsArray+=( + --with-sysroot="${stdenv.libc}" + --with-native-system-header-dir=/include + ) ''; dontDisableStatic = true; @@ -478,10 +470,10 @@ stdenv.mkDerivation ({ ++ optionals javaAwtGtk [ gmp mpfr ] ++ optional (libpthread != null) libpthread))); - EXTRA_TARGET_CFLAGS = - if cross != null && libcCross != null + extraFlags = + (if cross != null && libcCross != null then "-idirafter ${libcCross}/include" - else null; + else "") + optionalString stdenv.isDarwin " -F${CF}/Library/Frameworks"; EXTRA_TARGET_LDFLAGS = if cross != null && libcCross != null diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1ed60e94358e..baaa1872416a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3832,6 +3832,8 @@ let libcCross = if crossSystem != null then libcCross else null; isl = isl_0_14; + + inherit (darwin) CF; })); gcc49 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/4.9 {