From 373679c4a82f04e6c16198cdffab1a6c56852956 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 11 Nov 2022 16:00:48 +0100 Subject: [PATCH] meson: Define HAVE_LOCALE_T for msvc Meson doesn't see the redefinition of locale_t done in src/include/port/win32_port.h, so it is not defining HAVE_LOCALE_T, HAVE_WCSTOMBS_L nor HAVE_MBSTOWCS_L as the current src/tools/msvc/build.pl script does. Add manual overrides to fix. Author: Author: Juan Jose Santamaria Flecha Discussion: https://www.postgresql.org/message-id/flat/CAC%2BAXB1wJEqfKCuVcNpoH%3Dgxd61N%3D7c2fR3Ew6YRPpSfEUA%3DyQ%40mail.gmail.com --- meson.build | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ce2f223a409..058382046e1 100644 --- a/meson.build +++ b/meson.build @@ -2193,12 +2193,15 @@ endif # Check for the locale_t type and find the right header file. macOS # needs xlocale.h; standard is locale.h, but glibc also has an -# xlocale.h file that we should not use. +# xlocale.h file that we should not use. MSVC has a replacement +# defined in src/include/port/win32_port.h. if cc.has_type('locale_t', prefix: '#include ') cdata.set('HAVE_LOCALE_T', 1) elif cc.has_type('locale_t', prefix: '#include ') cdata.set('HAVE_LOCALE_T', 1) cdata.set('LOCALE_T_IN_XLOCALE', 1) +elif cc.get_id() == 'msvc' + cdata.set('HAVE_LOCALE_T', 1) endif # Check if the C compiler understands typeof or a variant. Define @@ -2411,6 +2414,13 @@ if cc.has_function('syslog', args: test_c_args) and \ endif +# MSVC has replacements defined in src/include/port/win32_port.h. +if cc.get_id() == 'msvc' + cdata.set('HAVE_WCSTOMBS_L', 1) + cdata.set('HAVE_MBSTOWCS_L', 1) +endif + + # if prerequisites for unnamed posix semas aren't fulfilled, fall back to sysv # semaphores if sema_kind == 'unnamed_posix' and \