From: Magnus Hagander Date: Fri, 2 Mar 2018 11:40:49 +0000 (+0100) Subject: Fix msvc builds for ActivePerl > 5.24 X-Git-Tag: REL_11_BETA1~677 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7240962f8626ff09bb8f9e71ecdb074775bdd035;p=postgresql Fix msvc builds for ActivePerl > 5.24 From this version ActivePerl ships both a .lib and a .a file for the perl library, which our code would detect as there being no library available. Instead, we should pick the .lib version and use that. Report and suggested fix in bug #15065 Author: Heath Lord --- diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index d8c279ab92..123292f48d 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -524,9 +524,11 @@ sub mkvcbuild my $perl_path = $solution->{options}->{perl} . '\lib\CORE\*perl*'; # ActivePerl 5.16 provided perl516.lib; 5.18 provided libperl518.a + # Starting with ActivePerl 5.24, both perlnn.lib and libperlnn.a are provided. + # In this case, prefer .lib. my @perl_libs = grep { /perl\d+\.lib$|libperl\d+\.a$/ } glob($perl_path); - if (@perl_libs == 1) + if (@perl_libs > 0) { $plperl->AddLibrary($perl_libs[0]); }