Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pWY1O-0007eP-V2 for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Feb 2023 07:34:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pWY1N-0007Mw-S7 for pgsql-hackers@arkaria.postgresql.org; Mon, 27 Feb 2023 07:34:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <32686647@qq.com>) id 1pWY1N-0007Mn-36 for pgsql-hackers@lists.postgresql.org; Mon, 27 Feb 2023 07:34:05 +0000 Received: from out162-62-57-210.mail.qq.com ([162.62.57.210]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <32686647@qq.com>) id 1pWY1J-0001kw-0x for pgsql-hackers@lists.postgresql.org; Mon, 27 Feb 2023 07:34:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1677483231; bh=pNDA/1anOBPRcWuxuNK3DIIM/6irPUwbMTRyc7ZpNp8=; h=To:Cc:From:Subject:Date:In-Reply-To:References; b=c7s3atyRtXyWfGxnS2MEpMO7veLiYbSHaOeW8fSZ64YZW01nvjMoCRspnrTcvogiu W2b7oQ8r7eY4MIU2aKe+VfWQJlGj8DoCi67JdrQlwtnX8HiGfF6GBkAR+CHVqv4LqT MLA+Ez0BeQ6U9KqYbr/wODfjeqpxTisRorz1y6U4= Received: from [IPv6:::ffff:10.2.0.8] ([113.69.10.38]) by newxmesmtplogicsvrszb6-0.qq.com (NewEsmtp) with SMTP id 8722D87E; Mon, 27 Feb 2023 15:33:50 +0800 X-QQ-mid: xmsmtpt1677483230t8wg9erbp Message-ID: X-QQ-XMAILINFO: MmCmH9jyqHC2XEuKorcc0ygUEJ2bafwexyQDihfdw30719He2XC86TYOeHKtSV /m+T7w34BEabjvQvMHQfLJ2cBuCxN5fbvUWmH6q7VawynZHqK6GthXdFIybkUtIEZLjPiPb0kqCx VjlnDO6R5rfvdsl7TCkFbB6k9cCoSMuM/aC/FTsAuo06X2/AV5g6QUzbXSFQgeFr52nfatZmUr3G pixGOCiBb3PGcq6RT9c0rCRABqY3FcU7qLw58PFWhSEuNQHIn+8Rgy0YBZfssYD+Gls3Ob+wwvLN vDXW5rDrdugA82sEmJIzPi5qM5dN7780KRmxN3J57lKvYUBVsSIxTnIWKgr22FJmHiX0/1x60Cpo D3YWGe++RWZI6mzW9ppfVqEfApodq8i/Ff5qz7qXKKoIkV4yrYV8yxtavhTUFUXWt9ls9BFoPa8t ATVO+6lKPruuVFhP4SOO/nNb2dPHBz035zkxmVCLtkxhlWOkGnfFmYnndghIV4goD64AyKvXRjhQ 3FrCRT8V5hNJhEUu4Q6Vxr/t9+QzaaU/zv4rJd2/ouUgslryLQSqnbR/Llv0IhRTivXXR0NdF3OR jW+98/6hgWU15CMKUxQb+cxAJtWWMxiSz0fuOKiwkaDrQsTyTohZQb26YnFGIjD5OpdX4TZMFJ0H rC7oeqlmtYR3fPoqdK81K9NF5HiUTRnM2ceuBHpVfUPlAJnrcPs+RHW0L9MXROyd55rV3G1g43IT sljjikTHK0uB0v4rt5OCUcDv7t8ezJ5+rX6YPUoVCjFEhvLoYhBwNRUolRVk3mZf2GeY+mMTc/qT fuMKInoXsbGY5Wj1BEtIhG7UniXN15pdVqA+YuDzydUhbj8o+OqqZ1xGUZijSbwYpbpBAth7b/ZG dNO1bRCWDEH3cXrXpyojp94A1IYqbrsy9pvVM29Q5My4wU0Dy6Pz6iMYem5SMxoOzkeyh8xr9u1D rNK8OwV7MckPK9Vtg5dfVjdT6UteteSxbqWtCJm7Wm7vO/ZFAA22MwFEis/dC1EgaVtozO9WDvGz YPqnA2khfhplqy9/e0Lt/uiFkfRfsapVvCe1n4QA== MIME-Version: 1.0 To: Michael Paquier Cc: "pgsql-hackers@lists.postgresql.org" From: gamefunc <32686647@qq.com> Subject: RE: [PATCH] fix msvc build libpq error LNK2019 when link openssl; Date: Mon, 27 Feb 2023 15:33:50 +0800 Importance: normal X-Priority: 3 In-Reply-To: References: Content-Type: multipart/alternative; boundary="_67E5BABE-4388-4758-A914-F9C07B7CF41E_" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_67E5BABE-4388-4758-A914-F9C07B7CF41E_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" sorry i should have made it clear =E2=80=93 I am only reporting my build er= ror issue; the patch is only for illustrative purpose, not for merging to upstream; And my English is not good, so I can only write simple descriptions; >> This diff forces the creation of a VS2022Solution(): yes, my env: vs2022, openssl3.0.7;=20 >> Note that buildfarm member drongo is providing coverage for 64b: thank you, But I need to build libpq myself because I need to add functions= to libpq for my example use; https://github.com/gamefunc/Aiolibpq_simple; >> Are you sure that you just didn't mix 64b builds with 32b libraries; no, all 64b; From: Michael Paquier Date: 2023=E5=B9=B42=E6=9C=8827=E6=97=A5 13:27 To: gamefunc CC: pgsql-hackers Subject: Re: [PATCH] fix msvc build libpq error LNK2019 when link openssl; On Mon, Feb 27, 2023 at 09:58:28AM +0800, gamefunc wrote: > # I: > (default target) (1) -> (Link target) -> > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tOpenStore=EF=BC=8C capi_open_store =20 > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tCloseStore=EF=BC=8C capi_find_key =20 > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tEnumCertificatesInStore=EF=BC=8C capi_find_cert =20 > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tFindCertificateInStore=EF=BC=8C capi_find_cert > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tDuplicateCertificateContext=EF=BC=8C capi_load_ssl_client_cert > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tFreeCertificateContext=EF=BC=8C capi_dsa_free > libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019: __imp_Cer= tGetCertificateContextProperty=EF=BC=8C capi_cert_get_fname=20 @@ -94,7 +94,7 @@ sub mkvcbuild die 'Must run from root or msvc directory' unless (-d 'src/tools/msvc' && -d 'src') - my $vsVersion =3D DetermineVisualStudioVersion(); + my $vsVersion =3D "17.00"; This diff forces the creation of a VS2022Solution(), which would be incorrect when using an MSVC environment different than 17.0 as version number, no? Note that buildfarm member drongo is providing coverage for 64b Windows builds with Visual 2019 and OpenSSL: https://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=3Ddrongo&br=3DH= EAD Are you sure that you just didn't mix 64b builds with 32b libraries, or vice-versa? -- Michael --_67E5BABE-4388-4758-A914-F9C07B7CF41E_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8"

sorry i should have made it= clear =E2=80=93 I am only reporting my build error issue;

the patch is only for illustrative purpose, not for merging to upstr= eam;

And my English is not good, so I can only write= simple descriptions;

>> This diff forces the= creation of a VS2022Solution():

= yes, my env: vs2022= , openssl3.0.7;

 

>&= gt; Note that buildfarm member drongo is providing coverage for 64b:

thank you, But I need to build libpq myself because I need= to add functions to libpq for my example use; https://github.com/gamefunc/= Aiolibpq_simple;

 

>&= gt; Are you sure that you just didn't mix 64b builds with 32b libraries;

no, all 64b;

 

From: Michael PaquierDate: 2023=E5=B9=B42=E6=9C= =8827= =E6=97=A5 13:27
To: gamefunc
CC: pgsql-hackers
Subject: Re: [PATCH] fix = msvc build libpq error LNK2019 when link openssl;

 

On Mon, Feb 27, 2023 at 09:58:28AM +0800, gamefunc wrote:

> # I:

>=C2=A0=C2=A0=C2=A0=C2=A0 (default targe= t) (1) -&gt; (Link target) -&gt;

>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 libcrypto.lib(libc= rypto-lib-e_capi.obj) : error LNK2019:=C2=A0 __imp_CertOpenStore=EF=BC=8C capi_o= pen_store=C2=A0

>=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 libcrypto.lib(libcrypto-lib-e_capi.obj) := error LNK2019:=C2=A0 __imp_CertCloseStore=EF=BC=8C capi_find_key=C2=A0 <= /p>

>=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 libcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019:=C2=A0 __= imp_CertEnumCertificatesInStore= =EF=BC=8C capi_find_cert=C2=A0

>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 l= ibcrypto.lib(libcrypto-lib-e_capi.obj) : error LNK2019:=C2=A0 __imp_CertFin= dCertificateInStore=EF=BC=8C capi_find_cert

>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 libcrypto.lib(libcry= pto-lib-e_capi.obj) : error LNK2019:=C2=A0 __imp_CertDuplicateCertificateCo= ntext=EF=BC=8C capi_load_ssl_client_cert

>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 libcrypto.lib(libcrypto= -lib-e_capi.obj) : error LNK2019:=C2=A0 __imp_CertFreeCertificateContext=EF=BC=8C capi_dsa_free

>=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 libcrypto.lib(libcrypto-lib-e_capi.obj) := error LNK2019:=C2=A0 __imp_CertGetCertificateContextProperty=EF=BC=8C capi_cert= _get_fname

 

@@ -94,7 +94,7 @@ su= b mkvcbuild

=C2=A0=C2=A0= =C2=A0 die 'Must run from root or msvc directory'

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 unless (-d 'src/too= ls/msvc' && -d 'src')

 

-= =C2=A0=C2=A0 my $vsVersion =3D DetermineVisualStudioVersion();

+=C2=A0=C2=A0 my $vsVersion =3D "= ;17.00";

 =

This diff forces t= he creation of a VS2022Solution(), which would be

incorrect when using an MSVC environment different= than 17.0 as

version num= ber, no?

 

Note that buildfarm mem= ber drongo is providing coverage for 64b

Windows builds with Visual 2019 and OpenSSL:

https://buildfarm.postgresql.org/cgi-bi= n/show_history.pl?nm=3Ddrongo&br=3DHEAD

=  

Are you sure that you just didn't mix 64b builds with 32b libra= ries,

or vice-versa?

--

Michael

 

 

= --_67E5BABE-4388-4758-A914-F9C07B7CF41E_--