public inbox for [email protected]  
help / color / mirror / Atom feed
From: Niyas Sait <[email protected]>
To: Michael Paquier <[email protected]>
Cc: Andres Freund <[email protected]>
Cc: Tom Lane <[email protected]>
Cc: Thomas Munro <[email protected]>
Cc: Julien Rouhaud <[email protected]>
Cc: PostgreSQL Hackers <[email protected]>
Subject: Re: [PATCH] Add native windows on arm64 support
Date: Wed, 20 Apr 2022 10:43:06 +0100
Message-ID: <CAFPTBD9qPsFMN_Y0HwR+2uRtQGfVnQRa-mxUnAu-MhyEnf8JHA@mail.gmail.com> (raw)
In-Reply-To: <Yl9TmT/[email protected]>
References: <20220322103011.i6z2tuj4hle23wgx@jrouhaud>
	<CA+hUKGJDYZ3NRTQ8DtTrO6oshaYy2wPszj1jKAUm_zD1zbCm-Q@mail.gmail.com>
	<[email protected]>
	<CA+hUKGKGZ2crHGDi=zXtjYy9GptUZ99Jtu=w-P_qeaeaP8k7mg@mail.gmail.com>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<CAFPTBD_+n3C_rrt9Y5mytaw0GJX+SAywMCgKfEpRxpLvzeSMrA@mail.gmail.com>
	<Yl9TmT/[email protected]>

> Have you tested with the amount of coverage provided by vcregress.pl?

I built and ran the relevant tests with the help of run_build.pl.

I think following tests are executed - check, contribcheck, ecpgcheck,
installcheck, isolationcheck, modulescheck, and upgradecheck.

> Another thing I was wondering about is if it would be possible to have
> this option in Travis, but that does not seem to be the case:
> https://docs.travis-ci.com/user/reference/windows/#windows-version

Yes, I think Travis doesn't yet support Windows/Arm64 platform.

> +               if ($solution->{platform} eq 'ARM64') {
> +                       push(@pgportfiles, 'pg_crc32c_armv8_choose.c');
> +                       push(@pgportfiles, 'pg_crc32c_armv8.c');
> +               } else {
> +                       push(@pgportfiles, 'pg_crc32c_sse42_choose.c');
> +                       push(@pgportfiles, 'pg_crc32c_sse42.c');
> +               }
>
> +++ b/src/port/pg_crc32c_armv8.c
> +#ifndef _MSC_VER
>  #include <arm_acle.h>
> +#endif
> [ ... ]
> +#ifdef _M_ARM64
> +   /*
> +    * arm64 way of hinting processor for spin loops optimisations
> +    * ref:
https://community.arm.com/support-forums/f/infrastructure-solutions-forum/48654/ssetoneon-faq
> +    */
> +   __isb(_ARM64_BARRIER_SY);
> +#else
> I think that such extra optimizations had better be in a separate
> patch, and we should focus on getting the build done first.

> This would mean that a basic patch could be done with just the changes
> for gendef.pl, and the first part of the changes inMSBuildProject.pm.
> Would that not be enough?

I cannot build without any of the above changes. Nothing specific for
optimization
is added to this patch.

> +   # arm64 linker only supports dynamic base address
> +   my $cfgrandbaseaddress = $self->{platform} eq 'ARM64' ? 'true' :
'false';
> This issue is still lying around, and you may have been lucky.  Would
> there be any issues to remove this change to get a basic support in?
> As mentioned upthread, there is a long history of Postgres with ASLR.

MSVC linker doesn't allow non-random base addresses for Arm64 platforms.
It is needed for basic support.

Niyas


view thread (37+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: [PATCH] Add native windows on arm64 support
  In-Reply-To: <CAFPTBD9qPsFMN_Y0HwR+2uRtQGfVnQRa-mxUnAu-MhyEnf8JHA@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox