espressif / crosstool-ng Goto Github PK
View Code? Open in Web Editor NEWThis project forked from jcmvbkbc/crosstool-ng
crosstool-NG with support for Xtensa
License: Other
This project forked from jcmvbkbc/crosstool-ng
crosstool-NG with support for Xtensa
License: Other
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.
The latest PlatformIO package https://registry.platformio.org/tools/espressif/toolchain-xtensa-esp32/versions does not include the patch1 and patch2 versions.
As mentioned here: platformio/platform-espressif32#705
If you try to use the (latest) 8.4.0+2021r2 package on windows, GDB (and possibly other tools) will not work because of the missing dll's.
Please generate a PlatformIO package that contains the latest patches.
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
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.n a9, -1 | srli a9, a9, 8
. it saves on memory access and literal but uses 5 instruction bytes instead of 3.On the other hand, there are positives too:
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.
The espressif32 platform v5.0.0 (https://registry.platformio.org/platforms/platformio/espressif32?version=5.0.0) requires the 8.4.0+2021r2-patch3 version of crosstool-NG to be available on the platformio registry. It was removed, making it impossible to build a project using version 5.0.0 of the espressif32 platform on PlatformIO.
@Lapshin The git modules are not found (main branch) when doing a git clone --recursive
The are nowhere to found
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)
hello, every committer:
I want to use crosstools(xtensa-esp32-elf-gcc8_4_0-esp-2021r1) to build my project. Will the GPL license force me to open my source code? Will this affect the commercial use of my products?
See detailed guidelines. In short:
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]
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.
Arduino requires archive sizes in it's configuration. Currently I have to download all archives just to grab the correct file sizes. I hope it's possible to include that in the sha256 file in the releases, so I do not have to download everything in the future :)
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!
The following simplified example causes an ICE in GCC for the versions listed in title, but not 12.2.0 (20230208).
O2
/O3
/Os
if -fno-expensive-optimizations
and/or -fno-tree-sra
are setO1
and Og
regardless of above flagsSeems like there are shenanigans when GCC tries to optimize the value structure then build the SLL/SLLI and MOVI/MOVI.N instruction assignments. I am not a compiler dev so out of my league here.
Reproduction is fairly simple, compile with -Os
to crash, compile with -Os -fno-tree-sra
and/or -Os -fno-expensive-optimizations
to workaround.
#include <cstdint>
struct command
{
uint8_t address;
uint8_t data;
};
//triggers ICE in elimination_costs_in_insn, at reload1.cc:3539 unless compiled with -fno-expensive-optimizations
command triggersICE()
{
return command{0x01, 0b1000};
};
//Nothing below this line is necessary to reproduce, just for clarity on what does/does not trigger the bug.
command triggersICEB()
{
return command{0xff, 0xf7};
};
command doesNotTriggerICEA()
{
return command{0x00, 0b1000};
};
command doesNotTriggerICEB()
{
return command{0xff, 0b100};
};
command doesNotTriggerICEC()
{
return command{0x01, 0b111};
};
command doesNotTriggerICED()
{
return command{0xff, 0xf8};
};
during RTL pass: ira
<source>: In function 'command triggersICE()':
<source>:12:1: internal compiler error: in elimination_costs_in_insn, at reload1.cc:3539
12 | };
| ^
0x164b716 internal_error(char const*, ...)
???:0
0x66c633 fancy_abort(char const*, int, char const*)
???:0
0xd21894 calculate_elim_costs_all_insns()
???:0
0xbcde8c ira_costs()
???:0
0xbc75b4 ira_build()
???:0
EMERGENCY DUMP:
triggersICE
Dataflow summary:
;; fully invalidated by EH 0 [a0] 8 [a8] 9 [a9] 10 [a10] 11 [a11] 12 [a12] 13 [a13] 14 [a14] 15 [a15] 18 [b0] 19 [f0] 20 [f1] 21 [f2] 22 [f3] 23 [f4] 24 [f5] 25 [f6] 26 [f7] 27 [f8] 28 [f9] 29 [f10] 30 [f11] 31 [f12] 32 [f13] 33 [f14] 34 [f15] 35 [acc]
;; hardware regs used 1 [sp] 16 [fp] 17 [argp]
;; regular block artificial uses 1 [sp] 7 [a7] 16 [fp] 17 [argp]
;; eh block artificial uses 1 [sp] 7 [a7] 16 [fp] 17 [argp]
;; entry block defs 0 [a0] 1 [sp] 2 [a2] 3 [a3] 4 [a4] 5 [a5] 6 [a6] 7 [a7] 16 [fp] 17 [argp]
;; exit block uses 1 [sp] 2 [a2] 7 [a7] 16 [fp]
;; regs ever live 2 [a2]
;; ref usage r0={1d} r1={1d,2u} r2={2d,2u} r3={1d} r4={1d} r5={1d} r6={1d} r7={1d,2u} r16={1d,2u} r17={1d,1u}
;; total ref usage 20{11d,9u,0e} in 3{3 regular + 0 call} insns.
(note 1 0 3 NOTE_INSN_DELETED)
;; basic block 2, loop depth 0, count 1073741824 (estimated locally), maybe hot
;; prev block 0, next block 1, flags: (REACHABLE, RTL)
;; pred: ENTRY [always] count:1073741824 (estimated locally) (FALLTHRU)
;; bb 2 artificial_defs: { }
;; bb 2 artificial_uses: { u-1(1){ }u-1(7){ }u-1(16){ }u-1(17){ }}
;; lr in 1 [sp] 7 [a7] 16 [fp] 17 [argp]
;; lr use 1 [sp] 7 [a7] 16 [fp] 17 [argp]
;; lr def 2 [a2]
(note 3 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
(note 2 3 5 2 NOTE_INSN_FUNCTION_BEG)
(debug_insn 5 2 11 2 (debug_marker) "/example.cpp":11:2 -1
(nil))
(note 11 5 17 2 NOTE_INSN_DELETED)
(note 17 11 19 2 NOTE_INSN_DELETED)
(note 19 17 22 2 NOTE_INSN_DELETED)
(note 22 19 29 2 NOTE_INSN_DELETED)
(insn 29 22 30 2 (set (reg/i:HI 2 a2)
(const_int 2049 [0x801])) "/example.cpp":12:1 -1
(expr_list:REG_EQUAL (const_int 2049 [0x801])
(nil)))
(insn 30 29 0 2 (use (reg/i:HI 2 a2)) "/example.cpp":12:1 -1
(nil))
;; succ: EXIT [always] count:1073741824 (estimated locally) (FALLTHRU)
;; lr out 1 [sp] 2 [a2] 7 [a7] 16 [fp] 17 [argp]
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
After many hours (never did compiler build before) i finally managed to build native esp gcc 8.4.0 toolchains for Apple ARM. Uploaded here
Thx @espressif for https://github.com/espressif/gcc/commits/esp-11_2_0-dev this made it possible for me to do the backport.
(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.
git describe --tags
to find it): v4.4.1xtensa-esp32-elf-gcc --version
to find it): xtensa-esp32-elf-gcc (crosstool-NG esp-2021r1) 8.4.0I'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);
}
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>
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.
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.
for using the builded toolchain with PlatformIO a valid package.json
is neccessary.
The builded toolchains from earlephilhower for Arduino ESP8266 do already build and include this file
see esp-quick-toolchain commit
For ESP32 see espressif/arduino-esp32#4714 (comment)
Hello, I am using esp-idf 4.4.1 and I want to test the recently released 2022r1-rc1 toolchain. Is there any guide to make the idf.py using the new toolchain instead of the one shipped with it?
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.
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).
Current version in platformio registry is 12.2.0+20230208, is there any plan to update the package?
Toolchain release esp-12.2.0_20230208 is missing esp-12.2.0_20230208
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
We plan another esp-2022r1 release soon for our xtensa and riscv32 chips. Main changes:
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.)
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
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
See detaled guidelines. In short:
esp-2020r3
x86_64 Kubuntu 20.04 LTS
.config
(unless the issue is not related to any configuration)build.log
(unless crosstool-NG fails before the build starts)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
.
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.
See detaled guidelines. In short:
8.4.0+2021r2-patch5
.config
(unless the issue is not related to any configuration): -build.log
(unless crosstool-NG fails before the build starts): build.logRelevant 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. 😓
./bootstrap && ./configure --enable-local && make install
fails by linking libraries undefined symbol errorsenvironment:
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
make install
?See detaled guidelines. In short:
.config
(unless the issue is not related to any configuration)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.
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?
http://apps.samsung.com/themIe/ProductDetail.as?appId=greenu. Mllt.Crescentmoonnight_greenl
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?
%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
Can you please provide linux_aarch64 packages to the platformio platform? We need this for esphome on raspberry pis to compile firmwares.
please see the platformio feature request for reference.
platformio/platform-espressif32#699 (comment)
Thank you!
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
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)
tool xtensa-esp32-elf does not have versions compatible with platform linux-arm64
My autoconf version is new. Cannot downgrade.
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
@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"
]
}
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
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
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
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
is failing since Mac-Os runner 10-15 is not a valid choice anymore.
Needs updating to an supported runner
Hi,
When I use the current crosstool-NG repository to compile the xtensa-esp32-elf, I get stuck in identifying architecture(loong64). Refer to the image below. Could you please help me with this? Any advice will be appreciated.
And the other thing is that please support Loongarch Architecture. Here is the loongarch architecture document: LoongArch-Documentation
@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.
@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)
Thx a lot for the patch4 toolchains and supporting Apple ARM native!
It would be great if the toolchains would be soon available via the Platformio Registry.
Everyone could use already for Arduino ;-)
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.