From: | Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Cc: | Andres Freund <andres(at)anarazel(dot)de> |
Subject: | meson: Add _static and _shared suffixes to the library names |
Date: | 2025-08-12 15:45:44 |
Message-ID: | CAN55FZ1RuBhJmPWs3Oi=9UoezDfrtO-VaU67db5+0_uy19uF+A@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
Windows CI images are updated ~15 hours ago [1] and Windows CI task
started to fail with [2]:
```
FAILED: [code=2] src/interfaces/libpq/libpq.a.p/meson_pch-c.obj
src/interfaces/libpq/libpq.a.p/postgres_fe_pch.pch
"cl" "-Isrc/interfaces/libpq\libpq.a.p" "-Isrc/interfaces/libpq"
"-I..\src\interfaces\libpq" "-Isrc\port" "-I..\src\port"
"-Isrc\include" "-I..\src\include" "-Ic:\openssl\1.1\include"
"-I..\src\include\port\win32" "-I..\src\include\port\win32_msvc"
"-IC:/cirrus/src/include/pch" "/nologo" "/showIncludes" "/utf-8" "/W2"
"/Od" "/Zi" "/Zc:preprocessor" "/DWIN32" "/DWINDOWS" "/D__WINDOWS__"
"/D__WIN32__" "/D_CRT_SECURE_NO_DEPRECATE"
"/D_CRT_NONSTDC_NO_DEPRECATE" "/wd4018" "/wd4244" "/wd4273" "/wd4101"
"/wd4102" "/wd4090" "/wd4267" "/Ycpostgres_fe_pch.h"
"/Fpsrc/interfaces/libpq\libpq.a.p\postgres_fe_pch.pch"
"/Fosrc/interfaces/libpq\libpq.a.p\meson_pch-c.obj" "/MDd" "/nologo"
"/showIncludes" "/utf-8" "/W2" "/Od" "/Zi" "/Zc:preprocessor"
"/DWIN32" "/DWINDOWS" "/D__WINDOWS__" "/D__WIN32__"
"/D_CRT_SECURE_NO_DEPRECATE" "/D_CRT_NONSTDC_NO_DEPRECATE" "/wd4018"
"/wd4244" "/wd4273" "/wd4101" "/wd4102" "/wd4090" "/wd4267"
"-DSO_MAJOR_VERSION=5" "/FS"
"/FdC:\cirrus\build\src/interfaces/libpq\libpq.pdb" "/c"
src/interfaces/libpq/libpq.a.p/meson_pch-c.c
src/interfaces/libpq/libpq.a.p/meson_pch-c.c: fatal error C1052:
program database file,
'C:\cirrus\build\src\interfaces\libpq\libpq.pdb', was generated by the
linker with /DEBUG:fastlink; compiler cannot update such PDB files;
please delete it or use /Fd to specify a different PDB filename
```
After talking with Andres, we realized that the problem is caused by
static and shared libraries having the same name, so they overwrite
each other's debug file. This was not seen before, our guess is that
the ninja version is upgraded on the Windows CI image from 1.11.1 to
1.13.0 and new ninja optimized the build. Older ninja was building two
libraries concurrently and that hid the problem but the new ninja
optimized/changed the build, so these two libraries weren't built
concurrently and caused the failure.
The solution is changing the libraries' names [3]. Changing
conflicting libraries' names is actually enough but I wanted to add
_static and _shared suffixes to all of the libraries' names as I think
this is more future proof.
Any feedback would be appreciated.
Note: Since there is no new commit after the Windows CI image update
[1], this problem is not visible on the upstream Postgres for now. The
first commit will trigger this problem.
[1] https://cirrus-ci.com/task/5683237017616384
[2] https://cirrus-ci.com/task/5906793164963840
[3] https://cirrus-ci.com/task/5204554066690048
--
Regards,
Nazir Bilal Yavuz
Microsoft
Attachment | Content-Type | Size |
---|---|---|
v1-0001-meson-Add-_static-and-_shared-suffixes-to-the-lib.patch | text/x-patch | 13.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Jacob Champion | 2025-08-12 15:46:00 | Re: Update LDAP Protocol in fe-connect.c to v3 |
Previous Message | Jeff Davis | 2025-08-12 15:42:48 | Re: Adding locks statistics |