Thread: Meson doesn't define HAVE_LOCALE_T for mscv
Hello all,
Meson doesn't see the redefinition of locale_t done in src/include/port/win32_port.h, so is not defining HAVE_LOCALE_T, HAVE_WCSTOMBS_L nor HAVE_MBSTOWCS_L as the current src/tools/msvc/build.pl script does.
Please find attached a patch for so.
Regards,
Juan José Santamaría Flecha
Attachment
On 10.11.22 10:59, Juan José Santamaría Flecha wrote: > Meson doesn't see the redefinition of locale_t done > in src/include/port/win32_port.h, so is not defining > HAVE_LOCALE_T, HAVE_WCSTOMBS_L nor HAVE_MBSTOWCS_L as the > current src/tools/msvc/build.pl <http://build.pl> script does. > > Please find attached a patch for so. committed
Hi, On 2022-11-10 10:59:41 +0100, Juan José Santamaría Flecha wrote: > Meson doesn't see the redefinition of locale_t done > in src/include/port/win32_port.h, so is not defining > HAVE_LOCALE_T, HAVE_WCSTOMBS_L nor HAVE_MBSTOWCS_L as the > current src/tools/msvc/build.pl script does. > > Please find attached a patch for so. Hm. Is it right that the changes are only done for msvc? win32_port.h defines the types for mingw as well afaict. Greetings, Andres Freund
On Tue, Nov 15, 2022 at 1:49 AM Andres Freund <andres@anarazel.de> wrote:
Hm. Is it right that the changes are only done for msvc? win32_port.h defines
the types for mingw as well afaict.
Yes, it does, but configure does nothing with them, so adding those defines is a new feature for MinGW but a correction for MSVC.
PFA a patch for MinGW.
I've seen that when building with meson on MinGW the output for version() is 'PostgreSQL 16devel on x86_64, compiled by gcc-12.2.0', which is not wrong but I cannot tell that it was done on MinGW. Should we include the 'host_system' in PG_VERSION_STR?
Regards,
Juan José Santamaría Flecha
Attachment
Hi, On 2022-11-15 15:35:31 +0100, Juan José Santamaría Flecha wrote: > I've seen that when building with meson on MinGW the output for version() > is 'PostgreSQL 16devel on x86_64, compiled by gcc-12.2.0', which is not > wrong but I cannot tell that it was done on MinGW. Should we include the > 'host_system' in PG_VERSION_STR? I don't think we should print mingw - that's really just redundant with gcc. But including host_system seems like a good idea. Not sure why I didn't do that. Greetings, Andres Freund
Hi, Hm, the quoting was odd, making me think you had written a separate email about the define issue. Hence the separate email... On 2022-11-15 15:35:31 +0100, Juan José Santamaría Flecha wrote: > On Tue, Nov 15, 2022 at 1:49 AM Andres Freund <andres@anarazel.de> wrote: > > Hm. Is it right that the changes are only done for msvc? win32_port.h > > defines the types for mingw as well afaict. > Yes, it does, but configure does nothing with them, so adding those > defines is a new feature for MinGW but a correction for MSVC. Any chance you checked if autoconf already detects locale_t with mingw? Possible that mingw supplies one of the relevant headers... Otherwise it looks like a sensible improvement to me. Greetings, Andres Freund
On Tue, Nov 15, 2022 at 8:53 PM Andres Freund <andres@anarazel.de> wrote:
I don't think we should print mingw - that's really just redundant with
gcc. But including host_system seems like a good idea. Not sure why I didn't
do that.
I'll open a new thread for this. Also, I think this is skipping collate.linux.utf.sql and infinite_recurse.sql tests in their intended platforms.
Regards,
Juan José Santamaría Flecha
On Tue, Nov 15, 2022 at 9:02 PM Andres Freund <andres@anarazel.de> wrote:
On 2022-11-15 15:35:31 +0100, Juan José Santamaría Flecha wrote:
> On Tue, Nov 15, 2022 at 1:49 AM Andres Freund <andres@anarazel.de> wrote:
> > Hm. Is it right that the changes are only done for msvc? win32_port.h
> > defines the types for mingw as well afaict.
> Yes, it does, but configure does nothing with them, so adding those
> defines is a new feature for MinGW but a correction for MSVC.
Any chance you checked if autoconf already detects locale_t with mingw?
Possible that mingw supplies one of the relevant headers...
Otherwise it looks like a sensible improvement to me.
I've checked the autoconf version of pg_config.h and it's not detected. Also, manually inspecting <locale.h> I see no definition of locale_t in MinGW.
Regards,
Juan José Santamaría Flecha