Page 1 of 1

New toolchain version preview (GCC 8.2)

Posted: Tue Sep 25, 2018 4:07 am
by ESP_igrr
At the moment the latest ESP-IDF release, v3.1, uses toolchain based on GCC 5.2.

As a step towards updating GCC version used in the toolchain, ESP-IDF master branch can now be compiled with a new toolchain based on GCC 8.2. Documentation and getting started guides will continue to use GCC 5.2 until after release 3.2, when we plan to start officially supporting GCC 8.2.

A few important notes:
  • This is a preview release. There may be regressions due to compiler version update which we haven't found yet. Please report any issues you find on Github, prominently mentioning that you are using GCC 8.2.
  • The build system will produce warnings that this GCC version is unsupported.
  • It is not recommended to use GCC 8.2 for production purposes at this point.
  • Master branch of ESP-IDF passes through a number of compilation tests and functional tests before it is synchronized to Github. At the moment these tests use GCC 5.2 based toolchain. We plan to do regular (~weekly) builds/tests with GCC 8.2, but be advised some things may be temporarily broken with GCC 8.2. Please report issues on Github if you find them.
  • See below for the list of known issues.
Prebuilt version of the toolchain can be downloaded from the links below:
linux 64-bit
linux 32-bit
linux ARM
macOS
Windows

If you wish to build this toolchain yourself instead of using the binaries, this can be done using esp32-1.23-gab3c204a branch of https://github.com/espressif/crosstool-NG. Build steps are the same as for the current toolchain based on GCC 5.2.

This toolchain includes:
GCC 8.2, plus Xtensa-specific and ESP32-specific patches: https://github.com/espressif/gcc/tree/e ... _gcc-8_2_0
Binutils 2.30: https://github.com/espressif/binutils-g ... utils-2_30
GDB 8.1: https://github.com/espressif/binutils-g ... r1_gdb-8_1
Newlib 2.2.0, plus Xtensa patches: https://github.com/espressif/newlib-esp ... wlib-2_2_0
(Crosstool-NG branch linked above will automatically download correct versions from these repositories)

Known issues
  • xtensa-esp32-elf-gdb which we cross-compile for macOS may segfault randomly
  • when using GCC 8 based toolchain with CMake build system, application crashes shortly after startup