Closed ycsin closed 2 days ago
cc @keith-packard @stephanosio, LMK if you need more info, but it's a OOT board + SOC with a custom compiler so I can only try my best 🥲
It looks like this is using the host compiler (see the reference to /usr/bin/gcc
) with cross-compilation flags (including -ffreestanding -fno-builtin --specs=picolibc.specs
) to preprocess something (-E
). I can't see what it's trying to do beyond that from the included image.
I can't see what it's trying to do beyond that from the included image.
Updated OP with my compilation logs, could you please take another look?
This is basically what I get after I updated my OOT board to use the HWMv2 on the 3.7.0-rc1
You're not using the Zephyr SDK? If not, you'll need to make sure to CONFIG_PICOLIBC_USE_MODULE=y
, which is not the default. If that doesn't work, then there's something messed up with the construction of the compiler flags for that particular compilation step.
Describe the bug I encountered the following compilation error while testing build on v3.7.0 for OOT boards.
This didn't happen in v3.5.0.
There's a similar report in the
#cpp
channel in our discord server, but I'm not sure what board they used.https://discord.com/channels/720317445772017664/883444430676324382/1255783684322230282
Report from the user:
Please also mention any information which could help others to understand the problem you're facing:
MINIMAL_LIBC
can make the error to go awayTo Reproduce Probably not easy to reproduce with upstream SDK.
Expected behavior I'm expecting my application to build on v3.7.0
Impact OOT board/soc/application doesn't build on v3.7.0
Environment (please complete the following information):
Root cause The cause of the issue that I've encountered is due to PICOLIBC getting selected
https://github.com/zephyrproject-rtos/zephyr/blob/cac70373aa81b9989905ac530b9773e4b748e409/lib/libc/Kconfig#L60-L65
instead of yielding to the next default even though the build env doesn't have the source for it (OOT application may not be using Zephyr SDK + the PICOLIBC module).
This issue can be worked-around for users going from 2.7 LTS to 3.7 LTS by explicitly selecting the minimal libc (
CONFIG_MINIMAL_LIBC=y
)Log