diff --git a/README b/README new file mode 100644 index 0000000..2a1d23b --- /dev/null +++ b/README @@ -0,0 +1,6 @@ +An evolving effort to automate generation of a XOmB toolchain and crosscompiler. + +currently dies during the second GCC phase with the bizarre error: +"/home/wolfwood/repos/buildtools/build/gcc-obj/./gcc/include-fixed/time.h:12: error: conflicting types for 'clock_t' +/home/wolfwood/repos/buildtools/local/x86_64-pc-xomb/include/sys/types.h:104: note: previous declaration of 'clock_t' was here +" diff --git a/build.sh b/build.sh index 7e818a4..ef0b812 100755 --- a/build.sh +++ b/build.sh @@ -11,47 +11,51 @@ GMP_VER=5.0.1 MPFR_VER=2.4.2 NEWLIB_VER=1.18.0 +WFLAGS=-c + +export PATH=$PREFIX/bin:$PATH + # Fetch each package -# FETCH BINUTILS -wget http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.gz +echo "FETCH BINUTILS" +wget $WFLAGS http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VER}.tar.gz tar -xf binutils-${BINUTILS_VER}.tar.gz -# FETCH GCC -wget http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-core-${GCC_VER}.tar.gz +echo "FETCH GCC" +wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-core-${GCC_VER}.tar.gz tar -xf gcc-core-${GCC_VER}.tar.gz -wget http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-g++-${GCC_VER}.tar.gz +wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-g++-${GCC_VER}.tar.gz tar -xf gcc-g++-${GCC_VER}.tar.gz -wget http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-fortran-${GCC_VER}.tar.gz +wget $WFLAGS http://ftp.gnu.org/gnu/gcc/gcc-${GCC_VER}/gcc-fortran-${GCC_VER}.tar.gz tar -xf gcc-fortran-${GCC_VER}.tar.gz -# FETCH GMP -wget http://ftp.gnu.org/gnu/gmp/gmp-${GMP_VER}.tar.gz +echo "FETCH GMP" +wget $WFLAGS http://ftp.gnu.org/gnu/gmp/gmp-${GMP_VER}.tar.gz tar -xf gmp-${GMP_VER}.tar.gz -# FETCH MPFR -wget http://ftp.gnu.org/gnu/mpfr/mpfr-${MPFR_VER}.tar.gz +echo "FETCH MPFR" +wget $WFLAGS http://ftp.gnu.org/gnu/mpfr/mpfr-${MPFR_VER}.tar.gz tar -xf mpfr-${MPFR_VER}.tar.gz -# FETCH NEWLIB -wget ftp://sources.redhat.com/pub/newlib/newlib-${NEWLIB_VER}.tar.gz +echo "FETCH NEWLIB" +wget $WFLAGS ftp://sources.redhat.com/pub/newlib/newlib-${NEWLIB_VER}.tar.gz tar -xf newlib-${NEWLIB_VER}.tar.gz # Patch and push new code into each package -# PATCH BINUTILS -patch -p0 -d binutils-${BINUTILS_VER} < ../binutils-xomb.patch +echo "PATCH BINUTILS" +patch -p0 -d binutils-${BINUTILS_VER} < ../binutils-xomb.patch || exit cp -r ../binutils-files/* binutils-${BINUTILS_VER}/. -# PATCH GCC -patch -p0 -d gcc-${GCC_VER} < ../gcc-xomb.patch +echo "PATCH GCC" +patch -p0 -d gcc-${GCC_VER} < ../gcc-xomb.patch || exit cp -r ../gcc-files/* gcc-${GCC_VER}/. -# PATCH NEWLIB -patch -p0 -d newlib-${NEWLIB_VER} < ../newlib-xomb.patch +echo "PATCH NEWLIB" +patch -p0 -d newlib-${NEWLIB_VER} < ../newlib-xomb.patch || exit cp -r ../newlib-files/* newlib-${NEWLIB_VER}/. -# MAKE OBJECT DIRECTORIES +echo "MAKE OBJECT DIRECTORIES" mkdir -p binutils-obj mkdir -p gcc-obj mkdir -p newlib-obj @@ -60,48 +64,61 @@ mkdir -p mpfr-obj # Compile all packages -# COMPILE BINUTILS +echo "COMPILE BINUTILS" cd binutils-obj -../binutils-${BINUTILS_VER}/configure --target=$TARGET --prefix=$PREFIX -make -make install +../binutils-${BINUTILS_VER}/configure --target=$TARGET --prefix=$PREFIX || exit +make || exit +make install || exit cd .. -# COMPILE GMP +echo "COMPILE GMP" cd gmp-obj -../gmp-${GMP_VER}/configure --prefix=$PREFIX --disable-shared -make -make check -make install +../gmp-${GMP_VER}/configure --prefix=$PREFIX --disable-shared || exit +make || exit +make check || exit +make install || exit cd .. -# COMPILE MPFR +echo "COMPILE MPFR" cd mpfr-obj ../mpfr-${MPFR_VER}/configure --prefix=$PREFIX --with-gmp=$PREFIX --disable-shared -make -make check -make install +make || exit +make check || exit +make install || exit cd .. -# COMPILE GCC +echo "AUTOCONF GCC" +cd gcc-${GCC_VER}/libstdc++-v3 +#autoconf || exit +cd ../.. + +echo "COMPILE GCC" cd gcc-obj -../gcc-${GCC_VER}/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++,fortran --disable-libssp --with-gmp=$PREFIX --with-mpfr=$PREFIX --disable-nls --with-headers=$PREFIX/include --with-newlib -make all-gcc -make all-target-libgcc -make install-gcc -make install-target-libgcc +../gcc-${GCC_VER}/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++,fortran --disable-libssp --with-gmp=$PREFIX --with-mpfr=$PREFIX --disable-nls --with-headers=$PREFIX/include --with-newlib || exit +make all-gcc || exit +make install-gcc || exit cd .. -# COMPILE NEWLIB-XOMB +echo "AUTOCONF NEWLIB-XOMB" cd newlib-${NEWLIB_VER}/newlib/libc/sys -./configure -cd ../../../.. +autoconf || exit +cd xomb +autoreconf || exit +cd ../../../../.. -# COMPILE NEWLIB +echo "CONFIGURE NEWLIB" cd newlib-obj -../newlib-${NEWLIB_VER}/configure --target=$TARGET --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX -make all -make install +../newlib-${NEWLIB_VER}/configure --target=$TARGET --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX || exit + +echo "COMPILE NEWLIB" +make || exit +make install || exit cd .. +echo "PASS-2 COMPILE GCC" +cd gcc-obj +#make all-target-libgcc +#make install-target-libgcc +make || exit +make install || exit cd .. diff --git a/gcc-xomb.patch b/gcc-xomb.patch index 41679cc..b07f18e 100644 --- a/gcc-xomb.patch +++ b/gcc-xomb.patch @@ -3,7 +3,7 @@ @@ -1240,6 +1240,7 @@ case $os in | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ + | -xomb* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ diff --git a/newlib-xomb.patch b/newlib-xomb.patch index 18233c2..7fd679c 100644 --- a/newlib-xomb.patch +++ b/newlib-xomb.patch @@ -25,7 +25,7 @@ sys_dir=w65 ;; + x86_64-*-xomb*) -+ machine_dir=xomb ++ sys_dir=xomb + ;; xscale-*-*) sys_dir=arm