diff -u Crosstool-0.30~/all.sh Crosstool-0.30/all.sh --- Crosstool-0.30~/all.sh 2005-04-05 19:59:16.000000000 +0200 +++ Crosstool-0.30/all.sh 2005-04-05 21:20:28.000000000 +0200 @@ -19,7 +19,11 @@ # When building a cygwin target LINUX_DIR and GLIBC_DIR are not needed. if test "${CYGWIN_DIR}" = ""; then - test -z "${LINUX_DIR}" && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory" + if test -z "${LINUX_SANITIZED_HEADER_DIR}" ; then + test -z "${LINUX_DIR}" && abort "Please set either LINUX_DIR or LINUX_SANITIZED_HEADER_DIR to the bare filename of the tarball or directory containing the kernel headers" + else + test -n "${LINUX_DIR}" && echo "You set both LINUX_DIR and LINUX_SANITIZED_HEADER_DIR - ignoring LINUX_DIR for the build" + fi test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" fi @@ -65,10 +69,10 @@ PREFIX=${PREFIX-$RESULT_TOP/$TARGET/$TOOLCOMBO} export TOOLCOMBO -export PREFIX +export PREFIX=`cd ${PREFIX};pwd` export BUILD_DIR -export SRC_DIR -export TARBALLS_DIR +export SRC_DIR=`cd ${SRC_DIR};pwd` +export TARBALLS_DIR=`cd ${TARBALLS_DIR};pwd` export TOP_DIR # Download/unpack/patch tarballs, if desired diff -u Crosstool-0.30~/crosstool.sh Crosstool-0.30/crosstool.sh --- Crosstool-0.30~/crosstool.sh 2005-04-02 11:55:38.000000000 +0200 +++ Crosstool-0.30/crosstool.sh 2005-04-05 21:26:27.000000000 +0200 @@ -25,9 +25,16 @@ test -z "${BINUTILS_DIR}" && abort "Please set BINUTILS_DIR to the bare filename of the binutils tarball or directory" test -z "${GCC_DIR}" && abort "Please set GCC_DIR to the bare filename of the gcc tarball or directory" test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" -test -z "${LINUX_DIR}" && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory" test -z "${TARGET}" && abort "Please set TARGET to the Gnu target identifier (e.g. pentium-linux)" test -z "${TARGET_CFLAGS}" && abort "Please set TARGET_CFLAGS to any compiler flags needed when building glibc (-O recommended)" +if test -z "${LINUX_SANITIZED_HEADER_DIR}" ; then + test -z "${LINUX_DIR}" && abort "Please set either LINUX_DIR or LINUX_SANITIZED_HEADER_DIR to the bare filename of the tarball or directory containing the kernel headers" + LINUX_HEADER_DIR="${LINUX_DIR}" +else + test -n "${LINUX_DIR}" && echo "You set both LINUX_DIR and LINUX_SANITIZED_HEADER_DIR - ignoring LINUX_DIR" + LINUX_HEADER_DIR="${LINUX_SANITIZED_HEADER_DIR}" +fi + # Seventeen or so are optional test -z "${BINUTILS_EXTRA_CONFIG}" && echo "BINUTILS_EXTRA_CONFIG not set, so not passing any extra options to binutils' configure script" @@ -142,7 +149,7 @@ SRC_DIR=`cd $SRC_DIR; pwd` BINUTILS_DIR=`cd ${SRC_DIR}/${BINUTILS_DIR}; pwd` GCC_DIR=`cd ${SRC_DIR}/${GCC_DIR}; pwd` -LINUX_DIR=`cd ${SRC_DIR}/${LINUX_DIR}; pwd` +LINUX_HEADER_DIR=`cd ${SRC_DIR}/${LINUX_HEADER_DIR}; pwd` GLIBC_DIR=`cd ${SRC_DIR}/${GLIBC_DIR}; pwd` # If user isn't doing a canadian cross, add the target compiler's bin to @@ -194,9 +201,18 @@ echo "Building for --target=$TARGET, --prefix=$PREFIX" #--------------------------------------------------------- -echo Prepare kernel headers +# Use sanitized headers, if available +if test -z "$LINUX_SANITIZED_HEADER_DIR" ; then + echo Prepare kernel headers +else + echo Copy sanitized headers +fi -cd $LINUX_DIR +cd $LINUX_HEADER_DIR +mkdir -p $HEADERDIR + +# no indentation for now because indentation levels are rising too high +if test -z "$LINUX_SANITIZED_HEADER_DIR" ; then if test -f "$KERNELCONFIG" ; then cp $KERNELCONFIG .config @@ -233,11 +249,12 @@ ;; *) abort "Unsupported kernel version $KERNEL_VERSION.$KERNEL_PATCHLEVEL" esac +cp -r include/asm-generic $HEADERDIR/asm-generic + +fi # test -z "$LINUX_SANITIZED_HEADER_DIR" -mkdir -p $HEADERDIR cp -r include/linux $HEADERDIR cp -r include/asm-${ARCH} $HEADERDIR/asm -cp -r include/asm-generic $HEADERDIR/asm-generic cd $BUILD_DIR diff -u Crosstool-0.30~/getandpatch.sh Crosstool-0.30/getandpatch.sh --- Crosstool-0.30~/getandpatch.sh 2005-04-05 19:38:39.000000000 +0200 +++ Crosstool-0.30/getandpatch.sh 2005-04-05 21:36:43.000000000 +0200 @@ -19,7 +19,8 @@ # When building a cygwin target the following are not needed. if test "${CYGWIN_DIR}" = ""; then test -z "${GLIBC_DIR}" && abort "Please set GLIBC_DIR to the bare filename of the glibc tarball or directory" - test -z "${LINUX_DIR}" && abort "Please set LINUX_DIR to the bare filename of the kernel tarball or directory" + test -z "${LINUX_SANITIZED_HEADER_DIR}" && echo "Not downloading linux-libc-headers. Set LINUX_SANITIZED_HEADER_DIR to do so" + test -z "${LINUX_DIR}" && echo "Not downloading kernel sources. Set LINUX_DIR if you want to do so" # And one is derived. GLIBCTHREADS_FILENAME=`echo $GLIBC_DIR | sed 's/glibc-/glibc-linuxthreads-/'` fi @@ -201,8 +202,11 @@ case $LINUX_DIR in *2.4*) getUnpackAndPatch http://www.kernel.org/pub/linux/kernel/v2.4/$LINUX_DIR.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.4/$LINUX_DIR.tar.gz ;; *2.6*) getUnpackAndPatch http://www.kernel.org/pub/linux/kernel/v2.6/$LINUX_DIR.tar.bz2 http://www.kernel.org/pub/linux/kernel/v2.6/$LINUX_DIR.tar.gz ;; + "") ;; *) abort "unknown version $LINUX_DIR of linux, expected 2.4 or 2.6 in name?" ;; esac + # Fetch linux-libc-headers, if requested + test -n "${LINUX_SANITIZED_HEADER_DIR}" && getUnpackAndPatch http://ep09.pld-linux.org/~mmazur/linux-libc-headers/${LINUX_SANITIZED_HEADER_DIR}.tar.bz2 # Glibc addons must come after glibc getUnpackAndPatch ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.bz2 ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCTHREADS_FILENAME.tar.gz test x$GLIBCCRYPT_FILENAME = x || getUnpackAndPatch ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCCRYPT_FILENAME.tar.gz ftp://ftp.gnu.org/pub/gnu/glibc/$GLIBCCRYPT_FILENAME.tar.bz2