https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121259
--- Comment #11 from Jose E. Marchesi <jemarch at gcc dot gnu.org> --- This is intended. We first considered the target as a sort of embedded bare-metal target, so we were always installing a full set of C standard headers. However, it turns out BPF programmers will happily include glib headers (even if these are for the host archiecture, not bpf) and that led to redefinition errors. This is definitely bad practice, but given that clang always installs wrapping headers, we turned to wrapping headers in host mode and basically offloaded the responsibility of providing a suitable stdint.h to the user, unless in freestanding mode.