diff options
| author | Oxore <oxore@protonmail.com> | 2022-06-18 20:34:10 +0300 |
|---|---|---|
| committer | Oxore <oxore@protonmail.com> | 2022-06-18 20:34:10 +0300 |
| commit | 18b217ea11efa74e3fcf04abaaae1ebd32210440 (patch) | |
| tree | 7a7b9d44181480ce241ef225ff28f04ab63b4e84 | |
| parent | 5cddfc7214117a2a8e5c4a11429a33dde50edd19 (diff) | |
Compile with soft floating point support
| -rw-r--r-- | 3-build-binutils.sh | 52 | ||||
| -rw-r--r-- | 4-build-gcc-stage-1.sh | 81 | ||||
| -rw-r--r-- | 5-build-newlib.sh | 52 | ||||
| -rw-r--r-- | Readme.md | 4 |
4 files changed, 132 insertions, 57 deletions
diff --git a/3-build-binutils.sh b/3-build-binutils.sh index f3f6610..4d7eeeb 100644 --- a/3-build-binutils.sh +++ b/3-build-binutils.sh @@ -1,18 +1,44 @@ #!/bin/sh source ./common +options_do_configure=1 +options_do_build=1 +options_do_install=1 + +if [ "$0" == "-i" ]; then + options_do_configure= + options_do_build= + options_do_install=1 +fi + mkdir -p build/binutils-$binutils_ver cd build/binutils-$binutils_ver -echo "Configuring binutils-${binutils_ver}" -../../unpacked/binutils-$binutils_ver/configure --prefix=$prefix_dir --target=$target --disable-multilib >configure.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less configure.log; exit 1; fi -echo "Building binutils-$binutils_ver" -make -j$jobs >build.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less build.log; exit 1; fi -echo "Installing binutils-$binutils_ver" -make install >install.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less install.log; exit 1; fi -echo Done with binutils-$binutils_ver +if [ -n "$options_do_configure" ]; then + echo "Configuring binutils-${binutils_ver}" + ../../unpacked/binutils-$binutils_ver/configure \ + --prefix=$prefix_dir \ + --target=$target \ + --disable-multilib \ + --with-float=soft \ + --enable-soft-float \ + >configure.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less configure.log; exit 1; fi +fi +if [ -n "$options_do_build" ]; then + echo "Building binutils-$binutils_ver" + make -j$jobs >build.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less build.log; exit 1; fi +fi +if [ -n "$options_do_install" ]; then + echo "Installing binutils-$binutils_ver" + make install >install.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less install.log; exit 1; fi +fi +if [ -z "$options_do_configure$options_do_build$options_do_install" ]; then + echo "Nothing to be done for binutils-$binutils_ver" +else + echo "Done with binutils-$binutils_ver" +fi diff --git a/4-build-gcc-stage-1.sh b/4-build-gcc-stage-1.sh index cdcfe95..ab35497 100644 --- a/4-build-gcc-stage-1.sh +++ b/4-build-gcc-stage-1.sh @@ -1,39 +1,58 @@ #!/bin/sh source ./common +options_do_configure=1 +options_do_build=1 +options_do_install=1 + +if [ "$0" == "-i" ]; then + options_do_configure= + options_do_build= + options_do_install=1 +fi + ln -Tsfrv unpacked/mpc-$mpc_ver unpacked/gcc-$gcc_ver/mpc ln -Tsfrv unpacked/mpfr-$mpfr_ver unpacked/gcc-$gcc_ver/mpfr ln -Tsfrv unpacked/isl-$isl_ver unpacked/gcc-$gcc_ver/isl mkdir -p build/gcc-$gcc_ver cd build/gcc-$gcc_ver -echo "Configuring gcc-${gcc_ver} (stage 1)" -# See https://gist.githubusercontent.com/lirenlin/a40d4b510799fa31acba/raw/0b6d0bc74b21661f6cbbcfbda86b3fea25b5ce77/build-gcc.md -../../unpacked/gcc-$gcc_ver/configure \ - --prefix=$prefix_dir \ - --target=$target \ - --with-newlib \ - --with-gnu-as \ - --with-gnu-ld \ - --enable-lto \ - --enable-linker-build-id \ - --disable-libmudflap \ - --disable-libgomp \ - --disable-libssp \ - --disable-libstdcxx-pch \ - --enable-multiarch \ - --disable-multilib \ - --enable-languages=c,c++ \ - --with-headers=../../unpacked/newlib-$newlib_ver/newlib/libc/include \ - --disable-shared \ - >configure-stage-1.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less configure-stage-1.log; exit 1; fi -echo "Building gcc-$gcc_ver (stage 1)" -make -j$jobs all >build-stage-1.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less build-stage-1.log; exit 1; fi -echo "Installing gcc-$gcc_ver (stage 1)" -make install >install-stage-1.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less install-stage-1.log; exit 1; fi -echo "Done with gcc-$gcc_ver (stage 1)" +if [ -n "$options_do_configure" ]; then + echo "Configuring gcc-${gcc_ver} (stage 1)" + ../../unpacked/gcc-$gcc_ver/configure \ + --prefix=$prefix_dir \ + --target=$target \ + --with-newlib \ + --with-gnu-as \ + --with-gnu-ld \ + --enable-lto \ + --enable-linker-build-id \ + --disable-libmudflap \ + --disable-libgomp \ + --disable-libssp \ + --disable-libstdcxx-pch \ + --enable-multiarch \ + --enable-soft-float \ + --enable-languages=c,c++ \ + --with-headers=../../unpacked/newlib-$newlib_ver/newlib/libc/include \ + --disable-shared \ + >configure-stage-1.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less configure-stage-1.log; exit 1; fi +fi +if [ -n "$options_do_build" ]; then + echo "Building gcc-$gcc_ver (stage 1)" + make -j$jobs all >build-stage-1.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less build-stage-1.log; exit 1; fi +fi +if [ -n "$options_do_install" ]; then + echo "Installing gcc-$gcc_ver (stage 1)" + make install >install-stage-1.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less install-stage-1.log; exit 1; fi +fi +if [ -z "$options_do_configure$options_do_build$options_do_install" ]; then + echo "Nothing to be done for gcc-$gcc_ver (stage 1)" +else + echo "Done with gcc-$gcc_ver (stage 1)" +fi diff --git a/5-build-newlib.sh b/5-build-newlib.sh index ddbc704..87cdc6f 100644 --- a/5-build-newlib.sh +++ b/5-build-newlib.sh @@ -2,18 +2,44 @@ source ./common export PATH="$prefix_dir/bin:${PATH:+:${PATH}}" +options_do_configure=1 +options_do_build=1 +options_do_install=1 + +if [ "$0" == "-i" ]; then + options_do_configure= + options_do_build= + options_do_install=1 +fi + mkdir -p build/newlib-$newlib_ver cd build/newlib-$newlib_ver -echo "Configuring newlib-${newlib_ver}" -../../unpacked/newlib-$newlib_ver/configure --prefix=$prefix_dir --target=$target >configure.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less configure.log; exit 1; fi -echo "Building newlib-$newlib_ver" -make -j$jobs >build.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less build.log; exit 1; fi -echo "Installing newlib-$newlib_ver" -make install >install.log 2>&1 -ret=$? -if [ $ret -ne 0 ]; then less install.log; exit 1; fi -echo "Done with newlib-$newlib_ver" +if [ -n "$options_do_configure" ]; then + echo "Configuring newlib-${newlib_ver}" + CFLAGS_FOR_TARGET="-g -O2 -msoft-float -march=m4k" \ + ../../unpacked/newlib-$newlib_ver/configure \ + --prefix=$prefix_dir \ + --target=$target \ + --with-float=soft \ + --enable-soft-float \ + >configure.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less configure.log; exit 1; fi +fi +if [ -n "$options_do_build" ]; then + echo "Building newlib-$newlib_ver" + make -j$jobs >build.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less build.log; exit 1; fi +fi +if [ -n "$options_do_install" ]; then + echo "Installing newlib-$newlib_ver" + make install >install.log 2>&1 + ret=$? + if [ $ret -ne 0 ]; then less install.log; exit 1; fi +fi +if [ -z "$options_do_configure$options_do_build$options_do_install" ]; then + echo "Nothing to be done for newlib-$newlib_ver" +else + echo "Done with newlib-$newlib_ver" +fi diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..a5ed297 --- /dev/null +++ b/Readme.md @@ -0,0 +1,4 @@ +# Useful resources + +- https://gist.github.com/lirenlin/a40d4b510799fa31acba +- https://sourceware.org/legacy-ml/newlib/2011/msg00349.html |
