Thanks Gustavo

sorry for late replay..

Why are not all these flags and the correct ld.tmp files exported when we generate the nuttx-export file?

It will be corrected in the future or do we modify our files that automatically generate nuttx binaries to this?

Thanks again

Roberto


On 1/5/23 14:52, Gustavo Henrique Nihei wrote:
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



Reply via email to