Re: [PATCH] Add native windows on arm64 support

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Dave Cramer <davecramer@postgres.rocks>
Cc: Michael Paquier <michael@paquier.xyz>, Andres Freund <andres@anarazel.de>, Anthony Roberts <anthony.roberts@linaro.org>, Daniel Gustafsson <daniel@yesql.se>, Lina Iyer <lina.iyer@linaro.org>, Mike Holmes <mike.holmes@linaro.org>, Peter Eisentraut <peter@eisentraut.org>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Thomas Munro <thomas.munro@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Date: 2024-02-12T14:19:26Z
Lists: pgsql-hackers
On 2024-02-12 Mo 08:51, Dave Cramer wrote:
>
>
> On Sat, 10 Feb 2024 at 13:28, Andrew Dunstan <andrew@dunslane.net> wrote:
>
>
>     On 2024-02-10 Sa 12:20, Dave Cramer wrote:
>>
>>
>>     On Sat, 10 Feb 2024 at 11:19, Andrew Dunstan
>>     <andrew@dunslane.net> wrote:
>>
>>
>>         On 2024-02-09 Fr 14:23, Dave Cramer wrote:
>>>
>>>         Dave Cramer
>>>         www.postgres.rocks <http://www.postgres.rocks>
>>>
>>>
>>>         On Fri, 9 Feb 2024 at 07:18, Dave Cramer
>>>         <davecramer@postgres.rocks>
>>>         <mailto:davecramer@postgres.rocks> wrote:
>>>
>>>
>>>
>>>
>>>
>>>             On Fri, 9 Feb 2024 at 00:26, Michael Paquier
>>>             <michael@paquier.xyz> wrote:
>>>
>>>                 On Tue, Feb 06, 2024 at 07:01:49AM -0500, Dave
>>>                 Cramer wrote:
>>>                 > Thanks, this patch works and
>>>                 > testing with meson passes.
>>>
>>>                 Only with the version posted at [1]?  Interesting,
>>>                 that's the same
>>>                 contents as v8 posted upthread, minus src/tools/
>>>                 because we don't need
>>>                 to care about them anymore.
>>>
>>>                 Andrew, what's happening on the test side?  It does
>>>                 not seem you've
>>>                 mentioned any details about what is going wrong, or
>>>                 I have just missed
>>>                 them.
>>>
>>>                 > I'll try the buildfarm next.
>>>
>>>                 [1]:
>>>                 https://www.postgresql.org/message-id/ea42654a-3dc4-98b0-335b-56b7ec5e5687@dunslane.net
>>>
>>>
>>>             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.
>>>         2024-02-09 13:31:11.008 -05 postmaster[10672] LOG:
>>>          terminating any other active server processes
>>>         2024-02-09 13:31:11.013 -05 postmaster[10672] LOG:  all
>>>         server processes terminated; reinitializing
>>>         2024-02-09 13:31:11.034 -05 startup[6152] LOG:  database
>>>         system was interrupted; last known up at 2024-02-09 13:31:01 -05
>>>
>>>
>>>
>>
>>
>>     So how does one debug this ?
>>
>>     Also if I `run meson test` I don't see this error. What does the
>>     buildfarm do differently?
>
>
>     First it does this:
>
>
>         meson test -C $pgsql --no-rebuild --suite setup
>
>
>     Then it does this (jflag is for the number of jobs):
>
>
>         meson test -t $meson_test_timeout $jflag -C $pgsql --logbase
>         checklog --print-errorlogs --no-rebuild --suite regress
>         --test-args=--no-locale
>
>
>
> running the above manually produces no errors ??
>
>

Not for me. I get the error I previously reported, It's an access 
violation error.


cheers


andrew


--
Andrew Dunstan
EDB:https://www.enterprisedb.com

Commits

  1. MSVC: Support building for AArch64.

  2. Remove "#ifdef WIN32" guards from src/port/win32*.c

  3. Adjust XML test case to avoid unstable behavior.

  4. Enable RandomizedBaseAddress (ASLR) on Windows with MSVC builds