Renesas GCC Toolchains Update
I recently installed Slackware 15.0 on a computer and I noticed that my older script no longer works well. Here is an updated script that compiles GCC version 12 and it's associated tools. The steps are also simplified, mainly because "--enable-maintainer-mode" has been removed when configuring "binutils".
I have tested with the two Renesas target architectures that I use; RX and RL78 so one of these can be selected as the argument for the script. By default the toolchains are installed at /opt/ but this can be changed with the PREFIX variable in the script. Also note that "make" as been set up to run 32 parallel jobs which greatly improves the compilation time if you have enough cores, so adjust this as needed.
Here is the updated script:
#!/bin/bash set -e if [ -z "$1" ]; then echo "Choose a target:" echo "1) rx-elf" echo "2) rl78-elf" exit 0 elif [ "$1" -eq 1 ]; then TARGET="rx-elf" elif [ "$1" -eq 2 ]; then TARGET="rl78-elf" else echo "Unknown target!" exit 1 fi PREFIX="/opt/gcc-${TARGET}/" BUILD_DIR="build-${TARGET}/" export PATH="${PREFIX}bin:$PATH" # 1) Prepare build directories: if [ -d "${BUILD_DIR}" ]; then echo "Old build directory detected, please remove it." exit 1 else mkdir -p "${BUILD_DIR}/binutils" mkdir -p "${BUILD_DIR}/gcc" mkdir -p "${BUILD_DIR}/gdb" mkdir -p "${BUILD_DIR}/newlib" fi # 2) Get sources: if [ ! -d source ]; then mkdir source cd source wget "https://gnuftp.uib.no/gcc/gcc-12.1.0/gcc-12.1.0.tar.xz" wget "https://gnuftp.uib.no/gdb/gdb-12.1.tar.xz" wget "https://gnuftp.uib.no/binutils/binutils-2.38.tar.xz" wget "ftp://sourceware.org/pub/newlib/newlib-4.1.0.tar.gz" tar -xvJf gcc-12.1.0.tar.xz tar -xvJf gdb-12.1.tar.xz tar -xvJf binutils-2.38.tar.xz tar -xvzf newlib-4.1.0.tar.gz cd .. fi # 3) Build binutils: cd "${BUILD_DIR}" cd binutils ../../source/binutils-2.38/configure --target=$TARGET --prefix=$PREFIX --disable-nls --disable-werror make -j32 sudo make install cd .. # 4) Build gcc (step 1): cd gcc ../../source/gcc-12.1.0/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++ --disable-shared --with-newlib --enable-lto --disable-libstdcxx-pch --disable-nls --disable-werror make -j32 all-gcc sudo make install-gcc cd .. # 5) Build newlib: cd newlib ../../source/newlib-4.1.0/configure --target=$TARGET --prefix=$PREFIX --disable-nls make -j32 sudo make install cd .. # 6) Build gdb: cd gdb ../../source/gdb-12.1/configure --target=$TARGET --prefix=$PREFIX --disable-nls make -j32 sudo make install cd .. # 7) Build gcc (step 2): cd gcc make -j32 sudo make install