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: Thomas Munro <thomas.munro@gmail.com>
Cc: pgsql-bugs@lists.postgresql.org
Date: 2025-06-04T16:28:15Z
Lists: pgsql-bugs
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?

Thanks!


-- 
-------
Joe Ayers
Crunchy Data
www.crunchydata.com