postgres.git / summary / log / commit / refs

commit    ab81d004e40178deecf0c3bcae177d43ce9926ab
Author:   Michael Paquier <michael@paquier.xyz>
Date:     Thu May 27 11:11:21 2021 +0000
First released in: 14.0, 9.6.23, 10.18, 11.13, 12.8, 13.4

    Fix MSVC scripts when building with GSSAPI/Kerberos
    
    The deliverables of upstream Kerberos on Windows are installed with
    paths that do not match our MSVC scripts.  First, the include folder was
    named "inc/" in our scripts, but the upstream MSIs use "include/".
    Second, the build would fail with 64-bit environments as the libraries
    are named differently.
    
    This commit adjusts the MSVC scripts to be compatible with the latest
    installations of upstream, and I have checked that the compilation was
    able to work with the 32-bit and 64-bit installations.
    
    Special thanks to Kondo Yuta for the help in investigating the situation
    in hamerkop, which had an incorrect configuration for the GSS
    compilation.
    
    Reported-by: Brian Ye
    Discussion: https://postgr.es/m/162128202219.27274.12616756784952017465@wrigleys.postgresql.org
    Backpatch-through: 9.6


src/tools/msvc/Solution.pm | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index a13ca6e02e8..23d55daa2f8 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -1003,10 +1003,26 @@ sub AddProject } if ($self->{options}->{gss}) { - $proj->AddIncludeDir($self->{options}->{gss} . '\inc\krb5'); - $proj->AddLibrary($self->{options}->{gss} . '\lib\i386\krb5_32.lib'); - $proj->AddLibrary($self->{options}->{gss} . '\lib\i386\comerr32.lib'); - $proj->AddLibrary($self->{options}->{gss} . '\lib\i386\gssapi32.lib'); + $proj->AddIncludeDir($self->{options}->{gss} . '\include'); + $proj->AddIncludeDir($self->{options}->{gss} . '\include\krb5'); + if ($self->{platform} eq 'Win32') + { + $proj->AddLibrary( + $self->{options}->{gss} . '\lib\i386\krb5_32.lib'); + $proj->AddLibrary( + $self->{options}->{gss} . '\lib\i386\comerr32.lib'); + $proj->AddLibrary( + $self->{options}->{gss} . '\lib\i386\gssapi32.lib'); + } + else + { + $proj->AddLibrary( + $self->{options}->{gss} . '\lib\amd64\krb5_64.lib'); + $proj->AddLibrary( + $self->{options}->{gss} . '\lib\amd64\comerr64.lib'); + $proj->AddLibrary( + $self->{options}->{gss} . '\lib\amd64\gssapi64.lib'); + } } if ($self->{options}->{iconv}) { [parent: 0ab64ab318f2]