Detection of hadware feature => please do not use signal

Bastien Roucariès <rouca@debian.org>

From: Bastien Roucariès <rouca@debian.org>
To: pgsql-bugs@lists.postgresql.org
Date: 2024-10-31T15:41:24Z
Lists: pgsql-bugs
Hi,

On debian side we will like to avoid use of sigill to detect feature.

https://sources.debian.org/src/postgresql-17/17.0-1/src/port/pg_crc32c_armv8_choose.c/#L55

is really bad.

Could you use the canonical way under linux

#include <sys/auxv.h>
#include <asm/hwcap.h>

 #if defined(__aarch64__)
   return !(getauxval(AT_HWCAP) &  HWCAP_CRC32);
 #else
   return !(getauxval(AT_HWCAP2) & HWCAP2_CRC32);
 #endif

Thanks

Rouca

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.