Skip to content

Commit af25ec8

Browse files
authored
Merge pull request #255 from gschorcht/riotbuild_esp32_espressif_gcc_14.2.0
riotbuild: Upgrade ESP32 toolchain to GCC 14.2.0
2 parents 004fdc1 + 108123e commit af25ec8

File tree

1 file changed

+34
-39
lines changed

1 file changed

+34
-39
lines changed

riotbuild/Dockerfile

Lines changed: 34 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -205,68 +205,66 @@ RUN echo 'Installing ESP8266 toolchain' >&2 && \
205205
ENV PATH $PATH:/opt/esp/xtensa-esp8266-elf/bin
206206
ENV ESP8266_RTOS_SDK_DIR /opt/esp/ESP8266_RTOS_SDK
207207

208-
# Install ESP32 toolchain in /opt/esp (338 MB)
209-
ARG ESP32_GCC_RELEASE="esp-12.2.0_20230208"
210-
ARG ESP32_GCC_VERSION="12.2.0_20230208"
208+
# Install ESP32x Xtensa toolchain in /opt/esp (1.1 GB)
209+
ARG ESP32_GCC_RELEASE="esp-14.2.0_20241119"
210+
ARG ESP32_GCC_VERSION_DIR="14.2.0"
211+
ARG ESP32_GCC_VERSION_DOWNLOAD="14.2.0_20241119"
211212
ARG ESP32_GCC_REPO=https://github.com/espressif/crosstool-NG/releases/download
212-
ARG ESP32_GCC_FILE=xtensa-esp32-elf-${ESP32_GCC_VERSION}-x86_64-linux-gnu.tar.xz
213+
214+
ARG ESP32_GCC_FILE=xtensa-esp-elf-${ESP32_GCC_VERSION_DOWNLOAD}-x86_64-linux-gnu.tar.xz
213215
ARG ESP32_GCC_URL=${ESP32_GCC_REPO}/${ESP32_GCC_RELEASE}/${ESP32_GCC_FILE}
214216

215-
RUN echo 'Installing ESP32 toolchain' >&2 && \
217+
RUN echo 'Installing ESP32 toolchain for Xtensa' >&2 && \
216218
curl -L ${ESP32_GCC_URL} | tar -C /opt/esp -xJ && \
217219
pip install --no-cache-dir pyserial
218-
ENV PATH $PATH:/opt/esp/xtensa-esp32-elf/bin
219-
220-
# Install ESP32 QEMU in /opt/esp (130 MB)
221-
ARG ESP32_QEMU_VERSION="esp-develop-20220203"
222-
ARG ESP32_QEMU_REPO=https://github.com/espressif/qemu/releases/download
223-
ARG ESP32_QEMU_FILE=qemu-${ESP32_QEMU_VERSION}.tar.bz2
224-
ARG ESP32_QEMU_URL=${ESP32_QEMU_REPO}/${ESP32_QEMU_VERSION}/${ESP32_QEMU_FILE}
220+
ENV PATH $PATH:/opt/esp/xtensa-esp-elf/bin
225221

226-
RUN echo 'Installing ESP32 QEMU' >&2 && \
227-
curl -L ${ESP32_QEMU_URL} | tar -C /opt/esp -xj
228-
ENV PATH $PATH:/opt/esp/qemu/bin
229-
230-
# Install ESP32-C3 toolchain in /opt/esp (859 MB)
231-
ARG ESP32_GCC_FILE=riscv32-esp-elf-${ESP32_GCC_VERSION}-x86_64-linux-gnu.tar.xz
222+
# Install ESP32x RISC-V toolchain in /opt/esp (2.1 GB)
223+
ARG ESP32_GCC_FILE=riscv32-esp-elf-${ESP32_GCC_VERSION_DOWNLOAD}-x86_64-linux-gnu.tar.xz
232224
ARG ESP32_GCC_URL=${ESP32_GCC_REPO}/${ESP32_GCC_RELEASE}/${ESP32_GCC_FILE}
233225

234-
RUN echo 'Installing ESP32-C3 toolchain' >&2 && \
226+
RUN echo 'Installing ESP32 toolchain for RISC-V' >&2 && \
235227
curl -L ${ESP32_GCC_URL} | tar -C /opt/esp -xJ
236228
ENV PATH $PATH:/opt/esp/riscv32-esp-elf/bin
237229

238-
# Install ESP32-S2 toolchain in /opt/esp (340 MB)
239-
ARG ESP32_GCC_FILE=xtensa-esp32s2-elf-${ESP32_GCC_VERSION}-x86_64-linux-gnu.tar.xz
240-
ARG ESP32_GCC_URL=${ESP32_GCC_REPO}/${ESP32_GCC_RELEASE}/${ESP32_GCC_FILE}
230+
# Install ESP32x QEMU in /opt/esp (136 MB)
231+
ARG ESP32_QEMU_VERSION="esp-develop-9.0.0-20240606"
232+
ARG ESP32_QEMU_VERSION_DOWNLOAD="esp_develop_9.0.0_20240606"
233+
ARG ESP32_QEMU_REPO=https://github.com/espressif/qemu/releases/download
241234

242-
RUN echo 'Installing ESP32-S2 toolchain' >&2 && \
243-
curl -L ${ESP32_GCC_URL} | tar -C /opt/esp -xJ
244-
ENV PATH $PATH:/opt/esp/xtensa-esp32s2-elf/bin
235+
ARG ESP32_QEMU_FILE=qemu-xtensa-softmmu-${ESP32_QEMU_VERSION_DOWNLOAD}-x86_64-linux-gnu.tar.xz
236+
ARG ESP32_QEMU_URL=${ESP32_QEMU_REPO}/${ESP32_QEMU_VERSION}/${ESP32_QEMU_FILE}
245237

246-
# Install ESP32-S3 toolchain in /opt/esp (341 MB)
247-
ARG ESP32_GCC_FILE=xtensa-esp32s3-elf-${ESP32_GCC_VERSION}-x86_64-linux-gnu.tar.xz
248-
ARG ESP32_GCC_URL=${ESP32_GCC_REPO}/${ESP32_GCC_RELEASE}/${ESP32_GCC_FILE}
238+
RUN echo 'Installing ESP32 QEMU for Xtensa' >&2 && \
239+
mkdir -p /opt/esp/qemu-xtensa-softmmu && \
240+
curl -L ${ESP32_QEMU_URL} | tar -C /opt/esp/qemu-xtensa-softmmu -xJ
241+
ENV PATH $PATH:/opt/esp/qemu-xtensa-softmmu/bin
249242

250-
RUN echo 'Installing ESP32-S3 toolchain' >&2 && \
251-
curl -L ${ESP32_GCC_URL} | tar -C /opt/esp -xJ
252-
ENV PATH $PATH:/opt/esp/xtensa-esp32s3-elf/bin
243+
ARG ESP32_QEMU_FILE=qemu-riscv32-softmmu-${ESP32_QEMU_VERSION_DOWNLOAD}-x86_64-linux-gnu.tar.xz
244+
ARG ESP32_QEMU_URL=${ESP32_QEMU_REPO}/${ESP32_QEMU_VERSION}/${ESP32_QEMU_FILE}
253245

254-
# Install GDB for Xtensa base ESP32 x SoCs in /opt/esp (94 MB)
255-
ARG ESP32_GDB_VERSION=12.1_20221002
246+
RUN echo 'Installing ESP32 QEMU for RISC-V' >&2 && \
247+
mkdir -p /opt/esp/qemu-riscv32-softmmu && \
248+
curl -L ${ESP32_QEMU_URL} | tar -C /opt/esp/qemu-riscv32-softmmu -xJ
249+
ENV PATH $PATH:/opt/esp/qemu-riscv32-softmmu/bin
250+
251+
# Install GDB for ESP32x Xtensa SoCs in /opt/esp (91 MB)
252+
ARG ESP32_GDB_VERSION="14.2_20240403"
256253
ARG ESP32_GDB_REPO=https://github.com/espressif/binutils-gdb/releases/download
257254
ARG ESP32_GDB_REPO_DIR=esp-gdb-v${ESP32_GDB_VERSION}
255+
258256
ARG ESP32_GDB_FILE=xtensa-esp-elf-gdb-${ESP32_GDB_VERSION}-x86_64-linux-gnu.tar.gz
259257
ARG ESP32_GDB_URL=${ESP32_GDB_REPO}/${ESP32_GDB_REPO_DIR}/${ESP32_GDB_FILE}
260258

261-
RUN echo 'Installing GDB for Xtensa based ESP32x SoCs' >&2 && \
259+
RUN echo 'Installing ESP32 GDB for Xtensa' >&2 && \
262260
curl -L ${ESP32_GDB_URL} | tar -C /opt/esp -xz
263261
ENV PATH $PATH:/opt/esp/xtensa-esp-elf-gdb/bin
264262

265-
# Install GDB for RISC-V based ESP32 SoCs in /opt/esp (93 MB)
263+
# Install GDB for ESP32x RISC-V SoCs in /opt/esp (89 MB)
266264
ARG ESP32_GDB_FILE=riscv32-esp-elf-gdb-${ESP32_GDB_VERSION}-x86_64-linux-gnu.tar.gz
267265
ARG ESP32_GDB_URL=${ESP32_GDB_REPO}/${ESP32_GDB_REPO_DIR}/${ESP32_GDB_FILE}
268266

269-
RUN echo 'Installing GDB for RISC-V based ESP32x SoCs' >&2 && \
267+
RUN echo 'Installing ESP32 GDB for RISC-V' >&2 && \
270268
curl -L ${ESP32_GDB_URL} | tar -C /opt/esp -xz
271269
ENV PATH $PATH:/opt/esp/riscv32-esp-elf-gdb/bin
272270

@@ -292,9 +290,6 @@ RUN cd /usr/src/picolibc/picolibc-${PICOLIBC_TAG} && \
292290
cd build-riscv && \
293291
meson .. -Dtests=true -Dmultilib=false -Dincludedir=picolibc/riscv-none-elf/include -Dlibdir=picolibc/riscv-none-elf/lib --cross-file ../cross-riscv-none-elf.txt && \
294292
ninja && ninja install && \
295-
cd ../build-esp32 && \
296-
sh ../do-esp32-configure && \
297-
ninja && ninja install && \
298293
cd ../build-arm && \
299294
sh ../do-arm-configure && \
300295
ninja && ninja install

0 commit comments

Comments
 (0)