Hi Roberto,

Since https://github.com/apache/nuttx/pull/7208 the NuttX build system
preprocesses every linker script file of a given configuration.
We've recently updated the makefiles and linker scripts of every supported
chip from the ESP32 family to benefit from this.
So you may need to update your out-of-tree build system to also preprocess
each linker script file (e.g. using "-E" argument from GCC) and pass the
output files to xtensa-esp32-elf-ld.
Notice that you'll need to provide all the include paths to GCC so that it
is able to find the headers required at the processing phase.

As a reference, if you build "esp32-devkitc:nsh" with "make V=1", you'll
notice that for each ".ld" file the build system will generate a new one
suffixed with ".ld.tmp", which are the ones to be passed to the Linker:


*CPP:
 
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/esp32_rom.ld->
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/esp32_rom.ld.tmp

xtensa-esp32-elf-gcc -E -P -x c -isystem
/home/nihei/Projects/NuttX/nuttx/include -D__NuttX__ -DNDEBUG -D__KERNEL__
 -I /home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/chip -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/common -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/lx6 -I
/home/nihei/Projects/NuttX/nuttx/sched
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/esp32_rom.ld
-o
 
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/esp32_rom.ld.tmp*


*CPP:
 
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/flat_memory.ld->
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/flat_memory.ld.tmpxtensa-esp32-elf-gcc
-E -P -x c -isystem /home/nihei/Projects/NuttX/nuttx/include -D__NuttX__
-DNDEBUG -D__KERNEL__  -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/chip -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/common -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/lx6 -I
/home/nihei/Projects/NuttX/nuttx/sched
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/flat_memory.ld
-o
 
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/flat_memory.ld.tmp*


*CPP:
 
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/legacy_sections.ld->
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/legacy_sections.ld.tmp

xtensa-esp32-elf-gcc -E -P -x c -isystem
/home/nihei/Projects/NuttX/nuttx/include -D__NuttX__ -DNDEBUG -D__KERNEL__
 -I /home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/chip -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/common -I
/home/nihei/Projects/NuttX/nuttx/arch/xtensa/src/lx6 -I
/home/nihei/Projects/NuttX/nuttx/sched
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/legacy_sections.ld
-o
 
/home/nihei/Projects/NuttX/nuttx/boards/xtensa/esp32/esp32-devkitc/../common/scripts/legacy_sections.ld.tmp*

Best regards,
Gustavo.

On Thu, Jan 5, 2023 at 4:31 AM Roberto Bucher <roberto.buc...@supsi.ch>
wrote:

> Hi
>
> I have a new configuration for an Olimex-ESP32-PoE board. I can compile
> and build the nuttx flash without problems.
>
> I did a
>
> make export
>
> and putted the generated nuttx-export folder into another project
> (pysimCoder). The Makefile of the project, which correctly works with my
> STM32 boards, fails the compilation of the image for esp32 with this
> strange message:
>
> ....
> xtensa-esp32-elf-ld -nostdlib --gc-sections --cref
> -Map=/home/bucher/sviluppo/NUTTX/nuttx/nuttx.map -L
> /home/bucher/CACSD/pysimCoder/CodeGen/nuttx/nuttx-export/libs
> --entry=__start  -T
> /home/bucher/CACSD/pysimCoder/CodeGen/nuttx/nuttx-export/scripts/esp32_rom.ld
>
> -T
> /home/bucher/CACSD/pysimCoder/CodeGen/nuttx/nuttx-export/scripts/flat_memory.ld
>
> -T
> /home/bucher/CACSD/pysimCoder/CodeGen/nuttx/nuttx-export/scripts/legacy_sections.ld
>
> \
>    -o ../test  \
>    nuttx_main.o test.o  nuttx_main-builtintab.o
> /home/bucher/CACSD/pysimCoder/CodeGen/nuttx/lib/libpyblk.a --start-group
> -lsched -ldrivers -lboards -lc -lmm -larch -lxx -lapps -lnet -lfs
> -lbinfmt -lwireless -lboard -lboard
> /home/bucher/sviluppo/GITHUB/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/11.2.0/libgcc.a
>
> --end-group
> *xtensa-esp32-elf-ld:/home/bucher/CACSD/pysimCoder/CodeGen/nuttx/nuttx-export/scripts/flat_memory.ld:32:
>
> ignoring invalid character `#' in expression**
> **xtensa-esp32-elf-ld:/home/bucher/CACSD/pysimCoder/CodeGen/nuttx/nuttx-export/scripts/flat_memory.ld:32:
>
> syntax error**
> **make: *** [Makefile:133: ../test] Error 1**
> *....
>
> The line 32 of the script "flat_memory.ld" contains simply the line
>
> #include <nuttx/config.h>
>
> Hints are welcomed!
>
> Thanks in advance
>
> Roberto



-- 
Gustavo Henrique Nihei

Reply via email to