Hi, at the moment, I am able to build NuttX on FreeBSD for arm (Raspberry Pi Pico boards and similar, QuickFeather), xtensa (Espressif ESP32 and ESP32S2) and risc-v (Espressif ESP32C3 and ESP32C6, and PineCone - BL602 based), some of them with tests on real hardware.
While in general the process is quite easy, there are some annoyances in the process. All builds follow the same recipe: 1. configure build for the board - standard tools/configure.sh <board:config> involved. Nothing special here. 2. do the build itself. As some paths are set differently in FreeBSD, typical invocation is (example for Raspberry Pi Pico): gmake CROSSDEV=/usr/local/gcc-arm-embedded-10.3-2021.10/bin/arm-none-eabi- PICO_SDK_PATH=/wrk/pico/pico-sdk This does the build, just with one error message at the start reading /usr/local/bin/bash: line 1: arm-none-eabi-gcc: command not found and then the whole build process continues, ending with nuttx file being created. Error message mentioned seems to be just spurious, it would be nice to locate where it comes from and fix. Could someone help me with this, hopefully small, task? Additionally, for Raspberry Pi Pico, there is one more error message, this time somewhat serious: Generating: nuttx.uf2 tools/rp2040/elf2uf2 nuttx nuttx.uf2; ld-elf.so.1: /usr/local/lib/gcc10/libstdc++.so.6: version GLIBCXX_3.4.29 required by /wrk/usr/ports/devel/apache-nuttx/work/nuttx/tools/rp2040/elf2uf2 not found gmake: *** [tools/Unix.mk:541: nuttx] Error 1 and, consequently, nuttx.uf2 file for uploading to the board is not prepared. This is not fatal for me, because I can execute command /wrk/pico/pico-examples/build/elf2uf2/elf2uf2 -v nuttx nuttx.bin.uf2 manually and got it. Again, it would be nice to fix this. In my eyes, the preferable way for this would be just using already available elf2uf2 binary, either in path, or, maybe, with explicitly assigned via some ELF2UF2= assignment. The PICO_SDK_PATH=/wrk/pico/pico-sdk assignment used above is just for building this binary. I'd prefer to do it just once as part of working setup preparation and not for every build, which could be just done the way I mentioned. 3. clean up after build, so I can repeat the process for another board/configuration combo: gmake distclean This does the job, spitting maybe a hundred lines of /usr/local/bin/bash: line 1: arm-none-eabi-gcc: command not found Note I am using sources from git as of yesterday. All these errors did not appear with 12.0.0 source tarball, but started with newer ones, I tested 12.1.0, 12.2.0 and git newer than that. The exact message differs depending on the build (and consequently toolset) used. At present, I do not know the whole build process that well to dig into it myself, thus some help, hints, patches to test, all is greatly appreciated. Regards, Milan