Re: BUG #18940: PostgreSQL 18beta1 fails 'collate.windows.win1252' regression when building with MSYS/mingw - Mailing list pgsql-bugs

From Joseph Ayers
Subject Re: BUG #18940: PostgreSQL 18beta1 fails 'collate.windows.win1252' regression when building with MSYS/mingw
Date
Msg-id CAD1ugPH7cc-z5UrNn_vfBtRuWB2F_WdOQC8jivvTtMPspa_SyQ@mail.gmail.com
Whole thread Raw
In response to Re: BUG #18940: PostgreSQL 18beta1 fails 'collate.windows.win1252' regression when building with MSYS/mingw  (Andres Freund <andres@anarazel.de>)
List pgsql-bugs


On Wed, Jun 4, 2025 at 9:32 AM Andres Freund <andres@anarazel.de> wrote:
Hi,

On 2025-06-04 09:28:15 -0700, Joseph Ayers wrote:
> On Wed, Jun 4, 2025 at 4:40 AM Thomas Munro <thomas.munro@gmail.com> wrote:
>
> > On Fri, May 30, 2025 at 7:42 AM PG Bug reporting form
> > <noreply@postgresql.org> wrote:
> > > The following bug has been logged on the website:
> > >
> > > Bug reference:      18940
> > > Logged by:          Joe Ayers
> > > Email address:      joseph.ayers@crunchydata.com
> > > PostgreSQL version: 18beta1
> > > Operating system:   Windows Server 2022
> > > Description:
> > >
> > > Hey there!
> > > In working on some test builds, PostgreSQL 18beta1 is failing the
> > > 'collate.windows.win1252' regression test due to missing locales. When
> > > building with MYS2/mingw (Tested Windows Server 2022 and Windows Server
> > > 2019), default locale that's pulled in is typically 'american_usa' as
> > > opposed to 'en_US', which causes the test to fail citing:
> > >     +ERROR:  could not create locale "en-US": No such file or directory
> > >     +DETAIL:  The operating system could not find any locale data for the
> > > locale name "en-US".
> > > The above error is repeated several times. Hoping to learn how to adjust
> > the
> > > config to get this to pass, as the error did not occur for PG17 and
> > below.
> > > Any info is appreciated.
> > > I can attach the full regression.diffs file for additional information
> > if it
> > > would be of help.
> >
> > Huh.  It passes on our CI:
> >
> > https://cirrus-ci.com/task/4738549062303744
> >
> > And on our build farm machine:
> >
> >
> > https://buildfarm.postgresql.org/cgi-bin/show_history.pl?nm=fairywren&br=master
> >
> > I wonder what is different.  Are you using ucrt?  We started removing
> > bits and pieces related to the old msvcrt C runtime, but my
> > understanding is that msys2 compile should target ucrt by default.
> >
>
> (Forgot to reply-all, apologies)
>
> We're using the mingw64 toolchain for this. I think per the MSYS
> environments guide here: https://www.msys2.org/docs/environments/
> that this would mean we're using msvcrt and not ucrt? That may be the
> issue. Would we maybe have to move to a different kind of MSYS environment?

I would *strongly* advise to moving to ucrt. Personally I think we should just
refuse to build with msvcrt.

Greetings,

Andres Freund

Thanks for the responses here! Working on switching to UCRT64 for PG18+ builds. Making the switch appears to get the Locale regression to pass.

Thanks again!
--
-------
Joe Ayers
Crunchy Data

pgsql-bugs by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: Logical replication 'invalid memory alloc request size 1585837200' after upgrading to 17.5
Next
From: Amit Kapila
Date:
Subject: Re: Logical replication 'invalid memory alloc request size 1585837200' after upgrading to 17.5