mesonbuild / meson

The Meson Build System
http://mesonbuild.com
Apache License 2.0
5.49k stars 1.59k forks source link

CI failure in rust / Windows #13236

Open eli-schwartz opened 3 months ago

eli-schwartz commented 3 months ago
================================= rust: 21 transitive dependencies =================================

[...]

Rust compiler for the build machine: rustc -C linker=link (rustc 1.78.0)

[...]

[17/23] "link"  /MACHINE:x64 /OUT:diamond/main.dll diamond/main.dll.p/main.c.obj "/release" "/nologo" "/DEBUG" "/PDB:diamond\main.pdb" "/DLL" "/IMPLIB:diamond\main.lib" "/WHOLEARCHIVE:diamond/libr3.a" "diamond/libr3.a" "diamond/libr1.rlib" "diamond/libc1.a" "diamond/libr2.rlib" "kernel32.lib" "advapi32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "msvcrt.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib"
FAILED: diamond/main.dll diamond/main.pdb 
"link"  /MACHINE:x64 /OUT:diamond/main.dll diamond/main.dll.p/main.c.obj "/release" "/nologo" "/DEBUG" "/PDB:diamond\main.pdb" "/DLL" "/IMPLIB:diamond\main.lib" "/WHOLEARCHIVE:diamond/libr3.a" "diamond/libr3.a" "diamond/libr1.rlib" "diamond/libc1.a" "diamond/libr2.rlib" "kernel32.lib" "advapi32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "msvcrt.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib"
libr3.a(api-ms-win-core-synch-l1-2-0.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR already defined in libr3.a(bcryptprimitives.dll)
LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
diamond\main.dll : fatal error LNK1169: one or more multiply defined symbols found

Possibly caused by a rust update?

Recent job manifesting the issue: https://dev.azure.com/jussi0947/jussi/_build/results?buildId=21182&view=logs&j=5015ea34-1c35-577b-b206-c8bea8465a58&t=00c5cf7c-b41c-5970-0bf5-8751e484378e&l=1920

fanc999-1 commented 1 month ago

Hi,

Some notes here if it did matter, for references:

librsvg recently transitioned from autotools/NMake Makefiles to Meson between 2.58.x and 2.58.9x/2.59.x, and with the latest stable Rust release (1.79.0), the latest stable librsvg (2.58.2) builds successfully with NMake using the latest Visual Studio 2019, but with the latest GIT checkout of librsvg, which is built with Meson, I got:

[6/12] Linking target rsvg/rsvg-2-2.dll
FAILED: rsvg/rsvg-2-2.dll rsvg/rsvg-2-2.pdb
"link"  /MACHINE:x64 /OUT:rsvg/rsvg-2-2.dll rsvg/rsvg-2-2.dll.p/meson-generated_..__rsvg_dummy.c.obj "/release" "/nologo" "/DEBUG" "/PDB:rsvg\rsvg-2-2.pdb" "/DLL" "/DEF:rsvg\librsvg-2.0.def" "/IMPLIB:rsvg\rsvg-2.lib" "/WHOLEARCHIVE:rsvg/rsvg_2.lib" "rsvg/rsvg_2.lib" "c:/vs14.0/x64/lib/cairo.lib" "libpng16.lib" "c:/vs14.0/x64/lib/zlib1.lib" "c:/vs14.0/x64/lib/freetype.lib" "c:/vs14.0/x64/lib/pixman-1.lib" "/LIBPATH:c:/vs14.0/x64/lib" "gdi32.lib" "msimg32.lib" "dwrite.lib" "d2d1.lib" "windowscodecs.lib" "c:/vs14.0/x64/lib/cairo-gobject.lib" "c:/vs14.0/x64/lib/gobject-2.0.lib" "c:/vs14.0/x64/lib/intl.lib" "c:/vs14.0/x64/lib/ffi.lib" "c:/vs14.0/x64/lib/glib-2.0.lib" "c:/vs14.0/x64/lib/pcre2-8.lib" "/LIBPATH:c:/vs14.0/x64/lib" "gdi32.lib" "msimg32.lib" "dwrite.lib" "d2d1.lib" "windowscodecs.lib" "ws2_32.lib" "winmm.lib" "/LIBPATH:c:/vs14.0/x64/lib" "gdi32.lib" "msimg32.lib" "dwrite.lib" "d2d1.lib" "windowscodecs.lib" "c:/vs14.0/x64/lib/dav1d.lib" "c:/vs14.0/x64/lib/gdk_pixbuf-2.0.lib" "c:/vs14.0/x64/lib/jpeg.lib" "c:/vs14.0/x64/lib/tiff.lib" "c:/vs14.0/x64/lib/gio-2.0.lib" "c:/vs14.0/x64/lib/gmodule-2.0.lib" "/LIBPATH:c:/vs14.0/x64/lib" "shlwapi.lib" "dnsapi.lib" "iphlpapi.lib" "ws2_32.lib" "winmm.lib" "/LIBPATH:c:/vs14.0/x64/lib" "shlwapi.lib" "dnsapi.lib" "iphlpapi.lib" "ws2_32.lib" "winmm.lib" "/LIBPATH:c:/vs14.0/x64/lib" "ws2_32.lib" "winmm.lib" "c:/vs14.0/x64/lib/harfbuzz.lib" "/LIBPATH:c:/vs14.0/x64/lib" "usp10.lib" "gdi32.lib" "rpcrt4.lib" "ws2_32.lib" "winmm.lib" "c:/vs14.0/x64/lib/pangocairo-1.0.lib" "c:/vs14.0/x64/lib/pangowin32-1.0.lib" "c:/vs14.0/x64/lib/harfbuzz-gobject.lib" "c:/vs14.0/x64/lib/pango-1.0.lib" "c:/vs14.0/x64/lib/fribidi.lib" "/LIBPATH:c:/vs14.0/x64/lib" "gdi32.lib" "dwrite.lib" "shlwapi.lib" "dnsapi.lib" "iphlpapi.lib" "ws2_32.lib" "usp10.lib" "rpcrt4.lib" "winmm.lib" "msimg32.lib" "d2d1.lib" "windowscodecs.lib" "/LIBPATH:c:/vs14.0/x64/lib" "ws2_32.lib" "winmm.lib" "C:/vs14.0/x64/lib/libxml2.lib" "C:/vs14.0/x64/lib/freetype.lib" "userenv.lib" "ntdll.lib" "ws2_32.lib" "advapi32.lib" "/defaultlib:msvcrt.lib" "kernel32.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
rsvg_2.lib(api-ms-win-core-synch-l1-2-0.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR already defined in rsvg_2.lib(bcryptprimitives.dll)
   Creating library rsvg\rsvg-2.lib and object rsvg\rsvg-2.exp
rsvg\rsvg-2-2.dll : fatal error LNK1169: one or more multiply defined symbols found
ninja: build stopped: subcommand failed.

Please let me know if further info is needed.

With blessings, and cheers!

kleisauke commented 3 weeks ago

Upstream Rust issue: https://github.com/rust-lang/rust/issues/129020.