summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2024-09-14 08:37:08 -0400
committerAndrew Dunstan <andrew@dunslane.net>2024-09-14 09:19:53 -0400
commitf40d9e9f1b5892a340d5ed5d650c9dc3cf72e6e9 (patch)
tree72a0efc2a98005b993b6664fb9f611c575c5d16f /src
parentb27215dbb42b6376515e1ab1ff06e0ad9ab13450 (diff)
Only define NO_THREAD_SAFE_LOCALE for MSVC plperl when required
Latest versions of Strawberry Perl define USE_THREAD_SAFE_LOCALE, and we therefore get a handshake error when building against such instances. The solution is to perform a test to see if USE_THREAD_SAFE_LOCALE is defined and only define NO_THREAD_SAFE_LOCALE if it isn't. Backpatch the meson.build fix back to release 16 and apply the same logic to Mkvcbuild.pm in releases 12 through 16. Original report of the issue from Muralikrishna Bandaru.
Diffstat (limited to 'src')
-rw-r--r--src/tools/msvc/Mkvcbuild.pm4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 67b2ea9ee9b..14e1fba7e80 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -576,7 +576,9 @@ sub mkvcbuild
push(@perl_embed_ccflags, 'PLPERL_HAVE_UID_GID');
# prevent binary mismatch between MSVC built plperl and
# Strawberry or msys ucrt perl libraries
- push(@perl_embed_ccflags, 'NO_THREAD_SAFE_LOCALE');
+ my $perl_v = `$^X -V 2>&1`;
+ push(@perl_embed_ccflags, 'NO_THREAD_SAFE_LOCALE')
+ unless $perl_v =~ /USE_THREAD_SAFE_LOCALE/;
# Windows offers several 32-bit ABIs. Perl is sensitive to
# sizeof(time_t), one of the ABI dimensions. To get 32-bit time_t,