meson: Add _static and _shared suffixes to the library names
От | Nazir Bilal Yavuz |
---|---|
Тема | meson: Add _static and _shared suffixes to the library names |
Дата | |
Msg-id | CAN55FZ1RuBhJmPWs3Oi=9UoezDfrtO-VaU67db5+0_uy19uF+A@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: meson: Add _static and _shared suffixes to the library names
|
Список | 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
Вложения
В списке pgsql-hackers по дате отправления: