Re: [PATCH] Fix ARM64/MSVC atomic memory ordering issues on Win11 by adding explicit DMB barriers
Thomas Munro <thomas.munro@gmail.com>
From: Thomas Munro <thomas.munro@gmail.com>
To: Greg Burd <greg@burd.me>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Nathan Bossart <nathandbossart@gmail.com>,
Peter Eisentraut <peter@eisentraut.org>, Dave Cramer <davecramer@gmail.com>, Andres Freund <andres@anarazel.de>
Date: 2025-12-10T21:31:33Z
Lists: pgsql-hackers
On Thu, Dec 11, 2025 at 5:32 AM Greg Burd <greg@burd.me> wrote: > Rebased with only minor changes to meson.build this patch is ready for review/commit as it is passing tests on my aarch64 Win11 MSVC system. Also note that this system I'm testing on is ready to become a member of the buildfarm (application submitted) and monitor this combo in perpetuity. - if cc.links(prog, name: '__crc32cb, __crc32ch, __crc32cw, and __crc32cd without -march=armv8-a+crc', ... + if host_machine.cpu_family() == 'aarch64' I think this new nesting of the CRC32 feature tests breaks the test on "armv7" distros (in our build farm, that's a bunch of RPis running Debian/Raspbian, but at least FreeBSD and NetBSD also support "armv7"). Any ARM chip made since around 2011 is really an ARMv8+ chip running Aarch32 code and can thus reach the ARMv8 instructions. For example "grison" says: checking build system type... (cached) armv7l-unknown-linux-gnueabihf ... checking which CRC-32C implementation to use... ARMv8 CRC instructions with runtime check -#define S_UNLOCK(lock) \ +#define S_UNLOCK(lock) \ Bogus whitespace change.