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.

Reply via email to