build gcc-4.9 on darwin
This commit is contained in:
parent
7024b4dc62
commit
4a495cfbab
@ -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;
|
||||
@ -290,10 +290,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";
|
||||
@ -304,14 +300,11 @@ 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
|
||||
CFLAGS_FOR_BUILD=
|
||||
)
|
||||
'';
|
||||
|
||||
dontDisableStatic = true;
|
||||
@ -480,10 +473,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
|
||||
|
@ -23,8 +23,11 @@ if test "$noSysDirs" = "1"; then
|
||||
|
||||
# Figure out what extra flags to pass to the gcc compilers
|
||||
# being generated to make sure that they use our glibc.
|
||||
extraFlags="$(cat $NIX_CC/nix-support/libc-cflags)"
|
||||
extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags) $(cat $NIX_CC/nix-support/libc-ldflags-before)"
|
||||
extraFlags="$(cat $NIX_CC/nix-support/libc-cflags) ${extraFlags}"
|
||||
extraLDFlags="$(cat $NIX_CC/nix-support/libc-ldflags)"
|
||||
if [ -e "$NIX_CC/nix-support/libc-ldflags-before" ]; then
|
||||
extraLDFlags+=" $(cat $NIX_CC/nix-support/libc-ldflags-before)"
|
||||
fi
|
||||
|
||||
# Use *real* header files, otherwise a limits.h is generated
|
||||
# that does not include Glibc's limits.h (notably missing
|
||||
|
@ -3849,6 +3849,8 @@ let
|
||||
isl = isl_0_11;
|
||||
|
||||
cloog = cloog_0_18_0;
|
||||
|
||||
inherit (darwin) CF;
|
||||
}));
|
||||
|
||||
gcc5 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/5 {
|
||||
|
Loading…
Reference in New Issue
Block a user