Re: Detection of hadware feature => please do not use signal
Heikki Linnakangas <hlinnaka@iki.fi>
From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Bastien Roucariès <rouca@debian.org>, pgsql-bugs@lists.postgresql.org
Date: 2024-10-31T17:29:45Z
Lists: pgsql-bugs
On 31/10/2024 17:41, Bastien Roucariès wrote: > 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. Why is it 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 We used to do that, but it was changed in commit 1c72ec6f. Looking at the discussion that led to it, it's not clear to me why we switched [1]. Portablity to non-glibc systems maybe? If there's a handy, portable way to check CPU capabilities, I agree it seem less hacky than catching SIGILL... [1] https://www.postgresql.org/message-id/CAEepm%3D02Run-Pk3xyt%2BRV3p1N%2B7cKZxN95_MamaJw8Cnw%2BDwjQ%40mail.gmail.com -- Heikki Linnakangas Neon (https://neon.tech)
Commits
-
Update configure probes for CFLAGS needed for ARM CRC instructions.
- e266a0ed67d2 17.3 landed
- 851c6ff18fd3 15.11 landed
- 5980f1884fc9 18.0 landed
- 32057a0f791e 13.19 landed
- 2fc0199a5015 14.16 landed
- 1f4aadec41b8 16.7 landed
-
Support runtime CRC feature probing on NetBSD/ARM using sysctl().
- 4570b22666dd 18.0 landed
-
Use auxv to check for CRC32 instructions on ARM.
- aac831cafa6f 18.0 landed
-
Improve our method for probing the availability of ARM CRC instructions.
- 1c72ec6f4989 11.0 cited