Created
September 15, 2012 15:32
-
-
Save shurizzle/3728481 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export ROOT="${HOME}/wii-linux" | |
export BUILDDIR="${PWD}" | |
export LFS_TGT=powerpc-linux | |
export PATH="${PATH}:${BUILDDIR}/tools/bin:${ROOT}/bin" | |
( | |
wget -c 'http://www.linuxfromscratch.org/patches/lfs/7.2/binutils-2.22-build_fix-1.patch' | |
wget -c 'http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.gz' | |
wget -c 'http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.1.tar.xz' | |
wget -c 'http://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.xz' | |
wget -c 'http://ftp.gnu.org/gnu/mpc/mpc-1.0.1.tar.gz' | |
wget -c 'http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.gz' | |
wget -c 'http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.4.tar.bz2' | |
wget -c 'http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.xz' | |
) || exit 1 | |
( | |
tar xvf binutils-2.22.tar.gz | |
cd binutils-2.22 | |
patch -Np1 -i ../binutils-2.22-build_fix-1.patch || exit 1 | |
mkdir -v ../binutils-build | |
cd ../binutils-build || exit 1 | |
../binutils-2.22/configure \ | |
--prefix="${ROOT}" \ | |
--with-sysroot="${ROOT}" \ | |
--with-lib-path="${ROOT}/lib" \ | |
--target=$LFS_TGT \ | |
--disable-nls \ | |
--disable-werror || exit 1 | |
make all install || exit 1 | |
) || exit 1 | |
( | |
tar -zxf gcc-4.7.1.tar.gz || exit 1 | |
cd gcc-4.7.1 || exit 1 | |
tar -Jxf ../mpfr-3.1.1.tar.xz || exit 1 | |
mv -v mpfr-3.1.1 mpfr | |
tar -Jxf ../gmp-5.0.5.tar.xz || exit 1 | |
mv -v gmp-5.0.5 gmp | |
tar -zxf ../mpc-1.0.1.tar.gz || exit 1 | |
mv -v mpc-1.0.1 mpc | |
for file in $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h) | |
do | |
cp -uv $file{,.orig} | |
sed -e 's@/lib\(64\)\?\(32\)\?/ld@'"${ROOT}"'&@g' \ | |
-e 's@/usr@'"${ROOT}"'@g' $file.orig > $file | |
echo ' | |
#undef STANDARD_STARTFILE_PREFIX_1 | |
#undef STANDARD_STARTFILE_PREFIX_2 | |
#define STANDARD_STARTFILE_PREFIX_1 "'"${ROOT}/lib/"'" | |
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file | |
touch $file.orig | |
done | |
sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure | |
mkdir -v ../gcc-build | |
cd ../gcc-build || exit 1 | |
../gcc-4.7.1/configure \ | |
--target=$LFS_TGT \ | |
--prefix="${ROOT}" \ | |
--with-sysroot="$ROOT" \ | |
--with-newlib \ | |
--without-headers \ | |
--with-local-prefix="${ROOT}" \ | |
--with-native-system-header-dir="${ROOT}/include" \ | |
--disable-nls \ | |
--disable-shared \ | |
--disable-multilib \ | |
--disable-decimal-float \ | |
--disable-threads \ | |
--disable-libmudflap \ | |
--disable-libssp \ | |
--disable-libgomp \ | |
--disable-libquadmath \ | |
--enable-languages=c \ | |
--with-mpfr-include=$(pwd)/../gcc-4.7.1/mpfr/src \ | |
--with-mpfr-lib=$(pwd)/mpfr/src/.libs || exit 1 | |
make all install || exit 1 | |
ln -vs "${ROOT}/lib/gcc/powerpc-linux/4.7.1/libgcc.a" `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'` | |
) || exit 1 | |
( | |
tar -jxf linux-3.5.4.tar.bz2 || exit 1 | |
cd linux-3.5.4 || exit 1 | |
cp arch/powerpc/configs/wii_defconfig .config || exit 1 | |
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- mrproper || exit 1 | |
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- headers_check || exit 1 | |
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- INSTALL_HDR_PATH=dest headers_install || exit 1 | |
mkdir "${ROOT}/include" | |
cp -rv dest/include/* "${ROOT}/include" || exit 1 | |
) || exit 1 | |
( | |
tar -Jxf glibc-2.16.0.tar.xz || exit 1 | |
cd glibc-2.16.0 || exit 1 | |
sed -i 's/ -lgcc_s//' Makeconfig | |
mkdir -v ../glibc-build | |
cd ../glibc-build || exit 1 | |
../glibc-2.16.0/configure \ | |
--prefix="${ROOT}" \ | |
--host=$LFS_TGT \ | |
--build=$(../glibc-2.16.0/scripts/config.guess) \ | |
--disable-profile \ | |
--enable-add-ons \ | |
--enable-kernel=3.5.4 \ | |
--with-headers="${ROOT}/include" \ | |
libc_cv_forced_unwind=yes \ | |
libc_cv_ctors_header=yes \ | |
libc_cv_c_cleanup=yes | |
make all install | |
) || exit 1 | |
( | |
rm -rf gcc-4.7.1 gcc-build | |
tar -zxf gcc-4.7.1.tar.gz || exit 1 | |
cd gcc-4.7.1 || exit 1 | |
tar -Jxf ../mpfr-3.1.1.tar.xz || exit 1 | |
mv -v mpfr-3.1.1 mpfr | |
tar -Jxf ../gmp-5.0.5.tar.xz || exit 1 | |
mv -v gmp-5.0.5 gmp | |
tar -zxf ../mpc-1.0.1.tar.gz || exit 1 | |
mv -v mpc-1.0.1 mpc | |
for file in $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h) | |
do | |
cp -uv $file{,.orig} | |
sed -e 's@/lib\(64\)\?\(32\)\?/ld@'"${ROOT}"'&@g' \ | |
-e 's@/usr@'"${ROOT}"'@g' $file.orig > $file | |
echo ' | |
#undef STANDARD_STARTFILE_PREFIX_1 | |
#undef STANDARD_STARTFILE_PREFIX_2 | |
#define STANDARD_STARTFILE_PREFIX_1 "'"${ROOT}/lib/"'" | |
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file | |
touch $file.orig | |
done | |
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h | |
cp -v gcc/Makefile.in{,.tmp} | |
sed 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp > gcc/Makefile.in | |
mkdir -v ../gcc-build | |
cd ../gcc-build || exit 1 | |
../gcc-4.7.1/configure \ | |
--target=$LFS_TGT \ | |
--prefix="${ROOT}" \ | |
--with-sysroot=$LFS \ | |
--with-local-prefix="${ROOT}" \ | |
--with-native-system-header-dir="${ROOT}/include" \ | |
--disable-nls \ | |
--enable-shared \ | |
--disable-multilib \ | |
--disable-bootstrap \ | |
--enable-threads=posix \ | |
--disable-libgomp \ | |
--enable-languages=c,c++ \ | |
--with-mpfr-include=$(pwd)/../gcc-4.7.1/mpfr/src \ | |
--with-mpfr-lib=$(pwd)/mpfr/src/.libs || exit 1 | |
make all install || exit 1 | |
) || exit 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment