Skip to content

Commit d439a7a

Browse files
Hariprasath-Kbtashton
authored andcommitted
Added RX toolchain
1 parent 0dc7fa8 commit d439a7a

File tree

2 files changed

+100
-1
lines changed

2 files changed

+100
-1
lines changed

cibuild.sh

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ case $os in
4141
export HOMEBREW_CACHE=${prebuilt}/homebrew
4242
;;
4343
Linux)
44-
install="python-tools gen-romfs gperf kconfig-frontends bloaty arm-gcc-toolchain mips-gcc-toolchain riscv-gcc-toolchain xtensa-esp32-gcc-toolchain c-cache"
44+
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"
4545
;;
4646
esac
4747

@@ -238,6 +238,54 @@ function avr-gcc-toolchain {
238238
fi
239239
}
240240

241+
function rx-gcc-toolchain {
242+
add_path $prebuilt/renesas-toolchain/rx-elf-gcc/bin
243+
244+
if [ ! -f "$prebuilt/renesas-toolchain/rx-elf-gcc/bin/rx-elf-gcc" ]; then
245+
case $os in
246+
Linux)
247+
# Download toolchain source code
248+
mkdir -p $prebuilt/renesas-tools/rx/source; cd $prebuilt/renesas-tools/rx/source
249+
wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/binutils/4.8.4.201803-gnurx/rx_binutils2.24_2018Q3.tar.gz \
250+
-O rx_binutils2.24_2018Q3.tar.gz
251+
tar zxf rx_binutils2.24_2018Q3.tar.gz
252+
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 \
253+
-O rx_gcc_4.8.4_2018Q3.tar.gz
254+
tar zxf rx_gcc_4.8.4_2018Q3.tar.gz
255+
wget --quiet https://gcc-renesas.com/downloads/d.php?f=rx/newlib/4.8.4.201803-gnurx/rx_newlib2.2.0_2018Q3.tar.gz \
256+
-O rx_newlib2.2.0_2018Q3.tar.gz
257+
tar zxf rx_newlib2.2.0_2018Q3.tar.gz
258+
259+
# Install binutils
260+
cd $prebuilt/renesas-tools/rx/source/binutils; chmod +x ./configure ./mkinstalldirs
261+
mkdir -p $prebuilt/renesas-tools/rx/build/binutils; cd $prebuilt/renesas-tools/rx/build/binutils
262+
$prebuilt/renesas-tools/rx/source/binutils/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc \
263+
--disable-werror
264+
make; make install
265+
266+
# Install gcc
267+
cd $prebuilt/renesas-tools/rx/source/gcc
268+
chmod +x ./contrib/download_prerequisites ./configure ./move-if-change ./libgcc/mkheader.sh
269+
./contrib/download_prerequisites
270+
sed -i 's/@tex/\n&/g' ./gcc/doc/gcc.texi && sed -i 's/@end tex/\n&/g' ./gcc/doc/gcc.texi
271+
mkdir -p $prebuilt/renesas-tools/rx/build/gcc; cd $prebuilt/renesas-tools/rx/build/gcc
272+
$prebuilt/renesas-tools/rx/source/gcc/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc \
273+
--disable-shared --disable-multilib --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-lto \
274+
--enable-gold --with-pkgversion=GCC_Build_1.02 --with-newlib --enable-languages=c
275+
make; make install
276+
277+
# Install newlib
278+
cd $prebuilt/renesas-tools/rx/source/newlib; chmod +x ./configure
279+
mkdir -p $prebuilt/renesas-tools/rx/build/newlib; cd $prebuilt/renesas-tools/rx/build/newlib
280+
$prebuilt/renesas-tools/rx/source/newlib/configure --target=rx-elf --prefix=$prebuilt/renesas-toolchain/rx-elf-gcc
281+
make; make install
282+
rm -rf $prebuilt/renesas-tools/
283+
;;
284+
esac
285+
fi
286+
rx-elf-gcc --version
287+
}
288+
241289
function c-cache {
242290
add_path $prebuilt/ccache/bin
243291

docker/linux/Dockerfile

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,53 @@ RUN mkdir /tools/blobs
129129
RUN cp /tools/esp-idf/examples/get-started/hello_world/build/bootloader/bootloader.bin /tools/blobs/
130130
RUN cp /tools/esp-idf/examples/get-started/hello_world/build/partition_table/partition-table.bin /tools/blobs/
131131

132+
###############################################################################
133+
# Build image for tool required by Renesas builds
134+
###############################################################################
135+
FROM nuttx-toolchain-base AS nuttx-toolchain-renesas
136+
# Build Renesas RX GCC toolchain
137+
RUN apt-get install -y -qq build-essential flex bison texinfo libncurses5-dev m4 make g++ wget
138+
139+
# Download toolchain source code
140+
RUN mkdir -p /tools/renesas-tools/source/binutils && \
141+
curl -s -L "https://gcc-renesas.com/downloads/d.php?f=rx/binutils/4.8.4.201803-gnurx/rx_binutils2.24_2018Q3.tar.gz" \
142+
| tar -C renesas-tools/source/binutils --strip-components=1 -xz
143+
RUN mkdir -p /tools/renesas-tools/source/gcc && \
144+
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" \
145+
| tar -C renesas-tools/source/gcc --strip-components=1 -xz
146+
RUN mkdir -p /tools/renesas-tools/source/newlib && \
147+
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" \
148+
| tar -C renesas-tools/source/newlib --strip-components=1 -xz
149+
150+
# Install binutils
151+
RUN cd renesas-tools/source/binutils && \
152+
chmod +x ./configure ./mkinstalldirs && \
153+
mkdir -p /tools/renesas-tools/build/binutils && cd /tools/renesas-tools/build/binutils && \
154+
/tools/renesas-tools/source/binutils/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc --disable-werror &&\
155+
make && make install
156+
ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
157+
158+
# Install gcc
159+
RUN cd renesas-tools/source/gcc && \
160+
chmod +x ./contrib/download_prerequisites ./configure ./move-if-change ./libgcc/mkheader.sh && \
161+
./contrib/download_prerequisites && \
162+
sed -i 's/@tex/\n&/g' ./gcc/doc/gcc.texi && sed -i 's/@end tex/\n&/g' ./gcc/doc/gcc.texi && \
163+
mkdir -p /tools/renesas-tools/build/gcc && cd /tools/renesas-tools/build/gcc && \
164+
/tools/renesas-tools/source/gcc/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc \
165+
--disable-shared --disable-multilib --disable-libssp --disable-libstdcxx-pch --disable-werror --enable-lto \
166+
--enable-gold --with-pkgversion=GCC_Build_1.02 --with-newlib --enable-languages=c && \
167+
make && make install
168+
ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
169+
170+
# Install newlib
171+
RUN cd renesas-tools/source/newlib && \
172+
chmod +x ./configure && \
173+
mkdir -p /tools/renesas-tools/build/newlib && cd /tools/renesas-tools/build/newlib && \
174+
/tools/renesas-tools/source/newlib/configure --target=rx-elf --prefix=/tools/renesas-toolchain/rx-elf-gcc && \
175+
make && make install
176+
RUN cd /tools/renesas-tools/build/gcc && \
177+
make && make install
178+
132179

133180
###############################################################################
134181
# Final Docker image used for running CI system. This includes all toolchains
@@ -206,4 +253,8 @@ RUN mkdir -p /tools/blobs/esp32core
206253
COPY --from=nuttx-toolchain-esp32 /tools/blobs/* /tools/blobs/esp32core/
207254
RUN pip3 install esptool
208255

256+
# Renesas toolchain
257+
COPY --from=nuttx-toolchain-renesas /tools/renesas-toolchain/rx-elf-gcc/ renesas-toolchain/rx-elf-gcc/
258+
ENV PATH="/tools/renesas-toolchain/rx-elf-gcc/bin:$PATH"
259+
209260
CMD [ "/bin/bash" ]

0 commit comments

Comments
 (0)