mirror of
https://github.com/apache/nuttx.git
synced 2026-08-01 20:28:58 +00:00
arch/x86 set CROSSDEV only under Cygwin, so everywhere else the build used the bare tool names and got the host compiler. On Linux that is a native gcc which can produce i486 ELF objects, which is what the board README assumes. On macOS it is Apple clang, and on Apple Silicon that cannot target i386 in any form -- so there is no configuration in which the default works and a cross toolchain is not optional. Default it to i686-elf-, which Homebrew packages and which accepts the -march=i486 -mtune=i486 already in ARCHCPUFLAGS. arch/x86_64 has had exactly this stanza for its own toolchain all along; this is the same shape. The Cygwin assignment becomes ?= to match, so that a CROSSDEV passed in from the environment or the command line is honoured rather than overridden. Note for anyone tempted by the toolchain they already have: a 64-bit x86 compiler with -m32 is not a substitute unless it was built with multilib. Homebrew's x86_64-elf-gcc compiles 32-bit objects perfectly happily and has no 32-bit libgcc to link them against, so the entire build succeeds and only the final link fails, on __udivdi3, __divdi3, __moddi3 and __udivmoddi4. `x86_64-elf-gcc -print-multi-lib' prints just `.;', which is the toolchain saying so up front. Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com> Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| include | ||
| src | ||
| Kconfig | ||