Giter Club home page Giter Club logo

crosstool-ng's People

Contributors

abrodkin avatar antmak avatar bartvdrmeulen avatar bhundven avatar bthebaudeau avatar christopher83 avatar codyps avatar cpackham avatar davidholsgrove avatar deece avatar dimkr avatar egtvedt avatar galak avatar jasmin-j avatar jcmvbkbc avatar jnohlgard avatar keith-packard avatar kirillsmirnov avatar ksergeyv avatar mingwandroid avatar netzimme avatar nikkon-dev avatar nolange avatar nzmichaelh avatar stephanosio avatar stilor avatar tpetazzoni avatar tvb377 avatar yann-morin-1998 avatar ysharma-harris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crosstool-ng's Issues

Retrieving isl-0.19: download failed

I followed the Setup Linux Toolchain from scratch tutorial and noticed the following issue.

It seems like the mirror http://isl.gforge.inria.fr is down. Therefore, ./ct-ng build fails with this error (also see attached log below):

[EXTRA]    Retrieving 'isl-0.19'
[DEBUG]    Trying 'http://isl.gforge.inria.fr/isl-0.19.tar.xz'
[DEBUG]    ==> Executing:  'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/esp/crosstool-NG/.build/tarballs/isl-0.19.tar.xz.tmp-dl' 'http://isl.gforge.inria.fr/isl-0.19.tar.xz'
[ALL  ]    --2021-11-02 11:39:06--  http://isl.gforge.inria.fr/isl-0.19.tar.xz
[ALL  ]    Resolving isl.gforge.inria.fr (isl.gforge.inria.fr)... 128.93.193.15
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Retrying.
[ALL  ]    
[ALL  ]    --2021-11-02 11:39:17--  (try: 2)  http://isl.gforge.inria.fr/isl-0.19.tar.xz
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Retrying.
[ALL  ]    
[ALL  ]    --2021-11-02 11:39:29--  (try: 3)  http://isl.gforge.inria.fr/isl-0.19.tar.xz
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Giving up.
[ALL  ]    
[DEBUG]    ==> Return status 4
[DEBUG]    Not at this location: "http://isl.gforge.inria.fr/isl-0.19.tar.xz"
[DEBUG]    Trying 'http://isl.gforge.inria.fr/isl-0.19.tar.bz2'
[DEBUG]    ==> Executing:  'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/esp/crosstool-NG/.build/tarballs/isl-0.19.tar.bz2.tmp-dl' 'http://isl.gforge.inria.fr/isl-0.19.tar.bz2'
[ALL  ]    --2021-11-02 11:39:39--  http://isl.gforge.inria.fr/isl-0.19.tar.bz2
[ALL  ]    Resolving isl.gforge.inria.fr (isl.gforge.inria.fr)... 128.93.193.15
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Retrying.
[ALL  ]    
[ALL  ]    --2021-11-02 11:39:50--  (try: 2)  http://isl.gforge.inria.fr/isl-0.19.tar.bz2
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Retrying.
[ALL  ]    
[ALL  ]    --2021-11-02 11:40:02--  (try: 3)  http://isl.gforge.inria.fr/isl-0.19.tar.bz2
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Giving up.
[ALL  ]    
[DEBUG]    ==> Return status 4
[DEBUG]    Not at this location: "http://isl.gforge.inria.fr/isl-0.19.tar.bz2"
[DEBUG]    Trying 'http://isl.gforge.inria.fr/isl-0.19.tar.gz'
[DEBUG]    ==> Executing:  'wget' '--passive-ftp' '--tries=3' '-nc' '--progress=dot:binary' '-T' '10' '-O' '/esp/crosstool-NG/.build/tarballs/isl-0.19.tar.gz.tmp-dl' 'http://isl.gforge.inria.fr/isl-0.19.tar.gz'
[ALL  ]    --2021-11-02 11:40:12--  http://isl.gforge.inria.fr/isl-0.19.tar.gz
[ALL  ]    Resolving isl.gforge.inria.fr (isl.gforge.inria.fr)... 128.93.193.15
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Retrying.
[ALL  ]    
[ALL  ]    --2021-11-02 11:40:23--  (try: 2)  http://isl.gforge.inria.fr/isl-0.19.tar.gz
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Retrying.
[ALL  ]    
[ALL  ]    --2021-11-02 11:40:35--  (try: 3)  http://isl.gforge.inria.fr/isl-0.19.tar.gz
[ALL  ]    Connecting to isl.gforge.inria.fr (isl.gforge.inria.fr)|128.93.193.15|:80... failed: Connection timed out.
[ALL  ]    Giving up.
[ALL  ]    
[DEBUG]    ==> Return status 4
[DEBUG]    Not at this location: "http://isl.gforge.inria.fr/isl-0.19.tar.gz"
[ERROR]    isl: download failed

I resolved this issue locally by replacing the mirror http://isl.gforge.inria.fr with https://libisl.sourceforge.io in config/versions/isl.in like this:

$ diff isl.in.orig isl.in
528c528
<     default "http://isl.gforge.inria.fr"
---
>     default "https://libisl.sourceforge.io"

Unfortunately I am not that familiar with crosstool-NG, so I do not know where to change the mirror of libisl before generating the configuration files.

Thanks in advance.

Best regards
NoU


Further information:

  • crosstool-NG version:

     $ ./ct-ng --version
     GNU Make 4.2.1
     Built for x86_64-pc-linux-gnu
     Copyright (C) 1988-2016 Free Software Foundation, Inc.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     This is free software: you are free to change and redistribute it.
     There is NO WARRANTY, to the extent permitted by law.
    
  • Host OS and version:

     $ uname -a
     Linux 808b49755bd8 5.11.0-38-generic #42~20.04.1-Ubuntu SMP Tue Sep 28 20:41:07 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    
  • Attached build.log

tool xtensa-esp32-elf does not have versions compatible with platform linux-arm64

tool xtensa-esp32-elf does not have versions compatible with platform linux-arm64
My autoconf version is new. Cannot downgrade.

Issue submission guidelines

See detaled guidelines. In short:

  • Report crosstool-NG version
    On branch esp-1.23.x
    Your branch is up to date with 'origin/esp-1.23.x'.

  • Report host OS and its version
    Linux raspberrypi 5.10.5-v8+ #1391 SMP PREEMPT Thu Jan 7 17:55:54 GMT 2021 aarch64 GNU/Linux

  • Attach .config (unless the issue is not related to any configuration)

  • Attach build.log (unless crosstool-NG fails before the build starts)

I run autoconf (GNU Autoconf) 2.69

configure.ac:22: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:25: error: possibly undefined macro: AM_MAINTAINER_MODE
configure.ac:51: error: possibly undefined macro: AM_CONDITIONAL
configure.ac:94: error: possibly undefined macro: AM_PROG_CC_C_O
configure.ac:108: error: possibly undefined macro: AC_MSG_RESULT
configure.ac:248: error: possibly undefined macro: AM_GNU_GETTEXT
configure.ac:249: error: possibly undefined macro: AM_GNU_GETTEXT_VERSION
configure.ac:303: error: possibly undefined macro: AM_COND_IF

esp-2022r1 - release coming

We plan another esp-2022r1 release soon for our xtensa and riscv32 chips. Main changes:

  • GCC 11
  • Newlib 4.1.0
  • macOS@aarch64 native support
  • fixed problems when running on some linux@arm platforms

Details post: espressif/esp-idf#6214 (comment)

Development branches have been published for your info:

https://github.com/espressif/crosstool-NG/commits/esp-2022r1-dev
https://github.com/espressif/gcc/commits/esp-11_2_0-dev
https://github.com/espressif/newlib-esp32/commits/esp-4.1.0-dev

IDF branch (including links to builds in tools/tools.json):
https://github.com/antmak/esp-idf/tree/feature/toolchain_2022r1

(These branches will be rebased or removed after the release.)

Can't install Toolchain Properly in mac.

I followed https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/macos-setup-scratch.html

when I type last Command "make", the billow error shown.

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[3]: *** [Makefile:515: conf] Error 1
gmake[3]: Leaving directory '/Volumes/ctng/crosstool-NG/kconfig'
gmake[2]: *** [Makefile:430: all] Error 2
gmake[2]: Leaving directory '/Volumes/ctng/crosstool-NG/kconfig'
gmake[1]: *** [Makefile:2383: all-recursive] Error 1
gmake[1]: Leaving directory '/Volumes/ctng/crosstool-NG'
gmake: *** [Makefile:2154: all] Error 2

gold / lld support for parallel linking

Linking phase is taking substantial amount of time on larger projects, it would be great to get support for -fuse-ld=gold and/or -fuse-ld=lld, both of which support parallel linking and are much faster than the default BFD linker.

Linker from esp-13.2.0-20230928 cannot locate objects or libraries that are specified with absolute paths

Issue submission guidelines

crosstool-NG version:

$ /home/christo/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s2-elf-ld --version
GNU ld (crosstool-NG esp-13.2.0_20230928) 2.41
Copyright (C) 2023 Free Software Foundation, Inc.

host OS and its version

$ uname -a
Linux christo-Aspire-R3-131T 5.15.0-106-generic #116-Ubuntu SMP Wed Apr 17 09:17:56 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

The Free Pascal compiler (FPC) supports many targets, including the esp32 series. The support was developed based on esp-idf v4.x toolchain and uses the SDK provided assembler and linker. This worked fine, until I tried to update support to esp-idf v5+ when the binutils version was updated to 13.2.0. The linker script that FPC generates includes absolute paths to the libraries and object files that should be linked. This method works for many different Gnu binutils versions across many different CPU and OS combinations.

Using the linker from 13.2.0 gives an error when provided with libraries specified with absolute paths. When libraries/objects are specified using relative paths (or no paths), the linker can locate them (if the correct search paths are also supplied of course). Below please find an example call to the linker using the linker script link.res (attached)the verbose output of the first error when passing a linker script as currently generated by FPC which contains absolute paths to the various libraries and objects (linker script: link.txt):

$ /home/christo/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp32s2-elf-ld -g -b elf32-xtensa-le -m elf32xtensa --abi-windowed    --gc-sections  -Map /home/christo/fpc/xtensa/examples/hello/hello.map -L. -o /home/christo/fpc/xtensa/examples/hello/hello.elf -T /home/christo/fpc/xtensa/examples/hello/link.txt -u call_user_start_cpu0 -u ld_include_panic_highint_hdl -u esp_app_desc -u vfs_include_syscalls_impl -u pthread_include_pthread_impl -u pthread_include_pthread_cond_impl -u pthread_include_pthread_local_storage_impl -u newlib_include_locks_impl -u newlib_include_heap_impl -u newlib_include_syscalls_impl -u newlib_include_pthread_impl -u app_main -u uxTopUsedPriority -L /home/christo/fpc/xtensa/esp-idf-5.2.1/components/esp_rom/esp32s2/ld -T esp32s2.rom.ld -T esp32s2.rom.libgcc.ld -T /home/christo/fpc/xtensa/esp-idf-5.2.1/libs/esp32s2/memory.ld -T /home/christo/fpc/xtensa/esp-idf-5.2.1/libs/esp32s2/sections.ld -T esp32s2.rom.newlib-funcs.ld -T esp32s2.rom.newlib-data.ld -T esp32s2.rom.spiflash.ld -L /home/christo/fpc/xtensa/esp-idf-5.2.1/components/soc/esp32s2/ld -T esp32s2.peripherals.ld -T esp32s2.rom.api.ld --verbose > linker-verbose.log

The first error message is displayed (complete output in file linker-verbose.log):

/home/christo/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/xtensa-esp-elf-ld: mode elf32xtensa
attempt to open /home/christo/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/bin/../xtensa-esp-elf/home/christo/fpc/xtensa/examples/hello/lib/xtensa-freertos/hello.o failed

The problem seems to be caused by the linker wrongly appending the absolute path to hello.o to the path pointing to the toolchain's bin folder.
The linker does however successfully locate libraries in the toolchain lib folder, see below output:

attempt to open /home/christo/.espressif/tools/xtensa-esp-elf/esp-13.2.0_20230928/xtensa-esp-elf/xtensa-esp-elf/lib/esp32s2/no-rtti/libm.a succeeded

For reference performing the same linking step as above but using the linker from toolchain 11.2.0 succeeds, see verbose output (linker-verbose-11.2.0.log).
Also, providing just the list of libraries and objects in the linker script (linknopath.txt) do succeed when using toolchain 12.2.0 (linker-verbose-12.2.0-nopath.log).

Update platformio toolchain package registry with latest releases

The following platformio packages are not updated since one year:

Last published release is 12.2.0+20230208.
As a result, usage of more recent versions of GCC is harder for Platformio projects.
Can you register a new release?

`Bad CPU type` error in platformio toolchain patch5

@antmak Looks like the package.json or the wrong toolchain is uploaded for MacOs (Intel)

Platformio log file

PACKAGES: 
 - framework-arduinoespressif32 @ 2.0.5 
 - tool-esptoolpy @ 1.40300.220914 (4.3.0) 
 - tool-mklittlefs @ 1.203.210628 (2.3) 
 - tool-mkspiffs @ 2.230.0 (2.30) 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Converting WiFiScan.ino
sh: /Users/runner/.platformio/packages/toolchain-xtensa-esp32/bin/xtensa-esp32-elf-g++: Bad CPU type in executable
*** Error 1[26](https://github.com/Jason2866/platform-espressif32/actions/runs/3092921718/jobs/5004727003#step:5:27)

package.json from ESP32. Since there are now toolchains for intel and arm. There is only one entry allowed
"darwin_x86_64" OR "darwin_arm64"

{
  "name": "toolchain-xtensa-esp32",
  "version": "8.4.0+2021r2-patch5",
  "description": "GCC Toolchain for Espressif ESP32 Xtensa MCUs",
  "keywords": [
    "build tools",
    "compiler",
    "assembler",
    "linker",
    "preprocessor",
    "espressif",
    "esp32"
  ],
  "license": "GPL-2.0-or-later",
  "repository": {
    "type": "git",
    "url": "https://github.com/espressif/crosstool-NG"
  },
  "system": [
    "darwin_x86_64",
    "darwin_arm64"
  ]
}

Please upload `esp32ulp-elf-v2.35_20220830` to Platformio Registry

@antmak @igrr i know not the correct repo but the repo binutils-gdb has no issue section.
I did managed to do the needed changes in Platformio to use the new ulp toolchain.
Building the fsm and riscv ulp examples does work now too.

Would be really great if we (i would make the PR) could update Platformio development branch to the latest patch5 and a ulp toolchains. So all 'makers' can benefit of the bug fixes and the great performance gain when working with a Apple Silicon CPU.

Thx for your great work and support around your products.

For binary built for esp32 target xtensa-esp32-elf-objdump produces incorrect disassembly, while xtensa-esp32s3-elf-objdump is correct (GCC-247)

Environment

  • Module or chip used: ESP32-WROOM-32
  • IDF version (run git describe --tags to find it): v4.4.1
  • Build System: idf.py (ninja)
  • Compiler version (run xtensa-esp32-elf-gcc --version to find it): xtensa-esp32-elf-gcc (crosstool-NG esp-2021r1) 8.4.0
  • Operating System: Linux
  • Power Supply: external 5V

Problem Description

I'm building the .elf file with idf.py and following sdkconfig:

CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET_ARCH_XTENSA=y
CONFIG_IDF_TARGET="esp32"
CONFIG_IDF_TARGET_ESP32=y
CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000
CONFIG_ESP32_REV_MIN_0=y
# CONFIG_ESP32_REV_MIN_1 is not set
# CONFIG_ESP32_REV_MIN_2 is not set
# CONFIG_ESP32_REV_MIN_3 is not set
CONFIG_ESP32_REV_MIN=0

Here is the real code of one of the tasks:

#define WITH_MUTEX(what, mutex, timeout_tick)                             \
  ({                                                                      \
    __label__ error_macros_with_mutex_exit;                               \
    errors_Error __error = {0};                                           \
    if (pdTRUE != xSemaphoreTake(mutex, (timeout_tick))) {                \
      __error = ERROR(errors_Error_system_tag,                            \
                      errors_System_SYSTEM_TAKE_MUTEX_FAILED, "%s:%u",    \
                      __func__, __LINE__);                                \
      goto error_macros_with_mutex_exit;                                  \
    }                                                                     \
    MDF_LOGD("Mutex %s taken in %s, before %s", #mutex, __func__, #what); \
    __error = (what);                                                     \
    if (pdTRUE != xSemaphoreGive(mutex)) {                                \
      /* highly unlikely, since mutex is successfully taken */            \
      protocol_utils_destroy_error(__error);                              \
      __error = ERROR(errors_Error_system_tag,                            \
                      errors_System_SYSTEM_TAKE_MUTEX_FAILED,             \
                      "xSemaphoreGive %s:%u", __func__, __LINE__);        \
      goto error_macros_with_mutex_exit;                                  \
    }                                                                     \
    MDF_LOGD("Mutex %s given in %s, after %s", #mutex, __func__, #what);  \
  error_macros_with_mutex_exit:                                           \
    __error;                                                              \
  })

...

static void xxx_task(void *pvParameters) {
  char *task_name = pcTaskGetTaskName(NULL);
  MDF_LOGD("%s is running (priority %d)", task_name, uxTaskPriorityGet(NULL));
  errors_Error error = {0};
  while (true) {
    error = WITH_MUTEX(xxx_do_something(), g_mutex, portMAX_DELAY);
    if (0 != error.which_code) {
      protocol_utils_destroy_error(error);
      vTaskDelay(pdMS_TO_TICKS(XXX_TASK_SLEEP_ERROR_MS));
      continue;
    }
    MDF_LOGD("%s free stack memory: %d", task_name,
             uxTaskGetStackHighWaterMark(NULL));
    vTaskDelay(pdMS_TO_TICKS(XXX_TASK_SLEEP_MS));
  }
  MDF_LOGW("%s exited", task_name);
  vTaskDelete(NULL);
}

Expected Behavior

xtensa-esp32s3-elf-objdump -d produces correct disassembly:

400eb64c <xxx_task>:
400eb64c:	00c136        	entry	a1, 96
400eb64f:	00a0a2        	movi	a10, 0
400eb652:	a9ffa5        	call8	4009564c <pcTaskGetName>
400eb655:	ffafb2        	movi	a11, -1
400eb658:	9a8b81        	l32r	a8, 400d2084 <_stext+0x2064>
400eb65b:	08a8      	l32i.n	a10, a8, 0
400eb65d:	a86225        	call8	40093c80 <xQueueSemaphoreTake>
400eb660:	201a26        	beqi	a10, 1, 400eb684 <xxx_task+0x38>
400eb663:	9a8ba1        	l32r	a10, 400d2090 <_stext+0x2070>
400eb666:	55a2b2        	movi	a11, 0x255
400eb669:	11b9      	s32i.n	a11, a1, 4
400eb66b:	01a9      	s32i.n	a10, a1, 0
400eb66d:	9a86f1        	l32r	a15, 400d2088 <_stext+0x2068>
400eb670:	9a87e1        	l32r	a14, 400d208c <_stext+0x206c>
400eb673:	cd0c      	movi.n	a13, 12
400eb675:	dc0c      	movi.n	a12, 13
400eb677:	4ab3e5        	call8	401361b4 <__error_create>
400eb67a:	a1a9      	s32i.n	a10, a1, 40
400eb67c:	b1b9      	s32i.n	a11, a1, 44
400eb67e:	c1c9      	s32i.n	a12, a1, 48
400eb680:	001006        	j	400eb6c4 <xxx_task+0x78>
400eb683:	00          	.byte 00
400eb684:	ffc8a5        	call8	400eb310 <xxx_do_something>
400eb687:	a1a9      	s32i.n	a10, a1, 40
400eb689:	b1b9      	s32i.n	a11, a1, 44
400eb68b:	c1c9      	s32i.n	a12, a1, 48
400eb68d:	0d0c      	movi.n	a13, 0
400eb68f:	0dcd      	mov.n	a12, a13
400eb691:	0dbd      	mov.n	a11, a13
400eb693:	9a7c81        	l32r	a8, 400d2084 <_stext+0x2064>
400eb696:	08a8      	l32i.n	a10, a8, 0
400eb698:	a80425        	call8	400936dc <xQueueGenericSend>
400eb69b:	251a26        	beqi	a10, 1, 400eb6c4 <xxx_task+0x78>
400eb69e:	a1a8      	l32i.n	a10, a1, 40
400eb6a0:	b1b8      	l32i.n	a11, a1, 44
400eb6a2:	c1c8      	l32i.n	a12, a1, 48
400eb6a4:	4cdf65        	call8	4013849c <protocol_utils_destroy_error>
400eb6a7:	9a7aa1        	l32r	a10, 400d2090 <_stext+0x2070>
400eb6aa:	55a2b2        	movi	a11, 0x255
400eb6ad:	11b9      	s32i.n	a11, a1, 4
400eb6af:	01a9      	s32i.n	a10, a1, 0
400eb6b1:	9a78f1        	l32r	a15, 400d2094 <_stext+0x2074>
400eb6b4:	9a76e1        	l32r	a14, 400d208c <_stext+0x206c>
400eb6b7:	cd0c      	movi.n	a13, 12
400eb6b9:	dc0c      	movi.n	a12, 13
400eb6bb:	4aafa5        	call8	401361b4 <__error_create>
400eb6be:	a1a9      	s32i.n	a10, a1, 40
400eb6c0:	b1b9      	s32i.n	a11, a1, 44
400eb6c2:	c1c9      	s32i.n	a12, a1, 48
400eb6c4:	0a2182        	l32i	a8, a1, 40
400eb6c7:	0b21a2        	l32i	a10, a1, 44
400eb6ca:	c198      	l32i.n	a9, a1, 48
400eb6cc:	7189      	s32i.n	a8, a1, 28
400eb6ce:	81a9      	s32i.n	a10, a1, 32
400eb6d0:	9199      	s32i.n	a9, a1, 36
400eb6d2:	f48080        	extui	a8, a8, 0, 16
400eb6d5:	089c      	beqz.n	a8, 400eb6e9 <xxx_task+0x9d>
400eb6d7:	71a8      	l32i.n	a10, a1, 28
400eb6d9:	81b8      	l32i.n	a11, a1, 32
400eb6db:	09cd      	mov.n	a12, a9
400eb6dd:	4cdbe5        	call8	4013849c <protocol_utils_destroy_error>
400eb6e0:	d0a7a2        	movi	a10, 0x7d0
400eb6e3:	a8f2a5        	call8	4009460c <vTaskDelay>
400eb6e6:	ffdac6        	j	400eb655 <xxx_task+0x9>
400eb6e9:	95cfa1        	l32r	a10, 400d0e28 <_stext+0xe08>
400eb6ec:	a8f1e5        	call8	4009460c <vTaskDelay>
400eb6ef:	ffd886        	j	400eb655 <xxx_task+0x9>

Actual Behavior

xtensa-esp32-elf-objdump -d produces this disassembly:

400eb64c <xxx_task>:
400eb64c:       00c136          entry   a1, 96
400eb64f:       00a0a2          movi    a10, 0
400eb652:       a9ffa5          call8   4009564c <pcTaskGetName>
400eb655:       ffafb2          movi    a11, -1
400eb658:       9a8b81          l32r    a8, 400d2084 <_stext+0x2064>
400eb65b:       08a8            l32i.n  a10, a8, 0
400eb65d:       a86225          call8   40093c80 <xQueueSemaphoreTake>
400eb660:       201a26          beqi    a10, 1, 400eb684 <xxx_task+0x38>
400eb663:       9a8ba1          l32r    a10, 400d2090 <_stext+0x2070>
400eb666:       55a2b2          movi    a11, 0x255
400eb669:       11b9            s32i.n  a11, a1, 4
400eb66b:       01a9            s32i.n  a10, a1, 0
400eb66d:       9a86f1          l32r    a15, 400d2088 <_stext+0x2068>
400eb670:       9a87e1          l32r    a14, 400d208c <_stext+0x206c>
400eb673:       cd0c            movi.n  a13, 12
400eb675:       dc0c            movi.n  a12, 13
400eb677:       4ab3e5          call8   401361b4 <__error_create>
400eb67a:       a1a9            s32i.n  a10, a1, 40
400eb67c:       b1b9            s32i.n  a11, a1, 44
400eb67e:       c1c9            s32i.n  a12, a1, 48
400eb680:       001006          j       400eb6c4 <xxx_task+0x78>
400eb683:       c8a500          lsi     f0, a5, 0x320
400eb686:       ff              .byte 0xff
400eb687:       a1a9            s32i.n  a10, a1, 40
400eb689:       b1b9            s32i.n  a11, a1, 44
400eb68b:       c1c9            s32i.n  a12, a1, 48
400eb68d:       0d0c            movi.n  a13, 0
400eb68f:       0dcd            mov.n   a12, a13
400eb691:       0dbd            mov.n   a11, a13
400eb693:       9a7c81          l32r    a8, 400d2084 <_stext+0x2064>
400eb696:       08a8            l32i.n  a10, a8, 0
400eb698:       a80425          call8   400936dc <xQueueGenericSend>
400eb69b:       251a26          beqi    a10, 1, 400eb6c4 <xxx_task+0x78>
400eb69e:       a1a8            l32i.n  a10, a1, 40
400eb6a0:       b1b8            l32i.n  a11, a1, 44
400eb6a2:       c1c8            l32i.n  a12, a1, 48
400eb6a4:       4cdf65          call8   4013849c <protocol_utils_destroy_error>
400eb6a7:       9a7aa1          l32r    a10, 400d2090 <_stext+0x2070>
400eb6aa:       55a2b2          movi    a11, 0x255
400eb6ad:       11b9            s32i.n  a11, a1, 4
400eb6af:       01a9            s32i.n  a10, a1, 0
400eb6b1:       9a78f1          l32r    a15, 400d2094 <_stext+0x2074>
400eb6b4:       9a76e1          l32r    a14, 400d208c <_stext+0x206c>
400eb6b7:       cd0c            movi.n  a13, 12
400eb6b9:       dc0c            movi.n  a12, 13
400eb6bb:       4aafa5          call8   401361b4 <__error_create>
400eb6be:       a1a9            s32i.n  a10, a1, 40
400eb6c0:       b1b9            s32i.n  a11, a1, 44
400eb6c2:       c1c9            s32i.n  a12, a1, 48
400eb6c4:       0a2182          l32i    a8, a1, 40
400eb6c7:       0b21a2          l32i    a10, a1, 44
400eb6ca:       c198            l32i.n  a9, a1, 48
400eb6cc:       7189            s32i.n  a8, a1, 28
400eb6ce:       81a9            s32i.n  a10, a1, 32
400eb6d0:       9199            s32i.n  a9, a1, 36
400eb6d2:       f48080          extui   a8, a8, 0, 16
400eb6d5:       089c            beqz.n  a8, 400eb6e9 <xxx_task+0x9d>
400eb6d7:       71a8            l32i.n  a10, a1, 28
400eb6d9:       81b8            l32i.n  a11, a1, 32
400eb6db:       09cd            mov.n   a12, a9
400eb6dd:       4cdbe5          call8   4013849c <protocol_utils_destroy_error>
400eb6e0:       d0a7a2          movi    a10, 0x7d0
400eb6e3:       a8f2a5          call8   4009460c <vTaskDelay>
400eb6e6:       ffdac6          j       400eb655 <xxx_task+0x9>
400eb6e9:       95cfa1          l32r    a10, 400d0e28 <_stext+0xe08>
400eb6ec:       a8f1e5          call8   4009460c <vTaskDelay>
400eb6ef:       ffd886          j       400eb655 <xxx_task+0x9>

Notice that the call to xxx_do_something is missing.

Fix underlying gcc bug to support c++20 "requires"

Issue submission guidelines

See detaled guidelines. In short:

  • Report crosstool-NG version: As used by PlatformIO, I can only guess the value of 8.4.0+2021r2-patch5
  • Report host OS and its version: Linux Mint 21
  • Attach .config (unless the issue is not related to any configuration): -
  • Attach build.log (unless crosstool-NG fails before the build starts): build.log

Relevant snippet from the build.log

In file included from include/osw_config.h:9,
                 from include/osw_config_keys.h:11,
                 from include/osw_hal.h:17,
                 from include/./apps/_experiments/fireworks.h:4,
                 from src/apps/_experiments/fireworks.cpp:2:
include/OswLogger.h: In instantiation of 'void OswLogger::log(const char*, unsigned int, OswLogger::severity_t, auto:5&& ...) [with auto:5 = {const char (&)[18], const char*&}]':
include/OswLogger.h:35:9:   required from 'void OswLogger::debug(const char*, unsigned int, auto:4&& ...) [with auto:4 = {const char (&)[18], const char*&}]'
include/osw_config.h:51:5:   required from here
include/OswLogger.h:56:44: internal compiler error: in tsubst_copy, at cp/pt.c:15387
             if constexpr ( requires { std::string_view(message); }) { // If you can ignore char*-s, you could also use std::ranges::input_range<decltype(message)>
                                            ^~~~~~~~~~~~~~~~~~~~
unrecognized DWARF version in .debug_info at 6
unrecognized DWARF version in .debug_info at 6

I'm very sorry, if this is the wrong repository to report this, but I have no idea where to report this instead. 😓

Support for C++20 ranges

Hey there!

Long story short, I'm looking for C++20 ranges support when programming my ESP32-S3 with the Arduino framework.

I'm working on a project for an ESP32-S3-based board (the LilyGo T-Display-S3), and, when trying to use the C++20 ranges library, I run into the error:

fatal error: ranges: No such file or directory

I'm using PlatformIO to develop this project. An initial question in the PlatformIO forum, lead me to the ESP32 Arduino forum, which has subsequently lead me to this place.

Along this adventure, I have come across this seemingly similar issue about support for C++20 chrono: espressif/esp-idf#12914 (comment)

It is mentioned that this will be supported starting with GCC14. A quick look at https://en.cppreference.com/w/cpp/compiler_support reveals that "The One Ranges Proposal" should be supported from GCC10. And I can see that the latest release in this repository upgrades the GCC version to 13.2.0. So, I should be able to use ranges, no?

All of this has me quite confused, especially considering that I'm simply trying to port a project that works on an ESP8266. Could somebody explain to me what is going wrong, and if there's anything I can do to fix it?

It is not quite obvious to me which compiler I'm actually using.
My PlatformIO.ini looks like this:

[env:lilygo-t-display-s3]
; platform = espressif32
platform = https://github.com/platformio/platform-espressif32.git
board = lilygo-t-display-s3
framework = arduino
build_unflags = -std=gnu++11
build_flags = -std=gnu++2a //https://community.platformio.org/t/which-c-standard-am-i-using/24597/4

With that, I get the following information when trying to build my project:

PACKAGES:
 - framework-arduinoespressif32 @ 3.20014.231204 (2.0.14)
 - tool-esptoolpy @ 1.40501.0 (4.5.1)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5

Kind regards

我使用Arduion编译Esp32项目时出错,换用2.0.11\2.0.12\2.0.14\3.0.0 Alpha版本的库和多个IDE版本均报错"\bits\allocator.h:46:10: fatal error: bits/c++allocator.h: No such file or directory"

FQBN: esp32:esp32:esp32s3
使用平台的 ‘esp32s3’ 开发板,在列出的文件夹中:C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11
使用平台的 ‘esp32’ 代码,在列出的文件夹中:C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11

cmd /c if exist "D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\partitions.csv" COPY /y "D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\partitions.csv" "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\partitions.csv"
cmd /c if not exist "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\partitions.csv" if exist "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\variants\esp32s3\partitions.csv" COPY "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\variants\esp32s3\partitions.csv" "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\partitions.csv"
cmd /c if not exist "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\partitions.csv" COPY "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\tools\partitions\default.csv" "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\partitions.csv"
cmd /c IF EXIST "D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\bootloader.bin" ( COPY /y "D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\bootloader.bin" "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\lvgl_Porting.ino.bootloader.bin" ) ELSE ( IF EXIST "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\variants\esp32s3\bootloader.bin" ( COPY "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\variants\esp32s3\bootloader.bin" "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\lvgl_Porting.ino.bootloader.bin" ) ELSE ( "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\4.5.1/esptool.exe" --chip esp32s3 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB -o "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\lvgl_Porting.ino.bootloader.bin" "C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\tools\sdk\esp32s3\bin\bootloader_qio_80m.elf" ) )
esptool.py v4.5.1
Creating esp32s3 image...
Merged 1 ELF section
Successfully created esp32s3 image.
cmd /c if exist "D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\build_opt.h" COPY /y "D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\build_opt.h" "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\build_opt.h"
cmd /c if not exist "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\build_opt.h" type nul > "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\build_opt.h"
cmd /c type nul > "D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71/file_opts"
正在检测使用的库。。。
C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0/bin/xtensa-esp32s3-elf-g++ -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -D_GNU_SOURCE -DIDF_VER="v4.4.5" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/newlib/platform_include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/freertos/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/freertos/include/esp_additions/freertos -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/freertos/port/xtensa/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/freertos/include/esp_additions -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_hw_support/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_hw_support/include/soc -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_hw_support/include/soc/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_hw_support/port/esp32s3/private_include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/heap/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/log/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/lwip/include/apps -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/lwip/include/apps/sntp -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/lwip/lwip/src/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/lwip/port/esp32/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/lwip/port/esp32/include/arch -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/soc/esp32s3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/hal/esp32s3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/hal/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/hal/platform_port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_rom/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_rom/include/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_rom/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_common/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_system/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_system/port/soc -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_system/port/public_compat -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/xtensa/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/xtensa/esp32s3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/driver/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/driver/esp32s3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_pm/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_ringbuf/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/efuse/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/efuse/esp32s3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/vfs/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_wifi/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_event/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_netif/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_eth/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/tcpip_adapter/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_phy/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_phy/esp32s3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_ipc/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/app_trace/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_timer/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/mbedtls/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/mbedtls/mbedtls/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/mbedtls/esp_crt_bundle/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/app_update/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/spi_flash/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bootloader_support/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/nvs_flash/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/pthread/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_gdbstub/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_gdbstub/xtensa -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_gdbstub/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espcoredump/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espcoredump/include/port/xtensa -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/wpa_supplicant/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/wpa_supplicant/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/wpa_supplicant/esp_supplicant/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/ieee802154/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/console -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/asio/asio/asio/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/asio/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/common/osi/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/include/esp32c3/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/common/api/include/api -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/blufi/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/common/btc/profile/esp/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/host/bluedroid/api/include/api -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_common/tinycrypt/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_core/storage -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/btc/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/common/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/client/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/mesh_models/server/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/core/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api/models/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/bt/esp_ble_mesh/api -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/cbor/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/unity/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/unity/unity/src -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/cmock/CMock/src -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/coap/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/coap/libcoap/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/nghttp/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/nghttp/nghttp2/lib/includes -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-tls -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-tls/esp-tls-crypto -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_adc_cal/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_hid/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/tcp_transport/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_http_client/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_http_server/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_https_ota/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_https_server/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_lcd/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_lcd/interface -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/protobuf-c/protobuf-c -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/protocomm/include/common -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/protocomm/include/security -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/protocomm/include/transports -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/mdns/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_local_ctrl/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/sdmmc/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_serial_slave_link/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_websocket_client/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/expat/expat/expat/lib -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/expat/port/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/wear_levelling/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/fatfs/diskio -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/fatfs/vfs -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/fatfs/src -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/freemodbus/freemodbus/common/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/idf_test/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/idf_test/include/esp32s3 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/jsmn/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/json/cJSON -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/libsodium/libsodium/src/libsodium/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/libsodium/port_include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/mqtt/esp-mqtt/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/openssl/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/perfmon/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/spiffs/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/usb/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/ulp/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/wifi_provisioning/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/rmaker_common/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_diagnostics/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/rtc_store/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_insights/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/json_parser/upstream/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/json_parser/upstream -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/json_generator/upstream -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_schedule/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp_secure_cert_mgr/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_rainmaker/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/gpio_button/button/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/qrcode/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/ws2812_led -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/freertos/include/freertos -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/arduino_tinyusb/tinyusb/src -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/arduino_tinyusb/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp_littlefs/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/tool -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/typedef -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/image -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/math -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/nn -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/layer -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/detect -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp-dl/include/model_zoo -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp32-camera/driver/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/esp32-camera/conversions/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dotprod/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/support/mem/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/hann/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_harris/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/blackman_nuttall/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/nuttall/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/windows/flat_top/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/iir/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fir/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/add/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sub/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mul/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/addc/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/mulc/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/math/sqrt/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/matrix/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/fft/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/dct/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/conv/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/common/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/espressif__esp-dsp/modules/kalman/ekf_imu13states/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/include/fb_gfx/include -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11/tools/sdk/esp32s3/qio_qspi/include -mlongcalls -ffunction-sections -fdata-sections -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-sign-compare -ggdb -freorder-blocks -Wwrite-strings -fstack-protector -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu++11 -fexceptions -fno-rtti -c -w -Os -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32S3_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32S3_DEV" -DARDUINO_VARIANT="esp32s3" -DARDUINO_PARTITION_default -DESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=0 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0 @d:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71/build_opt.h @d:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71/file_opts -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32 -IC:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\variants\esp32s3 D:\TEMP\arduino\sketches\02A85770975DD838CA2F7B97F8440F71\sketch\lvgl_Porting.ino.cpp -o nul
bits/c++allocator.h 的替代方案:[]
ResolveLibrary(bits/c++allocator.h)
-> 候选: []
In file included from c:\users\UserName\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\string:41,
from c:\users\UserName\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\stdexcept:39,
from c:\users\UserName\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\array:39,
from c:\users\UserName\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\tuple:39,
from c:\users\UserName\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\functional:54,
from C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/HardwareSerial.h:49,
from C:\Users\UserName\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/Arduino.h:184,
from D:\UserName\Downloads\ESP32-S3-Touch-LCD-4.3_Code\Arduino\lvgl_Porting\lvgl_Porting.ino:29:
c:\users\UserName\appdata\local\arduino15\packages\esp32\tools\xtensa-esp32s3-elf-gcc\esp-2021r2-patch5-8.4.0\xtensa-esp32s3-elf\include\c++\8.4.0\bits\allocator.h:46:10: fatal error: bits/c++allocator.h: No such file or directory
#include <bits/c++allocator.h> // Define the base class to std::allocator.
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.

exit status 1

Compilation error: exit status 1

Feature request: c++20 support

Is there any plan to add partial support to c++20?
I am especially interested in support from coroutines which comes with gcc 10.
If not what does it take to upgrade gcc?

expat-2.2.5 cannot be downloaded

Issue submission guidelines

See detaled guidelines. In short:

  • Report crosstool-NG version
    esp-2020r3
  • Report host OS and its version
    x86_64 Kubuntu 20.04 LTS
  • Attach .config (unless the issue is not related to any configuration)
  • Attach build.log (unless crosstool-NG fails before the build starts)
    build.log

I have followed the instructions from esp-idf and the script is unable to download expat-2.2.5 because of Unable to establish SSL connection.

Generate latest toolchain for ESP8266 - why was support dropped as of 2020r3?

I want to build the latest toolchain for use with both the ESP32 chips and ESP8266 RTOS and NonOS SDKs under Windows and Eclipse. The current builds are all created under MSYS and Mingw, and are not compatible with a full Cygwin stack.

I noticed that the last support for ESP8266 chips was 2020r3. Is there a technological reason support was dropped for later versions? I would really like to be able to have cross compilers all using the same versions of GCC, binutils and newlib because I'm starting to migrate my ESP8266 NonOS code over to use the RTOS SDK, and then to ESP32 based chips.

I'm happy to help to add these if required if it allows me to make a recent toolchain for both RTOS and NonOS

Build error on google colab

%cd /content
!apt -y install automake bison flex gawk gettext gperf help2man libncurses5-dev libtool-bin texinfo
!git clone https://github.com/espressif/crosstool-NG.git
%cd crosstool-NG
!git checkout esp-1.26.x
!git submodule update --init
!./bootstrap
!./configure --enable-local
!make install
!./ct-ng xtensa-esp32s3-elf
!echo "CT_ALLOW_BUILD_AS_ROOT=y" >> .config
!echo "CT_ALLOW_BUILD_AS_ROOT_SURE=y" >> .config
!echo "unset LD_LIBRARY_PATH" > build.sh
!echo "unset LIBRARY_PATH" >> build.sh
!echo "unset C_INCLUDE_PATH" >> build.sh
!echo "unset CFLAGS" >> build.sh
!echo "./ct-ng build" >> build.sh
!. ./build.sh

GH Actions Build

is failing since Mac-Os runner 10-15 is not a valid choice anymore.
Needs updating to an supported runner

final link failed: Bad value collect2: error: ld returned 1 exit status

command: make flash

Toolchain path: /home/dmitriy/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: crosstool-ng-1.22.0-80-g6c4433a
Compiler version: 5.2.0
Python requirements from /home/dmitriy/esp/esp-idf/requirements.txt are satisfied.

App "masterboard" version: v1.0.5-1-g1d284c3
LD build/masterboard.elf
/home/dmitriy/esp/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make: *** [/home/dmitriy/esp/esp-idf/make/project.mk:521: /home/dmitriy/git/master-board/firmware/build/masterboard.elf] Error 1

More Information.

what is in /home/dmitriy/esp/esp-idf/make/project.mk:521:. It is

$(CC) $(LDFLAGS) -o $@ -Wl,-Map=$(APP_MAP)

ubuntu 20.04
This is the code: https://github.com/open-dynamic-robot-initiative/master-board/blob/master/firmware/README.md

expat-2.2.9.tar.gz Not Found

Issue submission guidelines

See detailed guidelines. In short:

  • Report crosstool-NG version: esp-2021r1 (same error with esp2020r3)
  • Report host OS and its version: debian buster (aarch64)
  • Attach build.log (unless crosstool-NG fails before the build starts). Excerpt:
[EXTRA]    Verifying SHA512 checksum for 'mpc-1.1.0.tar.gz'
[EXTRA]    Retrieving 'expat-2.2.9'
[ERROR]    expat: download failed
[ERROR]   
[ERROR]  >>[0m
[ERROR]  >>  Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>[0m
[ERROR]  >>  Error happened in: CT_Abort[scripts/functions@487]
[ERROR]  >>        called from: CT_DoFetch[scripts/functions@2125]
[ERROR]  >>        called from: CT_PackageRun[scripts/functions@2085]
  • Reproduce:
git clone https://github.com/espressif/crosstool-NG.git
cd crosstool-NG
git checkout esp-2021r1
git submodule update --init
./bootstrap && ./configure --enable-local && make
cd ~/esp-idf/crosstool-NG
./ct-ng xtensa-esp32-elf
./ct-ng build

I'm trying this since the official esp-idf does not (yet?) support aarch64.

Assembly code macros not working

I have defined a macro in lib1funcs.S, but it seems that the macro is not visible in #include "ieee754-sf.S".
It seems like there will be an error if it is commented out.
If the file has a large number of characters, it seems to cause a macro undefined error. Is there a limit to the buffer size?

/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
: Assembler messages:
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:11: Error: unknown opcode or format name 'lea
f_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:21: Error: unknown opcode or format name 'lea
f_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:27: Error: unknown opcode or format name 'lea
f_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:45: Error: unknown opcode or format name 'lea
f_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:55: Error: unknown opcode or format name 'lea
f_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:67: Error: unknown opcode or format name 'lea
f_entry'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:141: Error: unknown opcode or format name 'le
af_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:183: Error: unknown opcode or format name 'le
af_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:196: Error: unknown opcode or format name 'le
af_return'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:207: Error: unknown opcode or format name 'do
_nsau'
/data/data/com.termux/files/usr/tmp/ccfRtRCu.s
:232: Error: unknown opcode or format name 'le
af_return'

build.sh

#!/bin/bash
# after of "ct-ng xtensa-esp32s3-elf"
ROOT_DIR="/data/data/com.termux/files/home/git/crosstool-NG"
BUILD_DIR="$ROOT_DIR/.build-xtensa-esp32s3-elf/xtensa-esp32s3-elf/"

${BUILD_DIR}/build/build-cc-gcc-core/gcc/xgcc \
  -B${BUILD_DIR}/build/build-cc-gcc-core/gcc/ \
  -B${BUILD_DIR}/buildtools/xtensa-esp32s3-elf/bin/ \
  -B${BUILD_DIR}/buildtools/xtensa-esp32s3-elf/lib/ \
  -isystem ${BUILD_DIR}/buildtools/xtensa-esp32s3-elf/include \
  -isystem ${BUILD_DIR}/buildtools/xtensa-esp32s3-elf/sys-include \
  -I${BUILD_DIR}/src/gcc/libgcc \
  -I${BUILD_DIR}/src/gcc/gcc \
  -I${BUILD_DIR}/src/gcc/include \
  -o _addsubsf3_s.o \
  -DL_addsubsf3 \
  -c ${BUILD_DIR}src/gcc/libgcc/config/xtensa/lib1funcs.S

xgcc -v

Using built-in specs.
COLLECT_GCC=/data/data/com.termux/files/home/g
it/crosstool-NG/.build-xtensa-esp32s3-elf/xten
sa-esp32s3-elf//build/build-cc-gcc-core/gcc/xg
cc
Target: xtensa-esp32s3-elf
Configured with: /data/data/com.termux/files/h
ome/git/crosstool-NG/.build-xtensa-esp32s3-elf
/xtensa-esp32s3-elf/src/gcc/configure --build=
aarch64-linux-android --host=aarch64-linux-and
roid --target=xtensa-esp32s3-elf --prefix=/dat
a/data/com.termux/files/home/git/crosstool-NG/
.build-xtensa-esp32s3-elf/xtensa-esp32s3-elf/b
uildtools --exec_prefix=/data/data/com.termux/
files/home/git/crosstool-NG/.build-xtensa-esp3
2s3-elf/xtensa-esp32s3-elf/buildtools --with-l
ocal-prefix=/data/data/com.termux/files/home/g
it/crosstool-NG/builds/xtensa-esp32s3-elf/xten
sa-esp32s3-elf --with-sysroot=/data/data/com.t
ermux/files/home/git/crosstool-NG/builds/xtens
a-esp32s3-elf/xtensa-esp32s3-elf --with-native
-system-header-dir=/include --with-newlib --en
able-threads=no --disable-shared --with-pkgver
sion='crosstool-NG esp-13.2.0_20240305' --disa
ble-__cxa_atexit --disable-libgomp --disable-l
ibmudflap --disable-libmpx --disable-libssp --
disable-libquadmath --disable-libquadmath-supp
ort --disable-libstdcxx-verbose --disable-libs
tdcxx --with-gmp=/data/data/com.termux/files/h
ome/git/crosstool-NG/.build-xtensa-esp32s3-elf
/xtensa-esp32s3-elf/buildtools --with-mpfr=/da
ta/data/com.termux/files/home/git/crosstool-NG
/.build-xtensa-esp32s3-elf/xtensa-esp32s3-elf/
buildtools --with-mpc=/data/data/com.termux/fi
les/home/git/crosstool-NG/.build-xtensa-esp32s
3-elf/xtensa-esp32s3-elf/buildtools --with-isl
=/data/data/com.termux/files/home/git/crosstoo
l-NG/.build-xtensa-esp32s3-elf/xtensa-esp32s3-
elf/buildtools --enable-lto --enable-target-op
tspace --without-long-double-128 --disable-nls
 --enable-multiarch --enable-languages=c --ena
ble-threads=posix --with-gnu-ld --disable-__cx
a_atexit --without-headers   --disable-bootstr
ap --disable-werror
Thread model: posix
Supported LTO compression algorithms: zlib zst
d
gcc version 12.2.0 (crosstool-NG esp-13.2.0_20
240305) 

Please upload 2022r1 to platformio registry

Would it be possible to upload this release of esp-2022r1 to platformio registry so it's possible to build esp-idf's master with platformio ?

Right now, it requires hacking the esp-idf codebase to downgrade the required toolchain version, but it would be better and more future proof to be able to directly use the appropriate toolchain.

Thanks!

esp-2020r3 code for ESP8266 RTOS SDK is not available

Issue submission guidelines

  • crosstool-NG version N/A
  • host OS and its version N/A

with espressif/ESP8266_RTOS_SDK@fd54106, the latest ESP8266 RTOS SDK requires esp-2020r3 version (gcc 8.x) of toolchain. however, the code is not available. the last commit in esp8266-1.22.x branch was made in 2019. this is not only inconvenience (i cannot build the toolchain), but also license violation, IIRC.

slightly off-topic: esp-idf is probably one of the best OSS SDK by vendors. the development team is very responsible, listen to customers and users, quick to fix issues in general, and writes great documentations. however, ESP8266 RTOS SDK is just like many products by Chinese vendors. Issues are ignored, documentation is sparse, sub-modules are left behind (esp-mqtt is a good example). I do understand espressif does not want to invest resources on legacy products, but hope it maintains the SDK with a little bit more love.

support for arm64-apple-macosx13.0.0 binaries

See also arduino/arduino-ide#1818 and https://forum.arduino.cc/t/one-mac-sees-my-arduinos-the-other-doesnt/1076201/20. I'm on macos on apple silicon. Following https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/, I'm using https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json. Grepping the json for apple, I see cross compilers provided for x86_64-apple-darwin but not any of the apple silicon targets, which are aarch64 based.

This can result in the Arduino IDE swallowing errors since it can't run the utilities from the command line if rosetta is not installed.

xtensa-esp32s2-elf-gcc: internal compiler error: Segmentation fault signal terminated program cc1

Issue submission guidelines

See detaled guidelines. In short:

  • Report crosstool-NG version
  • Report host OS and its version
  • Attach .config (unless the issue is not related to any configuration)
  • Attach build.log (unless crosstool-NG fails before the build starts)

I'm using the the compiler installed through platofomio.ini with platform = [email protected]
The same issues happen on 5.3.0, 5.2.0 and 5.1.0. have not tested prior to that.

I'm working on building from crosstool-ng 1.25 but have not been able to get platformio to accept my custom toolchain as of yet..

I have two systems, 1st AMD Ryzen 5950x w/ 64GB of ram, Linux Mint 20.3 with latest updates this is the system that builds always fail with.

I have an Intel Core I7 based Linux Mint 20.3 system with all the latest updates that everything works fine on. No seg faults.

The issue seems to happen at random almost never on the same file.

configure: error: no usable python found at python2

Hi!
Tried to do a Canadian build with this configuration:

[EXTRA]    Building a toolchain for:
[EXTRA]      build  = x86_64-pc-linux-gnu
[EXTRA]      host   = arm-linux-gnueabi
[EXTRA]      target = xtensa-esp32-elf
$ ./ct-ng --version
Copyright (C) 1988-2016 Free Software Foundation, Inc.  
Lizenz GPLv3+: GNU GPL Version 3 oder später <http://gnu.org/licenses/gpl.html>  
Dies ist freie Software: Sie können sie nach Belieben ändern und weiter verteilen.  
Soweit es die Gesetze erlauben gibt es KEINE GARANTIE.  
GNU Make 4.2.1  
Gebaut für x86_64-pc-linux-gnu  
$ uname -a
Linux spndevuan3work 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux

Everything went fine until it tries to find python2.

[ERROR]    configure: error: no usable python found at python2  
[ERROR]    make[2]: *** [Makefile:9533: configure-gdb] Error 1  
[ERROR]    make[2]: *** Waiting for unfinished jobs....  
[ALL  ]    mv -f .deps/ctf-create.Tpo .deps/ctf-create.Plo  
[ALL  ]    /bin/bash ./libtool  --tag=CC   --mode=link arm-host_unknown-linux-gnueabi-gcc -std=gnu99 -Wall -W -Wall -Wno-narrowing -Wwrite-strings -Wmissing-format-attribute -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -pedantic -Wno-long-long  -I/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/src/gdb/libctf/../zlib -O2 -g -pipe -I/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/buildtools/complibs-host/include -version-info 0:0:0  -Wl,--version-script='/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/src/gdb/libctf/libctf.ver' -L/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/buildtools/complibs-host/lib -o libctf.la  ctf-archive.lo ctf-dump.lo ctf-create.lo ctf-decl.lo ctf-error.lo ctf-hash.lo ctf-labels.lo ctf-link.lo ctf-lookup.lo ctf-open.lo ctf-string.lo ctf-subr.lo ctf-types.lo ctf-util.lo  ctf-open-bfd.lo -L./../zlib -lz -ldl   
[ALL  ]    /bin/bash ./libtool  --tag=CC   --mode=link arm-host_unknown-linux-gnueabi-gcc -std=gnu99 -Wall -W -Wall -Wno-narrowing -Wwrite-strings -Wmissing-format-attribute -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -pedantic -Wno-long-long  -I/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/src/gdb/libctf/../zlib -O2 -g -pipe -I/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/buildtools/complibs-host/include -version-info 0:0:0  -Wl,--version-script='/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/src/gdb/libctf/libctf.ver' -L/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/buildtools/complibs-host/lib -o libctf-nobfd.la  ctf-archive.lo ctf-dump.lo ctf-create.lo ctf-decl.lo ctf-error.lo ctf-hash.lo ctf-labels.lo ctf-link.lo ctf-lookup.lo ctf-open.lo ctf-string.lo ctf-subr.lo ctf-types.lo ctf-util.lo  -L./../zlib -lz -ldl   
[ALL  ]    libtool: link: warning: -version-info/-version-number' is ignored for convenience libraries  
[ALL  ]    libtool: link: warning: -version-info/-version-number' is ignored for convenience libraries  
[ALL  ]    libtool: link: arm-host_unknown-linux-gnueabi-ar rc .libs/libctf.a  ctf-archive.o ctf-dump.o ctf-create.o ctf-decl.o ctf-error.o ctf-hash.o ctf-labels.o ctf-link.o ctf-lookup.o ctf-open.o ctf-string.o ctf-subr.o ctf-types.o ctf-util.o ctf-open-bfd.o  
[ALL  ]    libtool: link: arm-host_unknown-linux-gnueabi-ar rc .libs/libctf-nobfd.a  ctf-archive.o ctf-dump.o ctf-create.o ctf-decl.o ctf-error.o ctf-hash.o ctf-labels.o ctf-link.o ctf-lookup.o ctf-open.o ctf-string.o ctf-subr.o ctf-types.o ctf-util.o  
[ALL  ]    libtool: link: arm-host_unknown-linux-gnueabi-ranlib .libs/libctf.a  
[ALL  ]    libtool: link: arm-host_unknown-linux-gnueabi-ranlib .libs/libctf-nobfd.a  
[ALL  ]    libtool: link: ( cd ".libs" && rm -f "libctf.la" && ln -s "../libctf.la" "libctf.la" )  
[ALL  ]    libtool: link: ( cd ".libs" && rm -f "libctf-nobfd.la" && ln -s "../libctf-nobfd.la" "libctf-nobfd.la" )  
[ALL  ]    make[4]: Leaving directory '/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/build/build-gdb-cross/libctf'  
[ALL  ]    make[3]: Leaving directory '/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/build/build-gdb-cross/libctf'  
[ALL  ]    make[2]: Leaving directory '/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/build/build-gdb-cross'  
[ERROR]    make[1]: *** [Makefile:851: all] Error 2  
[ALL  ]    make[1]: Leaving directory '/home/stefan/esp/crosstool-NG/.build/HOST-arm-linux-gnueabi/xtensa-esp32-elf/build/build-gdb-cross'  
[ERROR]    
[ERROR]  >>  
[ERROR]  >>  Build failed in step 'Installing cross-gdb'  
[ERROR]  >>        called in step '(top-level)'  
[ERROR]  >>  
[ERROR]  >>  Error happened in: CT_DoExecLog[scripts/functions@376]  
[ERROR]  >>        called from: do_gdb_backend[scripts/build/debug/300-gdb.sh@281]  
[ERROR]  >>        called from: do_debug_gdb_build[scripts/build/debug/300-gdb.sh@59]  
[ERROR]  >>        called from: do_debug[scripts/build/debug.sh@35]  
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@695]  
[ERROR]  >>  
[ERROR]  >>  For more info on this error, look at the file: 'build.log'  
[ERROR]  >>  There is a list of known issues, some with workarounds, in:  
[ERROR]  >>      https://crosstool-ng.github.io/docs/known-issues/  
[ERROR]  >>  
[ERROR]  >> NOTE: Your configuration includes features marked EXPERIMENTAL.  
[ERROR]  >> Before submitting a bug report, try to reproduce it without enabling  
[ERROR]  >> any experimental features. Otherwise, you'll need to debug it  
[ERROR]  >> and present an explanation why it is a bug in crosstool-NG - or  
[ERROR]  >> preferably, a fix.  
[ERROR]  >>  
[ERROR]  >>  If you feel this is a bug in crosstool-NG, report it at:  
[ERROR]  >>      https://github.com/crosstool-ng/crosstool-ng/issues/  
[ERROR]  >>  
[ERROR]  >>  Make sure your report includes all the information pertinent to this issue.  
[ERROR]  >>  Read the bug reporting guidelines here:  
[ERROR]  >>      http://crosstool-ng.github.io/support/  
[ERROR]    
[ERROR]  (elapsed: 77:16.08)```


$ /usr/bin/python2 --version
Python 2.7.16

$ /usr/bin/python3 --version
Python 3.7.3

Python 2 and 3 are installed and also package python-dev is installed - Python works well on this system.

config.txt

zlib-1.2.12 download fails

Current git master fails to download zlib:

[INFO ]  Retrieving needed toolchain components' tarballs
[EXTRA]    Retrieving 'zlib-1.2.12'
[ERROR]    zlib: download failed

If (and only if) I use a cached zlib, then the build succeeds.

`make install` fails by undefined symbol errors.

./bootstrap && ./configure --enable-local && make install fails by linking libraries undefined symbol errors

following the instruction

environment:
macOS 13.1 Ventura
gcc --version ->
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: x86_64-apple-darwin22.2.0
source: git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git
xtensa-1.22.x blanch version
binutils: stable 2.39 (bottled) [keg-only]
set env:
export LDFLAGS="-L/usr/local/opt/binutils/lib"
export CPPFLAGS="-I/usr/local/opt/binutils/include

Running autoconf...
configure.ac:334: warning: The macro `AC_HEADER_STDC' is obsolete.
configure.ac:334: You should run autoupdate.
./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from...
configure.ac:334: the top level
Done. You may now run:
    ./configure
checking build system type... x86_64-apple-darwin22.2.0
checking host system type... x86_64-apple-darwin22.2.0
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/local/bin/gsed
checking whether sed understands -r -i -e... yes
checking whether ln -s works... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking for gobjcopy... gobjcopy
checking for absolute path to gobjcopy... /usr/local/opt/binutils/bin/gobjcopy
checking for gobjdump... gobjdump
checking for absolute path to gobjdump... /usr/local/opt/binutils/bin/gobjdump
checking for greadelf... greadelf
checking for absolute path to greadelf... /usr/local/opt/binutils/bin/greadelf
checking for gperf... gperf
checking for absolute path to gperf... /usr/bin/gperf
checking for bison... bison
checking for flex... flex
checking for makeinfo... makeinfo
checking for cut... cut
checking for stat... stat
checking for readlink... readlink
checking for wget... wget
checking for tar... tar
checking for gzip... gzip
checking for bzip2... bzip2
checking for help2man... help2man
checking for gpatch... no
checking for patch... patch
checking for absolute path to patch... /usr/bin/patch
checking for bash >= 3.1... /bin/bash
checking for GNU awk... /usr/local/bin/gawk
checking for GNU make >= 3.80... /usr/bin/make
checking whether /usr/bin/make sets $(MAKE)... yes
checking for make 3.81... yes
checking for GNU libtool >= 1.5.26... /usr/local/bin/glibtool
checking for GNU libtoolize >= 1.5.26... /usr/local/bin/glibtoolize
checking for GNU automake >= 1.10... /usr/local/bin/automake
checking for the type used in gperf declarations... unsigned int
  |
  |
  |
checking for library containing bindtextdomain... -lintl
checking for ncurses/ncurses.h... no
checking for ncurses/curses.h... no
checking for ncursesw/curses.h... no
checking for ncurses.h... yes
checking for library containing initscr... -lncurses
checking for library containing tgetent... none required
configure: overiding all of --prefix and the likes, because --enable-local was set
configure: creating ./config.status
config.status: creating Makefile
  SED    'ct-ng'
  SED    'scripts/crosstool-NG.sh'
  SED    'scripts/saveSample.sh'
  SED    'scripts/showTuple.sh'
  GEN    'config/configure.in'
  GEN    'paths.mk'
  GEN    'paths.sh'
  LD     'nconf'
Undefined symbols for architecture x86_64:
  "_current_item", referenced from:
      _item_data in nconf.o
      _curses_item_index in nconf.o
      _item_tag in nconf.o
      _get_mext_match in nconf.o
      _btn_dialog in nconf.gui.o
  "_free_item", referenced from:
      _clean_items in nconf.o
      _item_add_str in nconf.o
      _btn_dialog in nconf.gui.o
  "_free_menu", referenced from:
      _main in nconf.o
      _btn_dialog in nconf.gui.o
  "_item_count", referenced from:
      _center_item in nconf.o
 |  
 |
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [nconf] Error 1
make[1]: *** [build-lib-kconfig] Error 2
make: *** [install] Error 2

could you please help me to pass make install?

Missing dlls for riscv32-esp-elf-gdb

Issue submission guidelines

This is on Windows 10 (see https://esp32.com/viewtopic.php?f=13&t=21430&p=79274#p79274)

See detaled guidelines. In short:

invoking riscv32-esp-elf-gdb results in a message

The code execution cannot proceed because libgcc_s_seh-1.dll was not found. Reinstalling the program may fix this problem.
The code execution cannot proceed because libstdc++-6.dll was not found. Reinstalling the program may fix this problem

  • Report crosstool-NG version

Downloaded riscv32-esp-elf-gcc8_4_0-esp-2021r1-win64.zip. No DLLs present in file. Tried reinstalling master branch ESP-IDF, etc.. Strangely this used to work until I decided to try a "clean" install of master branch of ESP-IDF

  • Report host OS and its version
    Windows 10

  • Attach .config (unless the issue is not related to any configuration)

  • Attach build.log (unless crosstool-NG fails before the build starts)

Possible bug in xtensa-esp32-elf-g++ (crosstool-NG esp-2021r2-patch5) 8.4.0

I have a case where I do a "new in place" of an object with one uninitialized field.

That field is set before the memory is used in "new in place" operation.

When the function that allocates the memory for the object and initializes that field gets in-lined, the compiler chooses to skip that store falsely assuming that it will be overwritten by the constructor (?)

The solution is compiler flag "-flifetime-dse=1".

Am I doing UB or is it a bug?

Kind regards

Please upload esp-12.2.0 to platformio registry

@antmak to make it possible for developers to adopt Platformio projects to GCC 12.2
Personally i would like to test/support the started Arduino port (based on IDF5.1) with Platformio. Building the framework with Arduino Lib Builder does work. Sadly it cant be used with Platformio since the needed gcc 12.2 toolchains are not available from Platformio registry. (fyi @me-no-dev)

xtensa-esp-elf: how to influence endianness ?

(Posted here too: esp-rs/esp-idf-sys#271)

In esp-idf version 5.1 onwards, the gcc used is just xtensa-esp-elf - that gcc has __XCHAL_HAVE_BE set to 1 .. So if I am compiling for esp32, what exactly is the magic going on behind the scenes to compile as little endian ? xtensa-esp32-elf has it set to 0 nicely. I see a lot of discussions online which says an "xtensa-overlays.h" or "xtensa-config.h" or "core.h" or "core-isa.h" can be used to influence gcc to produce BE/LE, but I cant find exactly how that works - any pointers will be highly appreciated

@Lapshin I see the commit 9691412 where you had unified the toolchain - I am guessing you are probably the only one who can help with an answer to this question.

xtensa: Size optimization regression between GCC 8.4.0 and 13.2.0

We are migrating from IDF 4.4.4 to 5.2.1 and among the many changes is the toolchgain update from GCC 8.4.0 (xtensa-esp32-elf-gcc8_4_0-esp-2021r2-patch5) to 13.2.0 (xtensa-esp-elf-13.2.0_20230928).

Unfortunately, it seems that it comes with an across the board regression in the output binary size - many functions gain size, resulting in overall binary size increase, most critically we are bumping into IRAM size limits on some of our apps.

By comparing code generated with the different toolchains, i identified the following problems:

  • movi / mov.n : generates movi for small numbers in some cases, where mov.n could be used. 8.4 is doing it too, but 13 does it more often, it seems - at least in this particular function.
  • the new toolchain replaces certain literals with bit operations, for example 0xffffff is generated as: movi.n a9, -1 | srli a9, a9, 8. it saves on memory access and literal but uses 5 instruction bytes instead of 3.
  • sometimes this code is duplicated where previous result could be reused.

On the other hand, there are positives too:

  • inlined loop-based memset: size-neutral and eliminates a call. neat!
  • better register allocation: using a10 avoids an extra move when it's used again as an argument to a function call.

This was after just a quick look at one particular function: spi_flash_chip_winbond_page_program, it gained 10 bytes. 4 bytes of those are accounted for by initialization of .flags, but even without that the function comes out 2 bytes bigger. Here are the notes from my analysis.

fatal error: type_traits: No such file or directory

When i tried to compile for esp32s3, the c++ headers file <type_traits> could not be found. However cmath, cstdio, cstring could be found normally.

Compiler version: esp-13.2.0_20230928
OS: Ubuntu 22.04.3 LTS on 5.15.133.1-microsoft-standard-WSL2

Compile command:
/home/wyt/xtensa-esp-elf/bin/xtensa-esp32s3-elf-g++ -DCONFIG_ARCH_BOARD_PX4_ESP32S3 -DCONSTRAINED_MEMORY -D_SYS_CDEFS_H_ -D_SYS_REENT_H_ -D__CUSTOM_FILE_IO__ -D__PX4_NUTTX -D__STDC_FORMAT_MACROS -I/home/wyt/px4_14_esp32/PX4-Autopilot/boards/px4/esp32s3/src -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/src/px4/common/include -I/home/wyt/px4_14_esp32/PX4-Autopilot/build/px4_esp32s3_default -I/home/wyt/px4_14_esp32/PX4-Autopilot/build/px4_esp32s3_default/src/lib -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/src/px4/espressif/esp32s3/include -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/common -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/common/include -I/home/wyt/px4_14_esp32/PX4-Autopilot/src -I/home/wyt/px4_14_esp32/PX4-Autopilot/src/include -I/home/wyt/px4_14_esp32/PX4-Autopilot/src/lib -I/home/wyt/px4_14_esp32/PX4-Autopilot/src/lib/matrix -I/home/wyt/px4_14_esp32/PX4-Autopilot/src/modules -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/nuttx/arch/xtensa/src -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/nuttx/arch/xtensa/src/chip -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/nuttx/arch/xtensa/src/common -I/home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/apps/include -isystem /home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/include/cxx -isystem /home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/nuttx/include/cxx -isystem /home/wyt/px4_14_esp32/PX4-Autopilot/platforms/nuttx/NuttX/nuttx/include -mlongcalls -Wno-format -Wno-unused-function -Os -DNDEBUG -g -fdata-sections -ffunction-sections -fomit-frame-pointer -fmerge-all-constants -fno-signed-zeros -fno-trapping-math -freciprocal-math -fno-math-errno -fno-strict-aliasing -fvisibility=hidden -include visibility.h -Wall -Wextra -Werror -Wno-address -Wno-error=dangling-pointer -Wno-error=array-bounds -Wno-error=format-overflow= -Wno-error=unused-variable -Warray-bounds -Wcast-align -Wdisabled-optimization -Wdouble-promotion -Wfatal-errors -Wfloat-equal -Wformat-security -Winit-self -Wlogical-op -Wpointer-arith -Wshadow -Wuninitialized -Wunknown-pragmas -Wunused-variable -Wno-missing-field-initializers -Wno-missing-include-dirs -Wno-unused-parameter -fdiagnostics-color=always -Wno-stringop-truncation -fno-builtin-printf -fno-strength-reduce -Wformat=1 -Wunused-but-set-variable -Wno-format-truncation -fcheck-new -Wreorder -Wno-overloaded-virtual -fno-rtti -fno-exceptions -fno-sized-deallocation -fno-threadsafe-statics -nostdinc++ -std=gnu++14 -MD -MT msg/CMakeFiles/uorb_msgs.dir/topics_sources/autotune_attitude_control_status.cpp.obj -MF msg/CMakeFiles/uorb_msgs.dir/topics_sources/autotune_attitude_control_status.cpp.obj.d -o msg/CMakeFiles/uorb_msgs.dir/topics_sources/autotune_attitude_control_status.cpp.obj -c /home/wyt/px4_14_esp32/PX4-Autopilot/build/px4_esp32s3_default/msg/topics_sources/autotune_attitude_control_status.cpp

Related header file:
matrix.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.