Hi

On Thu, 17 Jul 2025 at 09:01, Nazir Bilal Yavuz <byavu...@gmail.com> wrote:

> Hi,
>
> On Thu, 10 Jul 2025 at 07:34, Thomas Munro <thomas.mu...@gmail.com> wrote:
> >
> > On Thu, Jul 10, 2025 at 3:45 PM Thomas Munro <thomas.mu...@gmail.com>
> wrote:
> > > [03:28:24.318] Program msgfmt found: NO
> >
> > Correction, that ^ is the reason it's not reached on the MSVC task,
> > while -Dnls=disabled is the reason for the MinGW task.  But the
> > conclusion is the same: MinGW is the easiest way to test this code
> > on CI, if you're hacking on it.
> >
> > Given that the build farm also doesn't test Windows + NLS, it's a
> > small miracle that it even compiles.  Hmm, I guess that the EDB
> > installer build must have it enabled, so I suppose they'd tell us if
> > we broke it.  I guess that because sometimes we see reports of
> > encoded-garbled error messages in other languages on the lists, which
> > also tells us that it might have bugs in that department.  What I
> > don't recall is whether they looked like the
> > "some-contexts-have-no-defined-encoding" problem (that exists on Unix
> > too but no one cares anymore since we all switched everything to UTF-8
> > ages ago), or something else...
>
> I spent some time on enabling NLS on MSVC:
>
> x86:
>
> * x86 files are available here [1]. I downloaded 'Complete package,
> except sources' from this page, installed it and set related bin_dir,
> extra_include_dirst and extra_lib_dirs. Then I was able to compile
> Postgres with nls being enabled. I did not run tests as it was taking
> too much time on the Windows VM instance (not CI instance, regular
> Google Cloud VM created by using our Windows CI images).
>
> x64:
>
> * I downloaded Dave Page's Windows gettext artifact from [2]. I am
> able to configure Postgres with nls being enabled but then compilation
> failed with:
> ```
> [349/2500] Building translation
> src/interfaces/libpq/po/cs/LC_MESSAGES/libpq5-19-cs.mo
> FAILED: src/interfaces/libpq/po/cs/LC_MESSAGES/libpq5-19.mo
> "C:\Users\byavuz81\Downloads\gettext-0.25-win64\bin\msgfmt.EXE" "-o"
> "src/interfaces/libpq/po/cs/LC_MESSAGES/libpq5-19.mo"
> "../src/interfaces/libpq/po/cs.po"
> C:\Users\byavuz81\Downloads\gettext-0.25-win64\bin\msgfmt.EXE: iconv
> failure: No error
> [354/2500] Compiling C object
> src/interfaces/libpq/libpq.dll.p/fe-auth-oauth.c.obj
>

That build of gettext seems to work fine with the PostgreSQL builds in the
winpgbuild repo, so there must be something different in your environment.
I do remember spending some time trying to resolve the "iconv failure: No
error" message myself though, but unfortunately I was just messing around
in the GitHub editor trying to get it to work for giggles at the time with
a bunch of trial and error builds with no useful commit messages so
couldn't tell you what the issue was now :-/

I do also recall that gettext was the component that took me by far the
longest to get working on that project.

-- 
Dave Page
pgAdmin: https://www.pgadmin.org
PostgreSQL: https://www.postgresql.org
pgEdge: https://www.pgedge.com

Reply via email to