Big fixes in the cross build:
- Before this changes, cflags and ldflags for the native and the cross compiler got mixed. Not all the gcc-wrapper/gcc-cross-wrapper variables are independant now, but enough, I think. - Fixed the generic stdenv expression, which did a big mess on buildInputs and buildNativeInputs. Now it distinguishes when there is a stdenvCross or not. Maybe we should have a single stdenv and forget about the stdenvCross adapter - this could end in a stdenv a bit complex, but simpler than the generic stdenv + adapter. - Added basic support in pkgconfig for cross-builds: a single PKG_CONFIG_PATH now works for both the cross and the native compilers, but I think this should work well for most cases I can think of. - I tried to fix the guile expression to cross-biuld; guile is built, but not its manual, so the derivation still fails. Guile requires patching to cross-build, as far as I understnad. - Made the glibcCross build to be done through the usage of a gcc-cross-wrapper over the gcc-cross-stage-static, instead of using it directly. - Trying to make physfs (a neverball dependency) cross build. - Updated the gcc expression to support building a cross compiler without getting derivation variables mixed with those of the stdenvCross. svn path=/nixpkgs/branches/stdenv-updates/; revision=18534
This commit is contained in:
@@ -40,7 +40,7 @@ if test "$noSysDirs" = "1"; then
|
||||
export NIX_EXTRA_LDFLAGS="$NIX_EXTRA_LDFLAGS -Wl,$i"
|
||||
done
|
||||
|
||||
if test -n "$crossConfig"; then
|
||||
if test -n "$targetConfig"; then
|
||||
if test -z "$crossStageStatic"; then
|
||||
extraXCFlags="-B${glibcCross}/lib -idirafter ${glibcCross}/include"
|
||||
extraXLDFlags="-L${glibcCross}/lib"
|
||||
@@ -71,7 +71,7 @@ if test "$noSysDirs" = "1"; then
|
||||
)
|
||||
fi
|
||||
|
||||
if test -n "$crossConfig" -a "$crossStageStatic" == 1; then
|
||||
if test -n "$targetConfig" -a "$crossStageStatic" == 1; then
|
||||
# We don't want the gcc build to assume there will be a libc providing
|
||||
# limits.h in this stagae
|
||||
makeFlagsArray=( \
|
||||
@@ -86,7 +86,7 @@ if test "$noSysDirs" = "1"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$crossConfig"; then
|
||||
if test -n "$targetConfig"; then
|
||||
# The host strip will destroy everything in the target binaries otherwise
|
||||
dontStrip=1
|
||||
fi
|
||||
@@ -127,7 +127,7 @@ postInstall() {
|
||||
}
|
||||
|
||||
|
||||
if test -z "$crossConfig"; then
|
||||
if test -z "$targetConfig"; then
|
||||
if test -z "$profiledCompiler"; then
|
||||
buildFlags="bootstrap $buildFlags"
|
||||
else
|
||||
|
||||
@@ -78,7 +78,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
inherit noSysDirs profiledCompiler staticCompiler crossStageStatic
|
||||
binutilsCross glibcCross;
|
||||
crossConfig = if (cross != null) then cross.config else null;
|
||||
targetConfig = if (cross != null) then cross.config else null;
|
||||
|
||||
buildInputs = [texinfo gmp mpfr]
|
||||
++ (optionals langTreelang [bison flex])
|
||||
|
||||
Reference in New Issue
Block a user