Re: Detection of hadware feature => please do not use signal

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <hlinnaka@iki.fi>, Bastien Roucariès <rouca@debian.org>, pgsql-bugs@lists.postgresql.org
Date: 2024-11-24T19:07:26Z
Lists: pgsql-bugs
On Sun, Nov 24, 2024 at 1:09 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Oh, very interesting!  Maybe we need to try -march=armv8-a+crc+fp
> (or some spelling like that) if -march=armv8-a+crc doesn't work?

Hmm, they were talking about armv7-a, not armv8-a, but it seems
related... does it work?

The GCC docs give only +nofp, not +fp as an option for 32 bit armv8-a
(that is, under "ARM options", as opposed to "aarch64 options").  But
I guess GCC is pretty configurable and NetBSD targets some weird
hardware... as for why it could be like that (if not a mistake), it
looks like it might be technically possible for armv8 (including -a)
to lack FP in aarch32 state (unlike aarch64 state), but I went looking
for real existing 32-bit only armv8 chips lacking FP and found only
stuff like Cortex M23, and they're using armv8-m (embedded profile,
lots of other stuff missing or optional).  The weakest 32 bit-only
armv8-a chip I could find in a quick search was the Cortex A32 but it
looks like it has FP.  I don't know enough about any of this stuff to
guess what's going on here.



Commits

  1. Update configure probes for CFLAGS needed for ARM CRC instructions.

  2. Support runtime CRC feature probing on NetBSD/ARM using sysctl().

  3. Use auxv to check for CRC32 instructions on ARM.

  4. Improve our method for probing the availability of ARM CRC instructions.