Re: MSVC vs Perl

From: Andres Freund <andres(at)anarazel(dot)de>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>, Dagfinn Ilmari Mannsåker <ilmari(at)ilmari(dot)org>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: MSVC vs Perl
Date: 2022-11-26 21:05:25
Message-ID: 20221126210525.3qq74o2ec6gxvamj@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2022-11-26 09:43:19 -0500, Andrew Dunstan wrote:
> OK, so this cures the problem for drongo:
>
>
> diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
> index 83a3e40425..dc6b94b74f 100644
> --- a/src/tools/msvc/Mkvcbuild.pm
> +++ b/src/tools/msvc/Mkvcbuild.pm
> @@ -707,6 +707,7 @@ sub mkvcbuild
>                 print "CFLAGS recommended by Perl: $Config{ccflags}\n";
>                 print "CFLAGS to compile embedded Perl: ",
>                   (join ' ', map { "-D$_" } @perl_embed_ccflags), "\n";
> +               push @perl_embed_ccflags,'NO_THREAD_SAFE_LOCALE';
>                 foreach my $f (@perl_embed_ccflags)
>                 {
>                         $plperl->AddDefine($f);

This likely is just a test patch, in case it is not, it seems we should add
NO_THREAD_SAFE_LOCALE to @perl_embed_ccflags before printing it.

Do we need a "configure" check for this? I guess it's ok to define this
whenever building with msvc - I don't currently see a scenario where it could
hurt. We already define flags unconditionally, c.f. PLPERL_HAVE_UID_GID.

Given how fragile the embedding is (we've had several prior iterations of
problems around this), I think it'd be good to test that the current flags
avoid the "got handshake key" at configure time, rather than having to debug
runtime failures.

As noted by Noah in [1], the Mkvcbuild.pm actually has code to do so - but
only does for 32bit builds.

I don't think it's worth generalizing this for src/tools/msvc at this point,
but it might be worth copying the test to meson and running the binary (except
when cross building, of course).

Greetings,

Andres Freund

[1] https://postgr.es/m/20220130231432.GA2658915%40rfd.leadboat.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2022-11-26 21:13:36 Re: Decouple last important WAL record LSN from WAL insert locks
Previous Message Andres Freund 2022-11-26 20:55:59 Re: pg_regress: Treat child process failure as test failure