This is an automated email from the ASF dual-hosted git repository. btashton pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-testing.git
The following commit(s) were added to refs/heads/master by this push: new d439a7a Added RX toolchain d439a7a is described below commit d439a7a03e90bec21018ec85c5e7500676eef5f2 Author: haripra <hari...@tataelxsi.co.in> AuthorDate: Wed Aug 19 16:23:30 2020 +0530 Added RX toolchain --- cibuild.sh | 50 +++++++++++++++++++++++++++++++++++++++++++++++- docker/linux/Dockerfile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/cibuild.sh b/cibuild.sh index acd6dd7..c68422e 100755 --- a/cibuild.sh +++ b/cibuild.sh @@ -41,7 +41,7 @@ case $os in export HOMEBREW_CACHE=${prebuilt}/homebrew ;; Linux) - install="python-tools gen-romfs gperf kconfig-frontends bloaty arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain c-cache" + install="python-tools gen-romfs gperf kconfig-frontends bloaty arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain rx-gcc-toolchain c-cache" ;; esac @@ -238,6 +238,54 @@ function avr-gcc-toolchain { fi } +function rx-gcc-toolchain { + add_path $prebuilt/renesas-toolchain/rx-elf-gcc/bin + + if [ ! -f "$prebuilt/renesas-toolchain/rx-elf-gcc/bin/rx-elf-gcc" ]; then + case $os in + Linux) + # Download toolchain source code + mkdir -p $prebuilt/renesas-tools/rx/source; cd $prebuilt/renesas-tools/rx/source + wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/binutils/4.8.4.201803-gnurx/rx_binutils2.24_2018Q3.tar.gz \ + -O rx_binutils2.24_2018Q3.tar.gz + tar zxf rx_binutils2.24_2018Q3.tar.gz + wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/gcc/4.8.4.201803-gnurx/rx_gcc_4.8.4_2018Q3.tar.gz \ + -O rx_gcc_4.8.4_2018Q3.tar.gz + tar zxf rx_gcc_4.8.4_2018Q3.tar.gz + wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/newlib/4.8.4.201803-gnurx/rx_newlib2.2.0_2018Q3.tar.gz \ + -O rx_newlib2.2.0_2018Q3.tar.gz + tar zxf rx_newlib2.2.0_2018Q3.tar.gz + + # Install binutils + cd $prebuilt/renesas-tools/rx/source/binutils; chmod +x ./configure ./mkinstalldirs + mkdir -p $prebuilt/renesas-tools/rx/build/binutils; cd $prebuilt/renesas-tools/rx/build/binutils + $prebuilt/renesas-tools/rx/source/binutils/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc \ + --disable-werror + make; make install + + # Install gcc + cd $prebuilt/renesas-tools/rx/source/gcc + chmod +x ./contrib/download_prerequisites ./configure ./move-if-change ./libgcc/mkheader.sh + ./contrib/download_prerequisites + sed -i 's/@tex/\n&/g' ./gcc/doc/gcc.texi && sed -i 's/@end tex/\n&/g' ./gcc/doc/gcc.texi + mkdir -p $prebuilt/renesas-tools/rx/build/gcc; cd $prebuilt/renesas-tools/rx/build/gcc + $prebuilt/renesas-tools/rx/source/gcc/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc \ + --disable-shared --disable-multilib --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-lto \ + --enable-gold --with-pkgversion=GCC_Build_1.02 --with-newlib --enable-languages=c + make; make install + + # Install newlib + cd $prebuilt/renesas-tools/rx/source/newlib; chmod +x ./configure + mkdir -p $prebuilt/renesas-tools/rx/build/newlib; cd $prebuilt/renesas-tools/rx/build/newlib + $prebuilt/renesas-tools/rx/source/newlib/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc + make; make install + rm -rf $prebuilt/renesas-tools/ + ;; + esac + fi + rx-elf-gcc --version +} + function c-cache { add_path $prebuilt/ccache/bin diff --git a/docker/linux/Dockerfile b/docker/linux/Dockerfile index aff7977..956b956 100644 --- a/docker/linux/Dockerfile +++ b/docker/linux/Dockerfile @@ -129,6 +129,53 @@ RUN mkdir /tools/blobs RUN cp /tools/esp-idf/examples/get-started/hello_world/build/bootloader/bootloader.bin /tools/blobs/ RUN cp /tools/esp-idf/examples/get-started/hello_world/build/partition_table/partition-table.bin /tools/blobs/ +############################################################################### +# Build image for tool required by Renesas builds +############################################################################### +FROM nuttx-toolchain-base AS nuttx-toolchain-renesas +# Build Renesas RX GCC toolchain +RUN apt-get install -y -qq build-essential flex bison texinfo libncurses5-dev m4 make g++ wget + +# Download toolchain source code +RUN mkdir -p /tools/renesas-tools/source/binutils && \ + curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/binutils/4.8.4.201803-gnurx/rx_binutils2.24_2018Q3.tar.gz" \ + | tar -C renesas-tools/source/binutils --strip-components=1 -xz +RUN mkdir -p /tools/renesas-tools/source/gcc && \ + curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/gcc/4.8.4.201803-gnurx/rx_gcc_4.8.4_2018Q3.tar.gz" \ + | tar -C renesas-tools/source/gcc --strip-components=1 -xz +RUN mkdir -p /tools/renesas-tools/source/newlib && \ + curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/newlib/4.8.4.201803-gnurx/rx_newlib2.2.0_2018Q3.tar.gz" \ + | tar -C renesas-tools/source/newlib --strip-components=1 -xz + +# Install binutils +RUN cd renesas-tools/source/binutils && \ + chmod +x ./configure ./mkinstalldirs && \ + mkdir -p /tools/renesas-tools/build/binutils && cd /tools/renesas-tools/build/binutils && \ + /tools/renesas-tools/source/binutils/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc --disable-werror &&\ + make && make install +ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH" + +# Install gcc +RUN cd renesas-tools/source/gcc && \ + chmod +x ./contrib/download_prerequisites ./configure ./move-if-change ./libgcc/mkheader.sh && \ + ./contrib/download_prerequisites && \ + sed -i 's/@tex/\n&/g' ./gcc/doc/gcc.texi && sed -i 's/@end tex/\n&/g' ./gcc/doc/gcc.texi && \ + mkdir -p /tools/renesas-tools/build/gcc && cd /tools/renesas-tools/build/gcc && \ + /tools/renesas-tools/source/gcc/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc \ + --disable-shared --disable-multilib --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-lto \ + --enable-gold --with-pkgversion=GCC_Build_1.02 --with-newlib --enable-languages=c && \ + make && make install +ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH" + +# Install newlib +RUN cd renesas-tools/source/newlib && \ + chmod +x ./configure && \ + mkdir -p /tools/renesas-tools/build/newlib && cd /tools/renesas-tools/build/newlib && \ + /tools/renesas-tools/source/newlib/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc && \ + make && make install +RUN cd /tools/renesas-tools/build/gcc && \ + make && make install + ############################################################################### # Final Docker image used for running CI system. This includes all toolchains @@ -206,4 +253,8 @@ RUN mkdir -p /tools/blobs/esp32core COPY --from=nuttx-toolchain-esp32 /tools/blobs/* /tools/blobs/esp32core/ RUN pip3 install esptool +# Renesas toolchain +COPY --from=nuttx-toolchain-renesas /tools/renesas-toolchain/rx-elf-gcc/ renesas-toolchain/rx-elf-gcc/ +ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH" + CMD [ "/bin/bash" ]