* Patched gcc so that it doesn't search the standard include directories

(/usr/include, /usr/local/include, etc.).

* Immediate pay-off: we see that the glibc header files depend on the Linux
  kernel header files.  So I've added a package that extracts the appropriate
  headers from Linux 2.4.22.

svn path=/nixpkgs/trunk/; revision=361
This commit is contained in:
Eelco Dolstra 2003-08-26 15:25:26 +00:00
parent 3638af3cab
commit e83fe5ee78
7 changed files with 52 additions and 4 deletions

View File

@ -4,11 +4,23 @@
export PATH=$binutils/bin:$PATH
tar xvfj $src || exit 1
# Disable the standard include directories.
cd gcc-* || exit 1
cat >> ./gcc/cppdefault.h <<EOF
#undef LOCAL_INCLUDE_DIR
#undef SYSTEM_INCLUDE_DIR
#undef STANDARD_INCLUDE_DIR
EOF
cd .. || exit 1
# Configure.
mkdir build || exit 1
cd build || exit 1
../gcc-*/configure --prefix=$out --enable-languages=c,c++ || exit 1
extraflags="$NIX_CFLAGS $NIX_LDFLAGS -Wl,-s"
# Patch some of the makefiles to force linking against our own glibc.
extraflags="$NIX_CFLAGS $NIX_LDFLAGS -Wl,-s -isystem $linux/include"
mf=Makefile
sed \
@ -22,5 +34,14 @@ sed \
< $mf > $mf.tmp || exit 1
mv $mf.tmp $mf
# Patch gcc/Makefile to prevent fixinc.sh from "fixing" system header files
# from /usr/include.
mf=gcc/Makefile
sed \
-e "s^NATIVE_SYSTEM_HEADER_DIR =\(.*\)^NATIVE_SYSTEM_HEADER_DIR = /fixinc-disabled^" \
< $mf > $mf.tmp || exit 1
mv $mf.tmp $mf
# Build and install.
make bootstrap || exit 1
make install || exit 1

View File

@ -10,5 +10,6 @@ Package(
, ("stdenv", IncludeFix("stdenv-linux/stdenv-nativetools.fix"))
, ("binutils", IncludeFix("binutils/binutils.fix"))
, ("linux", IncludeFix("linux-headers/linux-headers.fix"))
]
)

View File

@ -0,0 +1,11 @@
#! /bin/sh
. $stdenv/setup || exit 1
mkdir $out || exit 1
cd $out || exit 1
tar xvfj $src 'linux-*/include/linux' 'linux-*/include/asm-i386' || exit 1
mv linux-*/include . || exit 1
rmdir linux-* || exit 1
cd include || exit 1
ln -s asm-i386 asm || exit 1

View File

@ -0,0 +1,13 @@
Package(
[ ("name", "linux-headers-2.4.22-i386")
, ("build", Relative("linux-headers/linux-headers-build.sh"))
, ("src", Call(IncludeFix("fetchurl/fetchurl.fix"),
[ ("url", "ftp://ftp.nl.kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2")
, ("md5", "75dc85149b06ac9432106b8941eb9f7b")
]))
, ("stdenv", IncludeFix("stdenv-linux/stdenv-nativetools.fix"))
]
)

View File

@ -3,7 +3,7 @@ export SHELL=@SHELL@
. @BASEENV@/setup
export NIX_CFLAGS="-isystem @GLIBC@/include $NIX_CFLAGS"
export NIX_CFLAGS="-isystem @GLIBC@/include -isystem @LINUX@/include $NIX_CFLAGS"
export NIX_LDFLAGS="-L@GLIBC@/lib -Wl,-dynamic-linker,@GLIBC@/lib/ld-linux.so.2,-rpath,@GLIBC@/lib $NIX_LDFLAGS -L@GCC@/lib -Wl,-rpath,@GCC@/lib"
export NIX_CC=@CC@
export NIX_CXX=@CXX@

View File

@ -23,6 +23,7 @@ echo "########## $p"
sed \
-e s^@GLIBC\@^$glibc^g \
-e s^@LINUX\@^$linux^g \
-e s^@GCC\@^$gcc^g \
-e s^@CC\@^$cc^g \
-e s^@CXX\@^$cxx^g \

View File

@ -5,6 +5,7 @@ Package(
, ("setup", Relative("stdenv-linux/setup.sh"))
, ("baseenv", IncludeFix("baseenv/baseenv.fix"))
, ("glibc", IncludeFix("glibc/glibc.fix"))
, ("linux", IncludeFix("linux-headers/linux-headers.fix"))
, ("tools",
[ IncludeFix("coreutils/coreutils.fix")
@ -21,7 +22,7 @@ Package(
, IncludeFix("bash/bash.fix")
])
, ("gcc", IncludeFix("gcc/gcc.fix"))
, ("shell", IncludeFix("bash/bash.fix"))
, ("gcc", IncludeFix("gcc/gcc.fix"))
, ("shell", IncludeFix("bash/bash.fix"))
]
)