Well, toolchain is another thing on the BSD TODO list :-) You either
need to have Espressif toolchain installed and in path or you can
provide your own or system toolchain by hand durign build.

I am on a trip right now with my backup laptop that is not my main
development workstation, sorry, but the summary is below.

1. Because FreeBSD can natively emulate Linux ELF binaries, I did a
trick with support of Espressif that allows download and install Linux
tools on FreeBSD with ESP-IDF. That works fine.. but it would be
perfect to build and distribute also toolchain binaries for FreeBSD by
Espressif. So far I have used ESP IDF Linux tools on FreeBSD for
initial experiments on ESP32 and ESP32-C3.

% uname -a
FreeBSD 0xCFMX4 13.1-RELEASE-p2 FreeBSD 13.1-RELEASE-p2 GENERIC amd64

% ls -1 ~/.espressif/tools
esp32s2ulp-elf
esp32ulp-elf
openocd-esp32
riscv32-esp-elf
xtensa-esp32-elf
xtensa-esp32s2-elf
xtensa-esp32s3-elf

That gives:

% ./xtensa-esp32-elf-gcc -v
Using built-in specs.
COLLECT_GCC=./xtensa-esp32-elf-gcc
COLLECT_LTO_WRAPPER=/ztuff/cd/.espressif/tools/xtensa-esp32-elf/esp-2021r2-8.4.0/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/8.4.0/lto-wrapper
Target: xtensa-esp32-elf
Configured with:
/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure
--build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu
--target=xtensa-esp32-elf
--prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf
--with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf
--with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include
--with-newlib --enable-threads=no --disable-shared
--with-pkgversion='crosstool-NG esp-2021r2' --disable-__cxa_atexit
--enable-cxx-flags=-ffunction-sections --disable-libgomp
--disable-libmudflap --disable-libmpx --disable-libssp
--disable-libquadmath --disable-libquadmath-support
--with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
--with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
--with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
--with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
--enable-lto --enable-target-optspace --without-long-double-128
--disable-nls --enable-multiarch --enable-languages=c,c++
--disable-libstdcxx-verbose --enable-threads=posix
--enable-gcov-custom-rtio --enable-libstdcxx-time=yes
Thread model: posix
gcc version 8.4.0 (crosstool-NG esp-2021r2)


% ./riscv32-esp-elf-gcc -v
Using built-in specs.
COLLECT_GCC=./riscv32-esp-elf-gcc
COLLECT_LTO_WRAPPER=/ztuff/cd/.espressif/tools/riscv32-esp-elf/esp-2021r2-8.4.0/riscv32-esp-elf/bin/../libexec/gcc/riscv32-esp-elf/8.4.0/lto-wrapper
Target: riscv32-esp-elf
Configured with:
/builds/idf/crosstool-NG/.build/riscv32-esp-elf/src/gcc/configure
--build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu
--target=riscv32-esp-elf
--prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf
--with-local-prefix=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf
--with-headers=/builds/idf/crosstool-NG/builds/riscv32-esp-elf/riscv32-esp-elf/include
--with-newlib --enable-threads=no --disable-shared --with-arch=rv32imc
--with-abi=ilp32 --with-pkgversion='crosstool-NG esp-2021r2'
--disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections
--disable-libgomp --disable-libmudflap --disable-libmpx
--disable-libssp --disable-libquadmath --disable-libquadmath-support
--with-gmp=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--with-mpfr=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--with-mpc=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--with-isl=/builds/idf/crosstool-NG/.build/riscv32-esp-elf/buildtools
--enable-lto --enable-target-optspace --without-long-double-128
--disable-nls --enable-multiarch --enable-languages=c,c++
--disable-libstdcxx-verbose --enable-threads=posix
--enable-gcov-custom-rtio --enable-libstdcxx-time=yes
Thread model: posix
gcc version 8.4.0 (crosstool-NG esp-2021r2)

% ./openocd -v
Open On-Chip Debugger  v0.10.0-esp32-20210902 (2021-09-02-09:38)


2. FreeBSD has its own ports and packages with various build
toolchains for almost any target out there. For NuttX you need to
provide desired toolchain by hand for now but I would like to add this
to configure / KConfig so it gets auto-configured to use OS defaults
:-) Some examples with versions below :-)

% pkg search riscv
riscv-isa-sim-g_20211015       Spike, a RISC-V ISA Simulator
riscv32-unknown-elf-binutils-2.37_4,1 GNU binary tools
riscv32-unknown-elf-gcc-11.3.0 GNU Compiler Collection for bare metal
riscv32 cross-development
riscv64-binutils-2.37_4,1      GNU binary tools
riscv64-freebsd-sysroot-a2021.11.09 FreeBSD 13.0-RELEASE riscv64 sysroot
riscv64-gcc-8.3.0_1            Cross GNU Compiler Collection for riscv64
riscv64-gcc12-12.1.0           Cross GNU Compiler Collection for riscv64
riscv64-gcc9-9.5.0             Cross GNU Compiler Collection for riscv64
riscv64-none-elf-binutils-2.37_4,1 GNU binary tools
riscv64-none-elf-gcc-11.3.0    GNU Compiler Collection for bare metal
riscv64 cross-development
riscv64-rust-bootstrap-1.63.0  Create bootstrap compilers for building lang/rust
u-boot-qemu-riscv64-2022.04_1  Cross-build das u-boot for model qemu-riscv64


% pkg search mips
dynamips-community-0.2.17      Cisco 1700/2600/3600/3700/7200 Simulator
edumips64-1.2.10               Free, cross-platform, educational,
visual MIPS64 CPU simulator
mips-binutils-2.37_4,1         GNU binary tools
mips-gcc6-6.5.0_3              Cross GNU Compiler Collection for mips
mips-gcc9-9.5.0                Cross GNU Compiler Collection for mips
mips64-binutils-2.37_4,1       GNU binary tools
mips64-gcc6-6.5.0_3            Cross GNU Compiler Collection for mips64
mips64-gcc9-9.5.0              Cross GNU Compiler Collection for mips64
vmips-1.5.1_1                  MIPS R3000 simulator


% pkg search arm
arm-elf-binutils-2.37          GNU binutils for vanilla ARM cross-development
arm-gnueabi-binutils-2.37_4,1  GNU binary tools
arm-none-eabi-binutils-2.37_4,1 GNU binary tools
arm-none-eabi-gcc-11.3.0       GNU Compiler Collection for bare metal
arm cross-development
arm-none-eabi-gcc492-4.9.2_5   GNU Compiler Collection for bare metal
arm cross-development
arm-none-eabi-newlib-2.4.0_1   Newlib distribution for arm-none-eabi targets
armv6-freebsd-sysroot-a2021.11.09 FreeBSD 12.2-RELEASE armv6 sysroot
armv6-gcc12-12.1.0             Cross GNU Compiler Collection for armv6
armv6-gcc9-9.5.0               Cross GNU Compiler Collection for armv6
armv6-rust-bootstrap-1.63.0    Create bootstrap compilers for building lang/rust
armv7-freebsd-sysroot-a2021.11.09 FreeBSD 12.2-RELEASE armv7 sysroot
armv7-gcc12-12.1.0             Cross GNU Compiler Collection for armv7
armv7-gcc9-9.5.0               Cross GNU Compiler Collection for armv7
armv7-rust-bootstrap-1.63.0    Create bootstrap compilers for building lang/rust
gcc-arm-embedded-10.3.20210921 Complete gcc-based toolcahin for
embedded ARM development
u-boot-qemu-arm-2022.04_1      Cross-build das u-boot for model qemu-arm
u-boot-qemu-arm64-2022.04_1    Cross-build das u-boot for model qemu-arm64
u-boot-rpi-arm64-2022.04_1     Cross-build das u-boot for model rpi-arm64


% pkg search powerpc
powerpc-binutils-2.37_4,1      GNU binary tools
powerpc-freebsd-sysroot-a2021.11.09 FreeBSD 13.0-RELEASE powerpc sysroot
powerpc-gcc12-12.1.0           Cross GNU Compiler Collection for powerpc
powerpc-gcc9-9.5.0             Cross GNU Compiler Collection for powerpc
powerpc-rust-bootstrap-1.63.0  Create bootstrap compilers for building lang/rust
powerpc64-binutils-2.37_4,1    GNU binary tools
powerpc64-elfv1-freebsd-sysroot-a2021.11.09 FreeBSD 12.2-RELEASE
powerpc64 elfv1 sysroot
powerpc64-elfv1-rust-bootstrap-1.63.0 Create bootstrap compilers for
building lang/rust
powerpc64-elfv2-freebsd-sysroot-a2021.11.09 FreeBSD 13.0-RELEASE
powerpc64 elfv2 sysroot
powerpc64-elfv2-rust-bootstrap-1.63.0 Create bootstrap compilers for
building lang/rust
powerpc64-gcc12-12.1.0         Cross GNU Compiler Collection for powerpc64
powerpc64-gcc6-6.5.0_3         Cross GNU Compiler Collection for powerpc64
powerpc64-gcc9-9.5.0           Cross GNU Compiler Collection for powerpc64
powerpc64le-binutils-2.37_4,1  GNU binary tools
powerpc64le-freebsd-sysroot-a2021.11.09 FreeBSD 13.0-RELEASE powerpc64le sysroot
powerpc64le-rust-bootstrap-1.63.0 Create bootstrap compilers for
building lang/rust


% pkg search avr
arduino-avrdude-6.3_4          Program for programming the on-chip
memory of Atmel AVR Arduino CPUs
avr-binutils-2.37_4,1          GNU binary tools
avr-gcc-11.2.0                 FSF GCC for Atmel AVR 8-bit RISC
cross-development
avr-gdb-7.3.1_6                GNU GDB for the AVR target
avr-libc-2.0.0_4,1             C and math library for the Atmel AVR
controller family
avra-1.4.2                     Macro Assembler for Atmel AVR microcontrollers
avrdude-7.0_2                  Program for programming the on-chip
memory of Atmel AVR CPUs
simavr-1.7_2                   Simulator for several Atmel AVR chips


% pkg search z80
p5-CPU-Z80-Assembler-2.18      Z80 assembler written in Perl
z80-asm-2.4.p3                 Z80 assembly code assembler and disassembler
z80asm-1.8                     Assembler for the Z80 microprocessor
z80ex-1.1.21                   ZiLOG Z80 CPU emulator library
z80pack-1.37                   Complete CP/M-80 emulator


% pkg search openocd
openocd-0.11.0_1               Open On-Chip Debugger


And many many more :-)

Best regards :-)
Tomek



On Sat, Oct 8, 2022 at 2:33 PM Alan C. Assis wrote:
>
> Thank you very much Tomek!
>
> when you get NuttX compiled on FreeBSD, please run the similar
> commands like these:
>
> $ xtensa-esp32-elf-gcc -v
> Using built-in specs.
> COLLECT_GCC=xtensa-esp32-elf-gcc
> COLLECT_LTO_WRAPPER=/usr/local/bin/../libexec/gcc/xtensa-esp32-elf/8.4.0/lto-wrapper
> Target: xtensa-esp32-elf
> Configured with:
> /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/gcc/configure
> --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu
> --target=xtensa-esp32-elf
> --prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf
> --with-local-prefix=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf
> --with-headers=/builds/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/include
> --with-newlib --enable-threads=no --disable-shared
> --with-pkgversion='crosstool-NG esp-2021r2-patch3'
> --disable-__cxa_atexit --enable-cxx-flags=-ffunction-sections
> --disable-libgomp --disable-libmudflap --disable-libmpx
> --disable-libssp --disable-libquadmath --disable-libquadmath-support
> --with-gmp=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
> --with-mpfr=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
> --with-mpc=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
> --with-isl=/builds/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools
> --enable-lto --enable-target-optspace --without-long-double-128
> --disable-nls --enable-multiarch --enable-languages=c,c++
> --disable-libstdcxx-verbose --enable-threads=posix
> --enable-gcov-custom-rtio --enable-libstdcxx-time=yes
> Thread model: posix
> gcc version 8.4.0 (crosstool-NG esp-2021r2-patch3)
>
>
> If you send just the last line above it fine, we only need to know the
> toolchain version and characteristic.
>
> $ xtensa-esp32-elf-size nuttx
>    text    data     bss     dec     hex filename
>   75231     320    7736   83287   14557 nuttx
>
>
> BR,
>
> Alan
>
> On 10/8/22, Tomek CEDRO <to...@cedro.info> wrote:
> > Hey there Alan :-)
> >
> > I am working on FreeBSD / BSD:
> > 1. kconfig-frontends is now in the FreeBSD ports and packages.
> > 2. I need to fix the SEDvsGSED issue.
> > 3. Have some ideas on how to unify MAKEvsGMAKE.
> > 4. KConfig work to add BSD also needs to be done.
> > 5. All 2 to 4 would point to GNUvsBSD build tools unification so
> > things work out of the box on both GNU and BSD in the same way with no
> > local modifications.
> >
> > This is not yet into this release, but lots of other work is done, and
> > this seems to be a release that others also wait to go out in order to
> > add their patches.. thus +1 from me not to block the works.. otherwise
> > no rush from me as things are done when they are done :-)
> >
> > Best regards :-)
> > Tomek
> >
> >
> >
> >
> >
> > On Sat, Oct 8, 2022 at 1:37 PM Alan C. Assis <acas...@gmail.com> wrote:
> >>
> >> Hi everyone,
> >>
> >> As suggestion when voting for a new release, please send together the
> >> information about what compiler was used and the output of your
> >> toolchain "size".
> >>
> >> This is just a suggestion, but help us to know that you really tested
> >> the release and also it is used as reference to know if the size
> >> increased too much or if there is some discrepancies between different
> >> toolchains.
> >>
> >> Thank you for understanding.
> >>
> >> BR,
> >>
> >> Alan
> >>
> >> On 10/8/22, Tomek CEDRO <to...@cedro.info> wrote:
> >> > +1 from me :-)
> >> >
> >> > --
> >> > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
> >> >
> >
> >
> >
> > --
> > CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
> >



-- 
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info

Reply via email to