Re: Windows question: when is LC_MESSAGES defined?

Поиск
Список
Период
Сортировка
От Dave Page
Тема Re: Windows question: when is LC_MESSAGES defined?
Дата
Msg-id CA+OCxoz6uHZwEbgrzSSYvcdTdEea6Kk4jdW1j9nwcZj_Pp34gA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Windows question: when is LC_MESSAGES defined?  (Nazir Bilal Yavuz <byavuz81@gmail.com>)
Ответы Re: Windows question: when is LC_MESSAGES defined?
Список pgsql-hackers
Hi

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

On Thu, 10 Jul 2025 at 07:34, Thomas Munro <thomas.munro@gmail.com> wrote:
>
> On Thu, Jul 10, 2025 at 3:45 PM Thomas Munro <thomas.munro@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.
 
--

В списке pgsql-hackers по дате отправления: