Re: [PATCH] Add native windows on arm64 support

Niyas Sait <niyas.sait@linaro.org>

From: Niyas Sait <niyas.sait@linaro.org>
To: Michael Paquier <michael@paquier.xyz>
Cc: Andres Freund <andres@anarazel.de>, Tom Lane <tgl@sss.pgh.pa.us>, Thomas Munro <thomas.munro@gmail.com>, Julien Rouhaud <rjuju123@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-05-09T11:44:22Z
Lists: pgsql-hackers
> Thanks for doing that!  Your post is just a couple of days old, let's
> see if we get a reply on that.

Microsoft updated documentation [1] and clarified that ASLR cannot be
disabled for Arm64 targets.

Because ASLR can't be disabled on ARM, ARM64, or ARM64EC architectures,
> /DYNAMICBASE:NO isn't supported for these targets.


Thanks
Niyas

[1]
https://docs.microsoft.com/en-us/cpp/build/reference/dynamicbase?view=msvc-170


On Mon, 25 Apr 2022 at 02:17, Michael Paquier <michael@paquier.xyz> wrote:

> On Thu, Apr 21, 2022 at 10:21:04AM +0100, Niyas Sait wrote:
> > The following error occurs:
> >
> > LINK : fatal error LNK1246: '/DYNAMICBASE:NO' not compatible with 'ARM64'
> > target machine; link without '/DYNAMICBASE:NO
>
> Okay, that's interesting.  In light of things like 7f3e17b, that may
> be annoying.  Perhaps newer Windows versions are able to handle that
> better.  I am wondering if it would be worth re-evaluating this
> change, and attempt to re-enable that in environments other than
> arm64.  This could become interesting if we consider that there have
> been talks to cut the support for a bunch of Windows versions to focus
> on the newer ones only.
>
> > This seems to be a deliberate restriction for Arm64 targets. However, no
> > references were provided. To clarify, I have posted a question [1] on the
> > community channel of Visual Studio.
>
> Thanks for doing that!  Your post is just a couple of days old, let's
> see if we get a reply on that.
> --
> Michael
>

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