diff --git a/meson.build b/meson.build index 56454cc3395..54451abe195 100644 --- a/meson.build +++ b/meson.build @@ -1060,7 +1060,10 @@ if not perlopt.disabled() if cc.get_id() == 'msvc' # prevent binary mismatch between MSVC built plperl and Strawberry or # msys ucrt perl libraries - perl_ccflags += ['-DNO_THREAD_SAFE_LOCALE'] + perl_v = run_command(perl, '-V').stdout() + if not perl_v.contains('USE_THREAD_SAFE_LOCALE') + perl_ccflags += ['-DNO_THREAD_SAFE_LOCALE'] + endif endif endif diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm index 6a79a0e037d..1dc336a54da 100644 --- a/src/tools/msvc/Mkvcbuild.pm +++ b/src/tools/msvc/Mkvcbuild.pm @@ -595,7 +595,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,