Re: [PATCH] Add native windows on arm64 support

Поиск
Список
Период
Сортировка
От Dave Cramer
Тема Re: [PATCH] Add native windows on arm64 support
Дата
Msg-id CADK3HHLCD7jPz=9djgdZe=RqbJe2dpgr=urbzq9g==-v7LXdVQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [PATCH] Add native windows on arm64 support  (Andres Freund <andres@anarazel.de>)
Ответы Re: [PATCH] Add native windows on arm64 support  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers



On Fri, 9 Feb 2024 at 14:36, Andres Freund <andres@anarazel.de> wrote:
Hi,

On 2024-02-09 14:23:46 -0500, Dave Cramer wrote:
> > interestingly meson test does not produce any error
> > The buildfarm produces the following error for me:
> >
> > -SELECT relname, attname, coltypes, get_columns_length(coltypes)
> > - FROM check_columns
> > - WHERE get_columns_length(coltypes) % 8 != 0 OR
> > -       'name'::regtype::oid = ANY(coltypes);
> > - relname | attname | coltypes | get_columns_length
> > ----------+---------+----------+--------------------
> > -(0 rows)
> > -
> > +server closed the connection unexpectedly
> > + This probably means the server terminated abnormally
> > + before or while processing the request.
> > +connection to server was lost
> >
>
> Actually digging some more, here is the actual error
>
> 2024-02-09 13:31:11.008 -05 postmaster[10672] LOG:  server process (PID
> 11204) was terminated by exception 0xC0000005
> 2024-02-09 13:31:11.008 -05 postmaster[10672] DETAIL:  Failed process was
> running: VACUUM;
> 2024-02-09 13:31:11.008 -05 postmaster[10672] HINT:  See C include file
> "ntstatus.h" for a description of the hexadecimal value.

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


Dave
 


Also, yikes, that's an ugly way of doing hardware detection. Jumping out of a
signal handler into normal code. Brrr.

Greetings,

Andres Freund

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alexander Korotkov
Дата:
Сообщение: Re: Add semi-join pushdown to postgres_fdw
Следующее
От: cary huang
Дата:
Сообщение: Re: Encoding protection for pgcrypto