Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rUpRd-00DFaC-Es for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jan 2024 14:50:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rUpRc-006mmx-Bp for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Jan 2024 14:50:36 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rUpRb-006mmj-Q5 for pgsql-hackers@lists.postgresql.org; Tue, 30 Jan 2024 14:50:36 +0000 Received: from pgintl.fastcrypt.com ([149.56.129.164]) by makus.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rUpRY-004AE4-Qx for pgsql-hackers@lists.postgresql.org; Tue, 30 Jan 2024 14:50:34 +0000 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by pgintl.fastcrypt.com (Postfix) with ESMTPSA id 3DCC02034A for ; Tue, 30 Jan 2024 09:50:31 -0500 (EST) Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-55f082c2c92so3025036a12.0 for ; Tue, 30 Jan 2024 06:50:31 -0800 (PST) X-Gm-Message-State: AOJu0YyqYhGdNW97QqoXA0ga+KS//yPA/bjHusN8JaM+aEqu6MQoYi+v bmE8ROSnpx0qlhuaIAL8xrg28lTq6EpgcjD+NNb+v7k7/JFGy2vCCE2adh3MpiEzoxTn0SDgQKw IWlCe/OQLyae2OUkjAyWGK+e++yo= X-Google-Smtp-Source: AGHT+IGZ5meeRffRySfJZgjI8P4q/x10yUtwxbJEoLIDoYKHRnUG6vu4yiuEEdOn5tUoCZ51fNm9+V1ir+Bc1YgADgQ= X-Received: by 2002:aa7:df96:0:b0:55f:5e7b:7c7c with SMTP id b22-20020aa7df96000000b0055f5e7b7c7cmr157740edy.29.1706626229881; Tue, 30 Jan 2024 06:50:29 -0800 (PST) MIME-Version: 1.0 References: <70d20b11-8ed8-a34e-32d1-8f3015dd771b@dunslane.net> <5ba3cae0-0375-c3e6-4bce-89165e09bdd3@dunslane.net> <56da7612-9feb-c52f-1441-8fc4e51ca434@dunslane.net> <98c8bcbe-3774-854c-b6a6-1c8e6992a25f@dunslane.net> In-Reply-To: From: Dave Cramer Date: Tue, 30 Jan 2024 09:50:10 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] Add native windows on arm64 support To: Andrew Dunstan Cc: Michael Paquier , Anthony Roberts , Peter Eisentraut , Daniel Gustafsson , Tom Lane , Mike Holmes , Andres Freund , Thomas Munro , PostgreSQL Hackers , Lina Iyer Content-Type: multipart/mixed; boundary="00000000000032721606102ae2ba" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000032721606102ae2ba Content-Type: multipart/alternative; boundary="00000000000032721406102ae2b6" --00000000000032721406102ae2b6 Content-Type: text/plain; charset="UTF-8" On Tue, 30 Jan 2024 at 08:38, Andrew Dunstan wrote: > > On 2024-01-29 Mo 11:20, Dave Cramer wrote: > > > Dave Cramer > www.postgres.rocks > > > On Mon, 29 Jan 2024 at 11:16, Andrew Dunstan wrote: > >> >> On 2024-01-26 Fr 09:18, Dave Cramer wrote: >> >> >> >> On Fri, 26 Jan 2024 at 07:36, Andrew Dunstan wrote: >> >>> >>> On 2024-01-25 Th 20:32, Michael Paquier wrote: >>> > On Thu, Jan 25, 2024 at 04:52:30PM -0500, Dave Cramer wrote: >>> >> On Thu, 25 Jan 2024 at 16:32, Andrew Dunstan >>> wrote: >>> >>> On 2024-01-25 Th 16:17, Dave Cramer wrote: >>> >>> Yeah, I think the default Developer Command Prompt for VS2022 is set >>> up >>> >>> for x86 builds. AIUI you should start by executing "vcvarsall >>> x64_arm64". >>> >> Yup, now I'm in the same state you are >>> > Wait a minute here. Based on [1], x64_arm64 means you can use a x64 >>> > host and you'll be able to produce ARM64 builds, still these will not >>> > be able to run on the host where they were built. How much of the >>> > patch posted upthread is required to produce such builds? Basically >>> > everything from it, I guess, so as build dependencies can be >>> > satisfied? >>> > >>> > [1]: >>> https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170 >>> >>> >>> If you look at the table here x86 and x64 are the only supported host >>> architectures. But that's OK, the x64 binaries will run on arm64 (W11 >>> ARM64 has x64 emulation builtin). If that didn't work Dave and I would >>> not have got as far as we have. But you want the x64_arm64 argument to >>> vcvarsall so you will get ARM64 output. >>> >> >> I've rebuilt it using x64_arm64 and with the attached (very naive patch) >> and I still get an x64 binary :( >> >> >> With this patch I still get a build error, but it's different :-) >> >> >> [1406/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 >> spin_delay referenced in function perform_spin_delay >> >> src\backend\postgres.exe : fatal error LNK1120: 1 unresolved externals >> > > Did you add the latest lock.patch ? > > > > > I'm a bit confused about exactly what needs to be applied. Can you supply > a complete patch to be applied to a pristine checkout that will let me > build? > > > cheers > See attached. Dave --00000000000032721406102ae2b6 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Tue, 30 Jan 2024 at 08:38, Andrew = Dunstan <andrew@dunslane.net&= gt; wrote:
=20 =20 =20


On 2024-01-29 Mo 11:20, Dave Cramer wrote:
=20

Dave Cramer


On Mon, 29 Jan 2024 at 11:16, Andrew Dunstan <andrew@dunslane.net> wrote:


On 2024-01-26 Fr 09:18, Dave Cramer wrote:


On Fri, 26 Jan 2024 at 07:36, Andrew Dunstan <andrew@dunslane.net> wrote:
On 2024-01-25 Th 20:32, Michael Paquier wrote:
> On Thu, Jan 25, 2024 at 04:52:30PM -0500, Dave Cramer wrote:
>> On Thu, 25 Jan 2024 at 16:32, Andrew Dunstan <andrew@dunslane.net> wrote:
>>> On 2024-01-25 Th 16:17, Dave Cramer wrote:
>>> Yeah, I think the default Developer Command Prompt for VS2022 is set up
>>> for x86 builds. AIUI you should start by executing "vcvarsall x64_arm64".=
>> Yup, now I'm in the same state you are=
> Wait a minute here.=C2=A0 Based on [1], x64_arm64 means you can use a x64
> host and you'll be able to produce ARM64 builds, still these will not
> be able to run on the host where they were built.=C2=A0 How much of the
> patch posted upthread is required to produce such builds?=C2=A0 Basically
> everything from it, I guess, so as build dependencies can be
> satisfied?
>
> [1]: https://learn.microsoft.com/en-us/cpp/build/building-= on-the-command-line?view=3Dmsvc-170


If you look at the table here x86 and x64 are the only supported host
architectures. But that's OK, the x64 binaries will run on arm64 (W11
ARM64 has x64 emulation builtin). If that didn'= t work Dave and I would
not have got as far as we have. But you want the x64_arm64 argument to
vcvarsall so you will get ARM64 output.

I've rebuilt it using=C2=A0 x64_arm64 and wi= th the attached (very naive patch) and I still get an x64 binary :(


With this patch I still get a build error, but it's different :-)


[1406/2088] "link" @src/backend/postgres.exe.rsp=
FAILED: src/backend/postgres.exe src/backend/postgres.pdb
"link" @src/backend/postgres.exe.rsp
=C2=A0=C2=A0 Creating library src\backend\postgres.exe.lib<= br>
storage_lmgr_s_lock.c.obj : error LNK2019: unresolved external symbol spin_delay referenced in function perform_spin_delay

src\backend\postgres.exe : fatal error LNK1120: 1 unresolved externals


Did you add the latest lock.patch ?




I'm a bit confused about exactly what needs to be applied. Can you supply a complete patch to be applied to a pristine checkout that will let me build?


cheers


See attached.
=

Dave
--00000000000032721406102ae2b6-- --00000000000032721606102ae2ba Content-Type: application/octet-stream; name="0001-fix-build-for-arm.patch" Content-Disposition: attachment; filename="0001-fix-build-for-arm.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ls0h6d820 RnJvbSAxOTI4NGEwMDE0MmExZDM4NTRkODliNjBlNjQxZTIwNDhjYmYxYmIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBkYXZlY3JhbWVyIDxkYXZlY3JhbWVyQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAyMyBKYW4gMjAyNCAxMzoyOTo0OCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBm aXggYnVpbGQgZm9yIGFybQoKLS0tCiBkb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwgfCAy ICstCiBzcmMvdG9vbHMvbXN2Y19nZW5kZWYucGwgICAgICAgfCA4ICsrKystLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9u LnNnbWwKaW5kZXggZTczOTAyYjNmOC4uNjg2YTM0MjE1MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2luc3RhbGxhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dt bApAQCAtNDE1MCw3ICs0MTUwLDcgQEAgbWFrZTogKioqIFtwb3N0Z3Jlc10gRXJyb3IgMQogICAg PHNlY3QzIGlkPSJpbnN0YWxsLXdpbmRvd3MtZnVsbC02NC1iaXQiPgogICAgIDx0aXRsZT5TcGVj aWFsIENvbnNpZGVyYXRpb25zIGZvciA2NC1CaXQgV2luZG93czwvdGl0bGU+CiAgICAgPHBhcmE+ Ci0gICAgIFBvc3RncmVTUUwgd2lsbCBvbmx5IGJ1aWxkIGZvciB0aGUgeDY0IGFyY2hpdGVjdHVy ZSBvbiA2NC1iaXQgV2luZG93cy4KKyAgICAgUG9zdGdyZVNRTCB3aWxsIG9ubHkgYnVpbGQgZm9y IHRoZSB4NjQgYW5kIEFSTTY0IGFyY2hpdGVjdHVyZSBvbiA2NC1iaXQgV2luZG93cy4KICAgICA8 L3BhcmE+CiAgICAgPHBhcmE+CiAgICAgIE1peGluZyAzMi0gYW5kIDY0LWJpdCB2ZXJzaW9ucyBp biB0aGUgc2FtZSBidWlsZCB0cmVlIGlzIG5vdCBzdXBwb3J0ZWQuCmRpZmYgLS1naXQgYS9zcmMv dG9vbHMvbXN2Y19nZW5kZWYucGwgYi9zcmMvdG9vbHMvbXN2Y19nZW5kZWYucGwKaW5kZXggMTJj NDllZDI2NS4uZGZiMjY5MTZiZCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmNfZ2VuZGVmLnBs CisrKyBiL3NyYy90b29scy9tc3ZjX2dlbmRlZi5wbApAQCAtMTIwLDkgKzEyMCw5IEBAIHN1YiB3 cml0ZWRlZgogCXsKIAkJbXkgJGlzZGF0YSA9ICRkZWYtPnskZn0gZXEgJ2RhdGEnOwogCi0JCSMg U3RyaXAgdGhlIGxlYWRpbmcgdW5kZXJzY29yZSBmb3Igd2luMzIsIGJ1dCBub3QgeDY0CisJCSMg U3RyaXAgdGhlIGxlYWRpbmcgdW5kZXJzY29yZSBmb3Igd2luMzIsIGJ1dCBub3QgeDY0IGFuZCBh YXJjaDY0CiAJCSRmID1+IHMvXl8vLwotCQkgIHVubGVzcyAoJGFyY2ggZXEgIng4Nl82NCIpOwor CQkgIHVubGVzcyAoJGFyY2ggZXEgIng4Nl82NCIgfHwgJGFyY2ggZXEgImFhcmNoNjQiKTsKIAog CQkjIEVtaXQganVzdCB0aGUgbmFtZSBpZiBpdCdzIGEgZnVuY3Rpb24gc3ltYm9sLCBvciBlbWl0 IHRoZSBuYW1lCiAJCSMgZGVjb3JhdGVkIHdpdGggdGhlIERBVEEgb3B0aW9uIGZvciB2YXJpYWJs ZXMuCkBAIC0xNDMsNyArMTQzLDcgQEAgc3ViIHdyaXRlZGVmCiBzdWIgdXNhZ2UKIHsKIAlkaWUo IlVzYWdlOiBtc3ZjX2dlbmRlZi5wbCAtLWFyY2ggPGFyY2g+IC0tZGVmZmlsZSA8ZGVmZmlsZT4g LS10ZW1wZGlyIDx0ZW1wZGlyPiBmaWxlcy1vci1kaXJlY3Rvcmllc1xuIgotCQkgIC4gIiAgICBh cmNoOiB4ODYgfCB4ODZfNjRcbiIKKwkJICAuICIgICAgYXJjaDogeDg2IHwgeDg2XzY0IHwgYWFy Y2g2NFxuIgogCQkgIC4gIiAgICBkZWZmaWxlOiBwYXRoIG9mIHRoZSBnZW5lcmF0ZWQgZmlsZVxu IgogCQkgIC4gIiAgICB0ZW1wZGlyOiBkaXJlY3RvcnkgZm9yIHRlbXBvcmFyeSBmaWxlc1xuIgog CQkgIC4gIiAgICBmaWxlcyBvciBkaXJlY3Rvcmllczogb2JqZWN0IGZpbGVzIG9yIGRpcmVjdG9y eSBjb250YWluaW5nIG9iamVjdCBmaWxlc1xuIgpAQCAtMTYwLDcgKzE2MCw3IEBAIEdldE9wdGlv bnMoCiAJJ3RlbXBkaXI6cycgPT4gXCR0ZW1wZGlyLCkgb3IgdXNhZ2UoKTsKIAogdXNhZ2UoImFy Y2g6ICRhcmNoIikKLSAgdW5sZXNzICgkYXJjaCBlcSAneDg2JyB8fCAkYXJjaCBlcSAneDg2XzY0 Jyk7CisgIHVubGVzcyAoJGFyY2ggZXEgJ3g4NicgfHwgJGFyY2ggZXEgJ3g4Nl82NCcgfHwgJGFy Y2ggZXEgJ2FhcmNoNjQnKTsKIAogbXkgQGZpbGVzOwogCi0tIAoyLjQzLjAud2luZG93cy4xCgo= --00000000000032721606102ae2ba Content-Type: application/octet-stream; name="0002-naive-patch-to-fix-locking-for-arm64.patch" Content-Disposition: attachment; filename="0002-naive-patch-to-fix-locking-for-arm64.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ls0h6d891 RnJvbSAwNjYxNzc0MzQ5ZjJhOTZjN2FhNGFhYWMzMjhhY2E0MTE4ODU3ZjRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBkYXZlY3JhbWVyIDxkYXZlY3JhbWVyQGdtYWlsLmNvbT4KRGF0 ZTogVHVlLCAzMCBKYW4gMjAyNCAwOTo0NzoyNSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBu YWl2ZSBwYXRjaCB0byBmaXggbG9ja2luZyBmb3IgYXJtNjQKCi0tLQogc3JjL2luY2x1ZGUvc3Rv cmFnZS9zX2xvY2suaCB8IDE0ICsrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNl cnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3Jh Z2Uvc19sb2NrLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCmluZGV4IGFhMDZlNDlk YTIuLjYxZjM2NWQwZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmgK KysrIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaApAQCAtMjU2LDggKzI1Niw4IEBAIHNw aW5fZGVsYXkodm9pZCkKICAqIFdlIHVzZSB0aGUgaW50LXdpZHRoIHZhcmlhbnQgb2YgdGhlIGJ1 aWx0aW4gYmVjYXVzZSBpdCB3b3JrcyBvbiBtb3JlIGNoaXBzCiAgKiB0aGFuIG90aGVyIHdpZHRo cy4KICAqLwotI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FybSkgfHwgZGVmaW5l ZChfX2FhcmNoNjRfXykKLSNpZmRlZiBIQVZFX0dDQ19fU1lOQ19JTlQzMl9UQVMKKyNpZiBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hcm0pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8 IGRlZmluZWQoX01fQVJNNjQpCisvLyNpZmRlZiBIQVZFX0dDQ19fU1lOQ19JTlQzMl9UQVMKICNk ZWZpbmUgSEFTX1RFU1RfQU5EX1NFVAogCiAjZGVmaW5lIFRBUyhsb2NrKSB0YXMobG9jaykKQEAg LTI3Nyw3ICsyNzcsNyBAQCB0YXModm9sYXRpbGUgc2xvY2tfdCAqbG9jaykKICAqIGhpZ2gtY29y ZS1jb3VudCBBUk02NCBwcm9jZXNzb3JzLiAgSXQgc2VlbXMgbW9zdGx5IGEgd2FzaCBmb3Igc21h bGxlciBnZWFyLAogICogYW5kIElTQiBkb2Vzbid0IGV4aXN0IGF0IGFsbCBvbiBwcmUtdjcgQVJN IGNoaXBzLgogICovCi0jaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKKyNpZiBkZWZpbmVkKF9fYWFy Y2g2NF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQogCiAjZGVmaW5lIFNQSU5fREVMQVkoKSBzcGlu X2RlbGF5KCkKIApAQCAtMjg4LDkgKzI4OCw5IEBAIHNwaW5fZGVsYXkodm9pZCkKIAkJIiBpc2I7 CQkJCVxuIik7CiB9CiAKLSNlbmRpZgkgLyogX19hYXJjaDY0X18gKi8KLSNlbmRpZgkgLyogSEFW RV9HQ0NfX1NZTkNfSU5UMzJfVEFTICovCi0jZW5kaWYJIC8qIF9fYXJtX18gfHwgX19hcm0gfHwg X19hYXJjaDY0X18gKi8KKyNlbmRpZgkgLyogX19hYXJjaDY0X18gIF9NX0FSTTY0ICovCisvLyNl bmRpZgkgLyogSEFWRV9HQ0NfX1NZTkNfSU5UMzJfVEFTICovCisjZW5kaWYJIC8qIF9fYXJtX18g fHwgX19hcm0gfHwgX19hYXJjaDY0X18gX01fQVJNNjQgKi8KIAogCiAvKiBTLzM5MCBhbmQgUy8z OTB4IExpbnV4ICgzMi0gYW5kIDY0LWJpdCB6U2VyaWVzKSAqLwpAQCAtNzEwLDYgKzcxMCw3IEBA IHR5cGVkZWYgTE9ORyBzbG9ja190OwogLyogSWYgdXNpbmcgVmlzdWFsIEMrKyBvbiBXaW42NCwg aW5saW5lIGFzc2VtYmx5IGlzIHVuYXZhaWxhYmxlLgogICogVXNlIGEgX21tX3BhdXNlIGludHJp bnNpYyBpbnN0ZWFkIG9mIHJlcCBub3AuCiAgKi8KKyNpZiAhZGVmaW5lZChfTV9BUk02NCkKICNp ZiBkZWZpbmVkKF9XSU42NCkKIHN0YXRpYyBfX2ZvcmNlaW5saW5lIHZvaWQKIHNwaW5fZGVsYXko dm9pZCkKQEAgLTcyNCw2ICs3MjUsNyBAQCBzcGluX2RlbGF5KHZvaWQpCiAJX19hc20gcmVwIG5v cDsKIH0KICNlbmRpZgorI2VuZGlmCiAKICNpbmNsdWRlIDxpbnRyaW4uaD4KICNwcmFnbWEgaW50 cmluc2ljKF9SZWFkV3JpdGVCYXJyaWVyKQotLSAKMi40My4wLndpbmRvd3MuMQoK --00000000000032721606102ae2ba--