https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105681
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> --- Ah, and I didn't see this when building for msp430 because I used --disable-libstdcxx-pch and that means the build doesn't depend on the <ext/random> header. I can now reproduce the build failure, and the patch in comment 6 fixes the failures in <ext/random>, but then we fail later: /tmp/msp430/msp430-elf/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:73:32: error: narrowing conversion of '116731' from 'long unsigned int' to 'std::size_t' {aka 'unsigned int'} [-Wnarrowing] 73 | /* 14 */ 116731ul, | ^~~~~~~~ Those are also non-standard extensions. Maybe we should just not install the precompiled header for <bits/extc++.h> on 16-bit targets. As a workaround until I fix all the problems, you can use --disable-libstdcxx-pch