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

Joseph Ayers <joseph.ayers@crunchydata.com>

From: Joseph Ayers <joseph.ayers@crunchydata.com>
To: Andres Freund <andres@anarazel.de>
Cc: Thomas Munro <thomas.munro@gmail.com>, pgsql-bugs@lists.postgresql.org
Date: 2025-06-05T23:08:20Z
Lists: 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
www.crunchydata.com