Re: [PATCH] Add native windows on arm64 support

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Michael Paquier <michael(at)paquier(dot)xyz>, Dave Cramer <davecramer(at)postgres(dot)rocks>
Cc: Anthony Roberts <anthony(dot)roberts(at)linaro(dot)org>, Peter Eisentraut <peter(at)eisentraut(dot)org>, Daniel Gustafsson <daniel(at)yesql(dot)se>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Mike Holmes <mike(dot)holmes(at)linaro(dot)org>, Andres Freund <andres(at)anarazel(dot)de>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Lina Iyer <lina(dot)iyer(at)linaro(dot)org>
Subject: Re: [PATCH] Add native windows on arm64 support
Date: 2024-01-25 17:30:55
Message-ID: 70d20b11-8ed8-a34e-32d1-8f3015dd771b@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On 2024-01-24 We 19:02, Michael Paquier wrote:
> On Wed, Jan 24, 2024 at 06:45:21AM -0500, Dave Cramer wrote:
>> I managed to get it to build the vcvarsall arch needs to be x64. I need to
>> add some options, but the patch above needs to be applied to build it.
> Nice. If I may ask, what kind of host and/or configuration have you
> used to reach a state where the code can be compiled and run tests
> with meson? If you have found specific steps, it may be a good thing
> to document that on the wiki, say around [1].
>
> Perhaps you have not included TAP? It may be fine in terms of runtime
> checks and coverage.
>
> [1]:https://wiki.postgresql.org/wiki/PostgreSQL_Buildfarm_Howto#Running_on_Windows

I now have an ARM64 machine, so I set up a W11 ARM64 VM. I think we
really want to build with x64_arm64, i.e. to generate native arm64
binaries. Setting just x64 will not do that, AIUI.

I tried that with the buidfarm, setting that in the config file's call
to PGBuild::VSenv::getenv().

That upset msvc_gendef.pl, so I added this there to keep it happy:

$arch = 'x86_64' if $arch eq 'aarch64';

After that things went ok until I got this:

[1453/2088] "link" @src/backend/postgres.exe.rsp
FAILED: src/backend/postgres.exe src/backend/postgres.pdb
"link" @src/backend/postgres.exe.rsp
   Creating library src\backend\postgres.exe.lib
storage_lmgr_s_lock.c.obj : error LNK2019: unresolved external symbol
_mm_pause referenced in function perform_spin_delay
src\backend\postgres.exe : fatal error LNK1120: 1 unresolved externals

I haven't made further progress, but I will return to it in the next day
or so.

While this will be nice to have, I think it won't really matter until
there is ARM64 support in released versions of Windows Server. AFAICT
they still only sell versions for x86_64

cheers

andrew

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2024-01-25 18:32:42 Re: A performance issue with Memoize
Previous Message Robert Haas 2024-01-25 17:28:19 Re: SLRU optimization - configurable buffer pool and partitioning the SLRU lock