meson: Add _static and _shared suffixes to the library names
Nazir Bilal Yavuz <byavuz81@gmail.com>
From: Nazir Bilal Yavuz <byavuz81@gmail.com>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Andres Freund <andres@anarazel.de>
Date: 2025-08-12T15:45:44Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
ci: windows: Stop using DEBUG:FASTLINK
- c42f2bdcdf7f 16.11 landed
- 3e6059cc70c0 17.7 landed
- 2de22b1ead3c 18.0 landed
- 66f8765c5331 19 (unreleased) landed
Attachments
- v1-0001-meson-Add-_static-and-_shared-suffixes-to-the-lib.patch (text/x-patch) patch v1-0001
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