https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117766
--- Comment #10 from Tom Lane <tgl at sss dot pgh.pa.us> --- Well, I simplified the report a bit compared to the real use-case. What we actually want to use is "-march=armv8-a+crc" so as to compile hardware CRC instructions (that will be used only if a runtime check verifies availability of CRC features). On these platforms with armv7 or older as baseline, CRC primitives won't compile without playing some kind of game with -march. This has worked for us (the Postgres project) for quite a few years, and we just became aware that it's not working with some newer ARM32 platforms. I guess what you are saying is that NetBSD have misconfigured the compiler by not including any -mfpu in their default configuration. Perhaps, but then why does their default configuration work at all? Because they certainly are requiring hard-float ABI. Also, that explanation doesn't fit the failure on Raspberry Pi OS, which visibly does have -mfpu in its default config. (Well, actually they wrote -march=...+fp, but that's documented as equivalent to some -mfpu value or other.) I could make sense of all this if you were to say "your -march overrides the default -mfpu". Which would be fine, but it's still the case that the gcc documentation and switch design say that -march=armv8-a implies FPU support. At the very least you've got a documentation bug there.