Hi, On 2024-02-09 15:32:10 -0500, Dave Cramer wrote: > On Fri, 9 Feb 2024 at 14:36, Andres Freund <and...@anarazel.de> wrote: > > That's something like a segfault. > > > > One suspicion I have is that src/port/pg_crc32c_armv8_choose.c possibly > > doesn't properly support msvc. It seems to assume that SIGILL can be > > trapped, > > but that IIRC doesn't work on windows. > > > > I'd check if the problem persists if you change > > cdata.set('USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK', 1) > > to > > cdata.set('USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK', 0) > > > > This results in > > FAILED: src/bin/pg_checksums/pg_checksums.exe > src/bin/pg_checksums/pg_checksums.pdb > "link" /MACHINE:ARM64 /OUT:src/bin/pg_checksums/pg_checksums.exe > src/bin/pg_checksums/pg_checksums.exe.p/win32ver.res > src/bin/pg_checksums/pg_checksums.exe.p/pg_checksums.c.obj "/release" > "/nologo" "/DEBUG" "/PDB:src\bin\pg_checksums\pg_checksums.pdb" > "/INCREMENTAL:NO" "/STACK:4194304" "/NOEXP" "src/fe_utils/libpgfeutils.a" > "src/common/libpgcommon.a" "src/port/libpgport.a" "ws2_32.lib" "ws2_32.lib" > "ws2_32.lib" "ws2_32.lib" "/SUBSYSTEM:CONSOLE" "kernel32.lib" "user32.lib" > "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" > "uuid.lib" "comdlg32.lib" "advapi32.lib" > libpgcommon.a(controldata_utils.c.obj) : error LNK2001: unresolved external > symbol pg_comp_crc32c
That's because have_optimized_crc ends up being set. I'm somewhat unhappy about the msvc specific path in meson.build. Shouldn't at the very least the "Use ARM CRC Extension unconditionally" path be first. I guess it's not really this patch's fault that the runtime detection for armv8 crc is implemented this shoddily :(. Greetings, Andres Freund