Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1695ce0

Browse files
committed
Support linking with MinGW-built Perl.
This is necessary for ActivePerl 5.18 onwards and for Strawberry Perl.It is not sufficient for 32-bit builds with newer Visual Studio; thesefail with error LINK2026. Back-patch to 9.3 (all supported versions).Reported by Victor Wagner.Discussion:https://postgr.es/m/20160326154321.7754ab8f@wagner.wagner.home
1 parentc253b72 commit1695ce0

File tree

4 files changed

+35
-12
lines changed

4 files changed

+35
-12
lines changed

‎config/perl.m4

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,19 @@ AC_DEFUN([PGAC_CHECK_PERL_EMBED_LDFLAGS],
8686
[AC_REQUIRE([PGAC_PATH_PERL])
8787
AC_MSG_CHECKING(forflagstolinkembeddedPerl)
8888
if test "$PORTNAME" = "win32" ; then
89-
perl_lib=`basename $perl_archlibexp/CORE/perl[[5-9]]*.lib .lib`
90-
test -e "$perl_archlibexp/CORE/$perl_lib.lib" && perl_embed_ldflags="-L$perl_archlibexp/CORE -l$perl_lib"
89+
perl_lib=`basename $perl_archlibexp/CORE/perl[[5-9]]*.lib .lib`
90+
if test -e "$perl_archlibexp/CORE/$perl_lib.lib"; then
91+
perl_embed_ldflags="-L$perl_archlibexp/CORE -l$perl_lib"
92+
else
93+
perl_lib=`basename $perl_archlibexp/CORE/libperl[[5-9]]*.a .a | sed 's/^lib//'`
94+
if test -e "$perl_archlibexp/CORE/lib$perl_lib.a"; then
95+
perl_embed_ldflags="-L$perl_archlibexp/CORE -l$perl_lib"
96+
fi
97+
fi
9198
else
92-
pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
93-
pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
94-
perl_embed_ldflags=`echo X"$pgac_tmp1" | sed -e "s/^X//" -e "s%$pgac_tmp2%%" -e["s/ -arch[-a-zA-Z0-9_]*//g"]`
99+
pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
100+
pgac_tmp2=`$PERL -MConfig -e 'print $Config{ccdlflags}'`
101+
perl_embed_ldflags=`echo X"$pgac_tmp1" | sed -e "s/^X//" -e "s%$pgac_tmp2%%" -e["s/ -arch[-a-zA-Z0-9_]*//g"]`
95102
fi
96103
AC_SUBST(perl_embed_ldflags)dnl
97104
if test -z "$perl_embed_ldflags" ; then

‎configure

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7527,12 +7527,19 @@ $as_echo "$perl_embed_ccflags" >&6; }
75277527
{$as_echo"$as_me:${as_lineno-$LINENO}: checking for flags to link embedded Perl">&5
75287528
$as_echo_n"checking for flags to link embedded Perl...">&6; }
75297529
iftest"$PORTNAME" ="win32";then
7530-
perl_lib=`basename$perl_archlibexp/CORE/perl[5-9]*.lib .lib`
7531-
test -e"$perl_archlibexp/CORE/$perl_lib.lib"&& perl_embed_ldflags="-L$perl_archlibexp/CORE -l$perl_lib"
7530+
perl_lib=`basename$perl_archlibexp/CORE/perl[5-9]*.lib .lib`
7531+
iftest -e"$perl_archlibexp/CORE/$perl_lib.lib";then
7532+
perl_embed_ldflags="-L$perl_archlibexp/CORE -l$perl_lib"
7533+
else
7534+
perl_lib=`basename$perl_archlibexp/CORE/libperl[5-9]*.a .a| sed's/^lib//'`
7535+
iftest -e"$perl_archlibexp/CORE/lib$perl_lib.a";then
7536+
perl_embed_ldflags="-L$perl_archlibexp/CORE -l$perl_lib"
7537+
fi
7538+
fi
75327539
else
7533-
pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
7534-
pgac_tmp2=`$PERL -MConfig -e'print $Config{ccdlflags}'`
7535-
perl_embed_ldflags=`echo X"$pgac_tmp1"| sed -e"s/^X//" -e"s%$pgac_tmp2%%" -e"s/ -arch [-a-zA-Z0-9_]*//g"`
7540+
pgac_tmp1=`$PERL -MExtUtils::Embed -e ldopts`
7541+
pgac_tmp2=`$PERL -MConfig -e'print $Config{ccdlflags}'`
7542+
perl_embed_ldflags=`echo X"$pgac_tmp1"| sed -e"s/^X//" -e"s%$pgac_tmp2%%" -e"s/ -arch [-a-zA-Z0-9_]*//g"`
75367543
fi
75377544
iftest -z"$perl_embed_ldflags";then
75387545
{$as_echo"$as_me:${as_lineno-$LINENO}: result: no">&5

‎src/pl/plperl/plperl.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@
4242
#undef vsnprintf
4343
#endif
4444

45+
/*
46+
* ActivePerl 5.18 and later are MinGW-built, and their headers use GCC's
47+
* __inline__. Translate to something MSVC recognizes.
48+
*/
49+
#ifdef_MSC_VER
50+
#define__inline__ inline
51+
#endif
52+
4553

4654
/*
4755
* Get the basic Perl API. We use PERL_NO_GET_CONTEXT mode so that our code

‎src/tools/msvc/Mkvcbuild.pm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -614,9 +614,10 @@ sub mkvcbuild
614614
}
615615
}
616616
$plperl->AddReference($postgres);
617+
my$perl_path =$solution->{options}->{perl} .'\lib\CORE\*perl*';
618+
# ActivePerl 5.16 provided perl516.lib; 5.18 provided libperl518.a
617619
my@perl_libs =
618-
grep {/perl\d+.lib$/ }
619-
glob($solution->{options}->{perl} .'\lib\CORE\perl*.lib');
620+
grep {/perl\d+\.lib$|libperl\d+\.a$/ }glob($perl_path);
620621
if (@perl_libs == 1)
621622
{
622623
$plperl->AddLibrary($perl_libs[0]);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp