* gcc-wrapper: separately store the flags necessary to find GCC and
Glibc. This is useful when building GCC. * gcc-wrapper: the dynamic linker has a different name on x86_64 and powerpc. * gcc-wrapper: "glibc" -> "libc", because someday we might support different C libraries. * gcc: don't do a multilib build (e.g., 32-bit support on x86_64), don't need it. * gcc: merge in support for static builds. * gcc: various simplifications in the compiler/linker flags, hope they work. svn path=/nixpkgs/trunk/; revision=6823
This commit is contained in:
parent
5f4f8766cf
commit
b342dcb13b
@ -1,5 +1,24 @@
|
|||||||
export NIX_CFLAGS_COMPILE="@cflagsCompile@ $NIX_CFLAGS_COMPILE"
|
# `-B@out@/bin' forces gcc to use ld-wrapper.sh when calling ld.
|
||||||
export NIX_CFLAGS_LINK="@cflagsLink@ $NIX_CFLAGS_LINK"
|
export NIX_CFLAGS_COMPILE="-B@out@/bin/ $NIX_CFLAGS_COMPILE"
|
||||||
export NIX_LDFLAGS="@ldflags@ $NIX_LDFLAGS"
|
|
||||||
export NIX_LDFLAGS_BEFORE="@ldflagsBefore@ $NIX_LDFLAGS_BEFORE"
|
if test -e @out@/nix-support/libc-cflags; then
|
||||||
export NIX_GLIBC_FLAGS_SET=1
|
export NIX_CFLAGS_COMPILE="$(cat @out@/nix-support/libc-cflags) $NIX_CFLAGS_COMPILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -e @out@/nix-support/libc-ldflags; then
|
||||||
|
export NIX_LDFLAGS="$(cat @out@/nix-support/libc-ldflags) $NIX_LDFLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -e @out@/nix-support/gcc-ldflags; then
|
||||||
|
export NIX_LDFLAGS="$(cat @out@/nix-support/gcc-ldflags) $NIX_LDFLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -e @out@/nix-support/gcc-ldflags; then
|
||||||
|
export NIX_LDFLAGS="$(cat @out@/nix-support/gcc-ldflags) $NIX_LDFLAGS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -e @out@/nix-support/libc-ldflags-before; then
|
||||||
|
export NIX_LDFLAGS_BEFORE="$(cat @out@/nix-support/libc-ldflags-before) $NIX_LDFLAGS_BEFORE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export NIX_GCC_WRAPPER_FLAGS_SET=1
|
||||||
|
@ -2,20 +2,27 @@ source $stdenv/setup
|
|||||||
source $substitute
|
source $substitute
|
||||||
|
|
||||||
|
|
||||||
# Force gcc to use ld-wrapper.sh when calling ld.
|
mkdir $out
|
||||||
cflagsCompile="-B$out/bin/"
|
mkdir $out/bin
|
||||||
|
mkdir $out/nix-support
|
||||||
|
|
||||||
if test -z "$nativeGlibc"; then
|
|
||||||
# The "-B$glibc/lib/" flag is a quick hack to force gcc to link
|
if test -z "$nativeLibc"; then
|
||||||
|
dynamicLinker="$libc/lib/$dynamicLinker"
|
||||||
|
echo $dynamicLinker > $out/nix-support/dynamic-linker
|
||||||
|
|
||||||
|
# The "-B$libc/lib/" flag is a quick hack to force gcc to link
|
||||||
# against the crt1.o from our own glibc, rather than the one in
|
# against the crt1.o from our own glibc, rather than the one in
|
||||||
# /usr/lib. The real solution is of course to prevent those paths
|
# /usr/lib. (This is only an issue when using an `impure'
|
||||||
# from being used by gcc in the first place.
|
# compiler/linker, i.e., one that searches /usr/lib and so on.)
|
||||||
|
echo "-B$libc/lib/ -isystem $libc/include" > $out/nix-support/libc-cflags
|
||||||
|
|
||||||
|
echo "-L$libc/lib" > $out/nix-support/libc-ldflags
|
||||||
|
|
||||||
# The dynamic linker is passed in `ldflagsBefore' to allow
|
# The dynamic linker is passed in `ldflagsBefore' to allow
|
||||||
# explicit overrides of the dynamic linker by callers to gcc/ld
|
# explicit overrides of the dynamic linker by callers to gcc/ld
|
||||||
# (the *last* value counts, so ours should come first).
|
# (the *last* value counts, so ours should come first).
|
||||||
cflagsCompile="$cflagsCompile -B$glibc/lib/ -isystem $glibc/include"
|
echo "-dynamic-linker $dynamicLinker" > $out/nix-support/libc-ldflags-before
|
||||||
ldflags="$ldflags -L$glibc/lib"
|
|
||||||
ldflagsBefore="-dynamic-linker $glibc/lib/ld-linux.so.2"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "$nativeTools"; then
|
if test -n "$nativeTools"; then
|
||||||
@ -23,19 +30,15 @@ if test -n "$nativeTools"; then
|
|||||||
ldPath="$nativePrefix/bin"
|
ldPath="$nativePrefix/bin"
|
||||||
else
|
else
|
||||||
if test -e "$gcc/lib64"; then
|
if test -e "$gcc/lib64"; then
|
||||||
ldflags="$ldflags -L$gcc/lib64"
|
gccLDFlags="$gccLDFlags -L$gcc/lib64"
|
||||||
fi
|
fi
|
||||||
ldflags="$ldflags -L$gcc/lib"
|
gccLDFlags="$gccLDFlags -L$gcc/lib"
|
||||||
|
echo "$gccLDFlags" > $out/nix-support/gcc-ldflags
|
||||||
gccPath="$gcc/bin"
|
gccPath="$gcc/bin"
|
||||||
ldPath="$binutils/bin"
|
ldPath="$binutils/bin"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
mkdir $out
|
|
||||||
mkdir $out/bin
|
|
||||||
mkdir $out/nix-support
|
|
||||||
|
|
||||||
|
|
||||||
doSubstitute() {
|
doSubstitute() {
|
||||||
local src=$1
|
local src=$1
|
||||||
local dst=$2
|
local dst=$2
|
||||||
@ -45,11 +48,7 @@ doSubstitute() {
|
|||||||
--subst-var "gcc" \
|
--subst-var "gcc" \
|
||||||
--subst-var "gccProg" \
|
--subst-var "gccProg" \
|
||||||
--subst-var "binutils" \
|
--subst-var "binutils" \
|
||||||
--subst-var "glibc" \
|
--subst-var "libc" \
|
||||||
--subst-var "cflagsCompile" \
|
|
||||||
--subst-var "cflagsLink" \
|
|
||||||
--subst-var "ldflags" \
|
|
||||||
--subst-var "ldflagsBefore" \
|
|
||||||
--subst-var-by "ld" "$ldPath/ld"
|
--subst-var-by "ld" "$ldPath/ld"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,10 +87,10 @@ chmod +x "$out/bin/ld"
|
|||||||
# Emit a setup hook. Also store the path to the original GCC and
|
# Emit a setup hook. Also store the path to the original GCC and
|
||||||
# Glibc.
|
# Glibc.
|
||||||
test -n "$gcc" && echo $gcc > $out/nix-support/orig-gcc
|
test -n "$gcc" && echo $gcc > $out/nix-support/orig-gcc
|
||||||
test -n "$glibc" && echo $glibc > $out/nix-support/orig-glibc
|
test -n "$libc" && echo $libc > $out/nix-support/orig-libc
|
||||||
|
|
||||||
doSubstitute "$addFlags" "$out/nix-support/add-flags"
|
doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
|
||||||
|
|
||||||
doSubstitute "$setupHook" "$out/nix-support/setup-hook"
|
doSubstitute "$setupHook" "$out/nix-support/setup-hook"
|
||||||
|
|
||||||
cp -p $utils $out/nix-support/utils
|
cp -p $utils $out/nix-support/utils.sh
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
# stdenv.mkDerivation provides a wrapper that sets up the right environment
|
# stdenv.mkDerivation provides a wrapper that sets up the right environment
|
||||||
# variables so that the compiler and the linker just "work".
|
# variables so that the compiler and the linker just "work".
|
||||||
|
|
||||||
{ name ? "", stdenv, nativeTools, nativeGlibc, nativePrefix ? ""
|
{ name ? "", stdenv, nativeTools, nativeLibc, nativePrefix ? ""
|
||||||
, gcc ? null, glibc ? null, binutils ? null, shell ? ""
|
, gcc ? null, libc ? null, binutils ? null, shell ? ""
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert nativeTools -> nativePrefix != "";
|
assert nativeTools -> nativePrefix != "";
|
||||||
assert !nativeTools -> gcc != null && binutils != null;
|
assert !nativeTools -> gcc != null && binutils != null;
|
||||||
assert !nativeGlibc -> glibc != null;
|
assert !nativeLibc -> libc != null;
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
@ -21,7 +21,7 @@ stdenv.mkDerivation {
|
|||||||
ldWrapper = ./ld-wrapper.sh;
|
ldWrapper = ./ld-wrapper.sh;
|
||||||
utils = ./utils.sh;
|
utils = ./utils.sh;
|
||||||
addFlags = ./add-flags;
|
addFlags = ./add-flags;
|
||||||
inherit nativeTools nativeGlibc nativePrefix gcc glibc binutils;
|
inherit nativeTools nativeLibc nativePrefix gcc libc binutils;
|
||||||
name = if name == "" then gcc.name else name;
|
name = if name == "" then gcc.name else name;
|
||||||
langC = if nativeTools then true else gcc.langC;
|
langC = if nativeTools then true else gcc.langC;
|
||||||
langCC = if nativeTools then true else gcc.langCC;
|
langCC = if nativeTools then true else gcc.langCC;
|
||||||
@ -30,4 +30,13 @@ stdenv.mkDerivation {
|
|||||||
meta = if gcc != null && (gcc ? meta) then gcc.meta else
|
meta = if gcc != null && (gcc ? meta) then gcc.meta else
|
||||||
{ description = "System C compiler wrapper";
|
{ description = "System C compiler wrapper";
|
||||||
};
|
};
|
||||||
}
|
|
||||||
|
# The dynamic linker has different names on different Linux platforms.
|
||||||
|
dynamicLinker =
|
||||||
|
if !nativeLibc then
|
||||||
|
(if stdenv.system == "i686-linux" then "ld-linux.so.2" else
|
||||||
|
if stdenv.system == "x86_64-linux" then "ld-linux-x86-64.so.2" else
|
||||||
|
if stdenv.system == "powerpc-linux" then "ld.so.1" else
|
||||||
|
abort "don't know the name of the dynamic linker for this platform")
|
||||||
|
else "";
|
||||||
|
}
|
||||||
|
@ -4,11 +4,11 @@ if test -n "$NIX_GCC_WRAPPER_START_HOOK"; then
|
|||||||
source "$NIX_GCC_WRAPPER_START_HOOK"
|
source "$NIX_GCC_WRAPPER_START_HOOK"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "$NIX_GLIBC_FLAGS_SET"; then
|
if test -z "$NIX_GCC_WRAPPER_FLAGS_SET"; then
|
||||||
source @out@/nix-support/add-flags
|
source @out@/nix-support/add-flags.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source @out@/nix-support/utils
|
source @out@/nix-support/utils.sh
|
||||||
|
|
||||||
|
|
||||||
# Figure out if linker flags should be passed. GCC prints annoying
|
# Figure out if linker flags should be passed. GCC prints annoying
|
||||||
|
@ -4,11 +4,11 @@ if test -n "$NIX_LD_WRAPPER_START_HOOK"; then
|
|||||||
source "$NIX_LD_WRAPPER_START_HOOK"
|
source "$NIX_LD_WRAPPER_START_HOOK"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "$NIX_GLIBC_FLAGS_SET"; then
|
if test -z "$NIX_GCC_WRAPPER_FLAGS_SET"; then
|
||||||
source @out@/nix-support/add-flags
|
source @out@/nix-support/add-flags.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
source @out@/nix-support/utils
|
source @out@/nix-support/utils.sh
|
||||||
|
|
||||||
|
|
||||||
# Optionally filter out paths not refering to the store.
|
# Optionally filter out paths not refering to the store.
|
||||||
|
@ -24,6 +24,6 @@ if test -n "@binutils@"; then
|
|||||||
PATH=$PATH:@binutils@/bin
|
PATH=$PATH:@binutils@/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -n "@glibc@"; then
|
if test -n "@libc@"; then
|
||||||
PATH=$PATH:@glibc@/bin
|
PATH=$PATH:@libc@/bin
|
||||||
fi
|
fi
|
||||||
|
@ -10,44 +10,25 @@ mkdir $NIX_FIXINC_DUMMY
|
|||||||
export CPP="gcc -E"
|
export CPP="gcc -E"
|
||||||
|
|
||||||
|
|
||||||
if test "$noSysDirs" = "1"; then
|
if test "$noSysDirs" = "1" -a -e $NIX_GCC/nix-support/orig-libc; then
|
||||||
|
|
||||||
# Figure out what extra flags to pass to the gcc compilers being
|
# Figure out what extra flags to pass to the gcc compilers being
|
||||||
# generated to make sure that they use our glibc.
|
# generated to make sure that they use our glibc.
|
||||||
if test -e $NIX_GCC/nix-support/orig-glibc; then
|
extraCFlags="$(cat $NIX_GCC/nix-support/libc-cflags)"
|
||||||
glibc=$(cat $NIX_GCC/nix-support/orig-glibc)
|
extraLDFlags="$(cat $NIX_GCC/nix-support/libc-ldflags) $(cat $NIX_GCC/nix-support/libc-ldflags-before)"
|
||||||
|
|
||||||
# Ugh. Copied from gcc-wrapper/builder.sh. We can't just
|
# Use *real* header files, otherwise a limits.h is generated that
|
||||||
# source in $NIX_GCC/nix-support/add-flags, since that would
|
# does not include Glibc's limits.h (notably missing SSIZE_MAX,
|
||||||
# cause *this* GCC to be linked against the *previous* GCC.
|
# which breaks the build).
|
||||||
# Need some more modularity there.
|
export NIX_FIXINC_DUMMY=$(cat $NIX_GCC/nix-support/orig-libc)/include
|
||||||
extraCFlags="-B$glibc/lib -isystem $glibc/include"
|
|
||||||
extraLDFlags="-B$glibc/lib -L$glibc/lib -Wl,-s \
|
|
||||||
-Wl,-dynamic-linker,$glibc/lib/ld-linux.so.2"
|
|
||||||
|
|
||||||
# Oh, what a hack. I should be shot for this. In stage 1, we
|
|
||||||
# should link against the previous GCC, but not afterwards.
|
|
||||||
# Otherwise we retain a dependency. However, ld-wrapper,
|
|
||||||
# which adds the linker flags for the previous GCC, is also
|
|
||||||
# used in stage 2/3. We can prevent it from adding them by
|
|
||||||
# NIX_GLIBC_FLAGS_SET, but then gcc-wrapper will also not add
|
|
||||||
# them, thereby causing stage 1 to fail. So we use a trick to
|
|
||||||
# only set the flags in gcc-wrapper.
|
|
||||||
hook=$(pwd)/ld-wrapper-hook
|
|
||||||
echo "NIX_GLIBC_FLAGS_SET=1" > $hook
|
|
||||||
export NIX_LD_WRAPPER_START_HOOK=$hook
|
|
||||||
|
|
||||||
# Use *real* header files, otherwise a limits.h is generated
|
|
||||||
# that does not include Glibc's limits.h (notably missing
|
|
||||||
# SSIZE_MAX, which breaks the build).
|
|
||||||
export NIX_FIXINC_DUMMY=$glibc/include
|
|
||||||
fi
|
|
||||||
|
|
||||||
export NIX_EXTRA_CFLAGS=$extraCFlags
|
export NIX_EXTRA_CFLAGS=$extraCFlags
|
||||||
export NIX_EXTRA_LDFLAGS=$extraLDFlags
|
for i in $extraLDFlags; do
|
||||||
|
export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
|
||||||
|
done
|
||||||
export CFLAGS=$extraCFlags
|
export CFLAGS=$extraCFlags
|
||||||
export CXXFLAGS=$extraCFlags
|
export CXXFLAGS=$extraCFlags
|
||||||
export LDFLAGS=$extraLDFlags
|
# export LDFLAGS=$extraLDFlags
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -68,7 +49,7 @@ preConfigure() {
|
|||||||
cd ../build
|
cd ../build
|
||||||
|
|
||||||
configureScript=../$sourceRoot/configure
|
configureScript=../$sourceRoot/configure
|
||||||
configureFlags="--enable-languages=$langs --disable-libstdcxx-pch"
|
configureFlags="--enable-languages=$langs $configureFlags"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{ stdenv, fetchurl, noSysDirs
|
{ stdenv, fetchurl, noSysDirs
|
||||||
, langC ? true, langCC ? true, langF77 ? false
|
, langC ? true, langCC ? true, langF77 ? false
|
||||||
, profiledCompiler ? false
|
, profiledCompiler ? false
|
||||||
|
, staticCompiler ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert langC;
|
assert langC;
|
||||||
@ -8,15 +9,36 @@ assert langC;
|
|||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "gcc-4.1.1";
|
name = "gcc-4.1.1";
|
||||||
builder = ./builder.sh;
|
builder = ./builder.sh;
|
||||||
src = fetchurl {
|
|
||||||
url = http://nix.cs.uu.nl/dist/tarballs/gcc-4.1.1.tar.bz2;
|
src =
|
||||||
md5 = "ad9f97a4d04982ccf4fd67cb464879f3";
|
[(fetchurl {
|
||||||
};
|
url = http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-core-4.1.1.tar.bz2;
|
||||||
|
md5 = "a1b189c98aa7d7f164036bbe89b9b2a2";
|
||||||
|
})] ++
|
||||||
|
(if langCC then [(fetchurl {
|
||||||
|
url = http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-g++-4.1.1.tar.bz2;
|
||||||
|
md5 = "70c786bf8ca042e880a87fecb9e4dfcd";
|
||||||
|
})] else []) ++
|
||||||
|
(if langF77 then [(fetchurl {
|
||||||
|
url = http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-fortran-4.1.1.tar.bz2;
|
||||||
|
md5 = "b088a28a1963d16bf505262f8bfd09db";
|
||||||
|
})] else []);
|
||||||
|
|
||||||
patches =
|
patches =
|
||||||
[./pass-cxxcpp.patch]
|
[./pass-cxxcpp.patch]
|
||||||
++ (if noSysDirs then [./no-sys-dirs.patch] else []);
|
++ (if noSysDirs then [./no-sys-dirs.patch] else []);
|
||||||
|
|
||||||
inherit noSysDirs langC langCC langF77 profiledCompiler;
|
inherit noSysDirs langC langCC langF77 profiledCompiler;
|
||||||
|
|
||||||
|
configureFlags = "
|
||||||
|
--disable-multilib
|
||||||
|
--disable-libstdcxx-pch
|
||||||
|
--disable-libmudflap
|
||||||
|
--disable-libssp
|
||||||
|
";
|
||||||
|
|
||||||
|
makeFlags = if staticCompiler then "LDFLAGS=-static" else "";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://gcc.gnu.org/";
|
homepage = "http://gcc.gnu.org/";
|
||||||
license = "GPL/LGPL";
|
license = "GPL/LGPL";
|
||||||
|
@ -48,10 +48,12 @@ let
|
|||||||
|
|
||||||
binutils = pkgsDiet.binutils217;
|
binutils = pkgsDiet.binutils217;
|
||||||
|
|
||||||
gcc = import ../../development/compilers/gcc-static-4.1 {
|
gcc = import ../../development/compilers/gcc-4.1 {
|
||||||
inherit (pkgs) fetchurl stdenv;
|
inherit (pkgs) fetchurl stdenv;
|
||||||
profiledCompiler = false;
|
noSysDirs = true;
|
||||||
|
profiledCompiler = true;
|
||||||
langCC = false;
|
langCC = false;
|
||||||
|
staticCompiler = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
curl = pkgsDiet.realCurl;
|
curl = pkgsDiet.realCurl;
|
||||||
|
@ -65,11 +65,21 @@ rec {
|
|||||||
{gcc ? staticGCC, glibc, binutils, shell ? ""}:
|
{gcc ? staticGCC, glibc, binutils, shell ? ""}:
|
||||||
(import ../../build-support/gcc-wrapper) {
|
(import ../../build-support/gcc-wrapper) {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
inherit gcc binutils glibc shell;
|
inherit gcc binutils glibc shell;
|
||||||
stdenv = stdenvInitial;
|
stdenv = stdenvInitial;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
wrapGCC2 =
|
||||||
|
{gcc ? staticGCC, glibc, binutils, shell ? ""}:
|
||||||
|
(import ../../build-support/gcc-wrapper-new) {
|
||||||
|
nativeTools = false;
|
||||||
|
nativeLibc = false;
|
||||||
|
inherit gcc binutils shell;
|
||||||
|
libc = glibc;
|
||||||
|
stdenv = stdenvInitial;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
# The "fake" standard environment used to build "real" standard
|
# The "fake" standard environment used to build "real" standard
|
||||||
# environments. It consists of just the basic statically linked
|
# environments. It consists of just the basic statically linked
|
||||||
@ -140,7 +150,7 @@ rec {
|
|||||||
# statically linked tools.
|
# statically linked tools.
|
||||||
stdenvLinuxBoot2 = removeAttrs (stdenvBootFun {
|
stdenvLinuxBoot2 = removeAttrs (stdenvBootFun {
|
||||||
staticGlibc = false;
|
staticGlibc = false;
|
||||||
gcc = wrapGCC {binutils = staticBinutils; glibc = stdenvLinuxGlibc;};
|
gcc = wrapGCC2 {binutils = staticBinutils; glibc = stdenvLinuxGlibc;};
|
||||||
extraAttrs = {inherit curl; glibc = stdenvLinuxGlibc;};
|
extraAttrs = {inherit curl; glibc = stdenvLinuxGlibc;};
|
||||||
}) ["gcc" "binutils"];
|
}) ["gcc" "binutils"];
|
||||||
|
|
||||||
@ -157,7 +167,7 @@ rec {
|
|||||||
# 5. The other tools (e.g. coreutils) are still static.
|
# 5. The other tools (e.g. coreutils) are still static.
|
||||||
stdenvLinuxBoot3 = stdenvBootFun {
|
stdenvLinuxBoot3 = stdenvBootFun {
|
||||||
staticGlibc = false;
|
staticGlibc = false;
|
||||||
gcc = wrapGCC {
|
gcc = wrapGCC2 {
|
||||||
# inherit (stdenvLinuxBoot2Pkgs) binutils;
|
# inherit (stdenvLinuxBoot2Pkgs) binutils;
|
||||||
binutils = stdenvLinuxBoot2Pkgs.binutils217;
|
binutils = stdenvLinuxBoot2Pkgs.binutils217;
|
||||||
glibc = stdenvLinuxGlibc;
|
glibc = stdenvLinuxGlibc;
|
||||||
|
@ -10,7 +10,7 @@ genericStdenv {
|
|||||||
gcc = gccWrapper {
|
gcc = gccWrapper {
|
||||||
name = "gcc-native";
|
name = "gcc-native";
|
||||||
nativeTools = true;
|
nativeTools = true;
|
||||||
nativeGlibc = true;
|
nativeLibc = true;
|
||||||
nativePrefix = "/usr";
|
nativePrefix = "/usr";
|
||||||
inherit stdenv;
|
inherit stdenv;
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,7 @@ import ../generic {
|
|||||||
|
|
||||||
gcc = import ../../build-support/gcc-wrapper {
|
gcc = import ../../build-support/gcc-wrapper {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = true;
|
nativeLibc = true;
|
||||||
inherit stdenv;
|
inherit stdenv;
|
||||||
binutils =
|
binutils =
|
||||||
if stdenv.isDarwin then
|
if stdenv.isDarwin then
|
||||||
|
@ -95,9 +95,9 @@ rec {
|
|||||||
|
|
||||||
NIX_GCC = import ../build-support/gcc-wrapper {
|
NIX_GCC = import ../build-support/gcc-wrapper {
|
||||||
inherit stdenv;
|
inherit stdenv;
|
||||||
glibc = dietlibc;
|
libc = dietlibc;
|
||||||
inherit (gcc) gcc binutils name nativeTools nativePrefix;
|
inherit (gcc) gcc binutils name nativeTools nativePrefix;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
isDietLibC = true;
|
isDietLibC = true;
|
||||||
@ -536,7 +536,7 @@ rec {
|
|||||||
|
|
||||||
dietgcc = import ../build-support/gcc-wrapper {
|
dietgcc = import ../build-support/gcc-wrapper {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
gcc = gcc34;
|
gcc = gcc34;
|
||||||
#inherit (stdenv.gcc) binutils glibc;
|
#inherit (stdenv.gcc) binutils glibc;
|
||||||
inherit (gcc34) binutils;
|
inherit (gcc34) binutils;
|
||||||
@ -555,7 +555,7 @@ rec {
|
|||||||
g77 = import ../build-support/gcc-wrapper {
|
g77 = import ../build-support/gcc-wrapper {
|
||||||
name = "g77";
|
name = "g77";
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
gcc = import ../development/compilers/gcc-3.3 {
|
gcc = import ../development/compilers/gcc-3.3 {
|
||||||
inherit fetchurl stdenv noSysDirs;
|
inherit fetchurl stdenv noSysDirs;
|
||||||
langF77 = true;
|
langF77 = true;
|
||||||
@ -586,7 +586,7 @@ rec {
|
|||||||
|
|
||||||
gcc40arm = import ../build-support/gcc-cross-wrapper {
|
gcc40arm = import ../build-support/gcc-cross-wrapper {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
cross = "arm-linux";
|
cross = "arm-linux";
|
||||||
gcc = import ../development/compilers/gcc-4.0-cross {
|
gcc = import ../development/compilers/gcc-4.0-cross {
|
||||||
inherit fetchurl stdenv noSysDirs;
|
inherit fetchurl stdenv noSysDirs;
|
||||||
@ -603,7 +603,7 @@ rec {
|
|||||||
|
|
||||||
gcc40mips = import ../build-support/gcc-cross-wrapper {
|
gcc40mips = import ../build-support/gcc-cross-wrapper {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
cross = "mips-linux";
|
cross = "mips-linux";
|
||||||
gcc = gcc40mipsboot;
|
gcc = gcc40mipsboot;
|
||||||
#inherit (stdenv.gcc) glibc;
|
#inherit (stdenv.gcc) glibc;
|
||||||
@ -623,7 +623,7 @@ rec {
|
|||||||
|
|
||||||
gcc40sparc = import ../build-support/gcc-cross-wrapper {
|
gcc40sparc = import ../build-support/gcc-cross-wrapper {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
cross = "sparc-linux";
|
cross = "sparc-linux";
|
||||||
gcc = import ../development/compilers/gcc-4.0-cross {
|
gcc = import ../development/compilers/gcc-4.0-cross {
|
||||||
inherit fetchurl stdenv noSysDirs;
|
inherit fetchurl stdenv noSysDirs;
|
||||||
@ -722,7 +722,7 @@ rec {
|
|||||||
gcj = import ../build-support/gcc-wrapper/default2.nix {
|
gcj = import ../build-support/gcc-wrapper/default2.nix {
|
||||||
name = "gcj";
|
name = "gcj";
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
gcc = import ../development/compilers/gcc-4.0 {
|
gcc = import ../development/compilers/gcc-4.0 {
|
||||||
inherit fetchurl stdenv noSysDirs;
|
inherit fetchurl stdenv noSysDirs;
|
||||||
langJava = true;
|
langJava = true;
|
||||||
@ -786,7 +786,7 @@ rec {
|
|||||||
|
|
||||||
wrapGCC = baseGCC: import ../build-support/gcc-wrapper {
|
wrapGCC = baseGCC: import ../build-support/gcc-wrapper {
|
||||||
nativeTools = false;
|
nativeTools = false;
|
||||||
nativeGlibc = false;
|
nativeLibc = false;
|
||||||
gcc = baseGCC;
|
gcc = baseGCC;
|
||||||
inherit stdenv binutils glibc;
|
inherit stdenv binutils glibc;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user