taglib: x86 build failure - build-tools\lib\z.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
Seeing msvc x86 build failures on taglib on the nightly pipeline:
Example: https://gitlab.freedesktop.org/gstreamer/cerbero/-/jobs/54925814
LINK: command "C:\BuildTools\VC\Tools\MSVC\14.36.32532\bin\Hostx86\x86\link.exe /nologo taglib\CMakeFiles\tag.dir\mpeg\mpegfile.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\mpegproperties.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\mpegheader.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\xingheader.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v1\id3v1tag.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v1\id3v1genres.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2framefactory.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2synchdata.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2tag.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2header.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2frame.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2footer.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\id3v2extendedheader.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\attachedpictureframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\commentsframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\eventtimingcodesframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\generalencapsulatedobjectframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\ownershipframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\popularimeterframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\privateframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\relativevolumeframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\synchronizedlyricsframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\textidentificationframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\uniquefileidentifierframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\unknownframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\unsynchronizedlyricsframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\urllinkframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\chapterframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\tableofcontentsframe.cpp.obj taglib\CMakeFiles\tag.dir\mpeg\id3v2\frames\podcastframe.cpp.obj taglib\CMakeFiles\tag.dir\ogg\oggfile.cpp.obj taglib\CMakeFiles\tag.dir\ogg\oggpage.cpp.obj taglib\CMakeFiles\tag.dir\ogg\oggpageheader.cpp.obj taglib\CMakeFiles\tag.dir\ogg\xiphcomment.cpp.obj taglib\CMakeFiles\tag.dir\ogg\vorbis\vorbisfile.cpp.obj taglib\CMakeFiles\tag.dir\ogg\vorbis\vorbisproperties.cpp.obj taglib\CMakeFiles\tag.dir\ogg\flac\oggflacfile.cpp.obj taglib\CMakeFiles\tag.dir\mpc\mpcfile.cpp.obj taglib\CMakeFiles\tag.dir\mpc\mpcproperties.cpp.obj taglib\CMakeFiles\tag.dir\ape\apetag.cpp.obj taglib\CMakeFiles\tag.dir\ape\apefooter.cpp.obj taglib\CMakeFiles\tag.dir\ape\apeitem.cpp.obj taglib\CMakeFiles\tag.dir\ape\apefile.cpp.obj taglib\CMakeFiles\tag.dir\ape\apeproperties.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tstring.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tstringlist.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tbytevector.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tbytevectorlist.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tbytevectorstream.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tiostream.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tfile.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tfilestream.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tdebug.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tpropertymap.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\trefcounter.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tdebuglistener.cpp.obj taglib\CMakeFiles\tag.dir\toolkit\tzlib.cpp.obj taglib\CMakeFiles\tag.dir\flac\flacfile.cpp.obj taglib\CMakeFiles\tag.dir\flac\flacpicture.cpp.obj taglib\CMakeFiles\tag.dir\flac\flacproperties.cpp.obj taglib\CMakeFiles\tag.dir\flac\flacmetadatablock.cpp.obj taglib\CMakeFiles\tag.dir\flac\flacunknownmetadatablock.cpp.obj taglib\CMakeFiles\tag.dir\wavpack\wavpackfile.cpp.obj taglib\CMakeFiles\tag.dir\wavpack\wavpackproperties.cpp.obj taglib\CMakeFiles\tag.dir\ogg\speex\speexfile.cpp.obj taglib\CMakeFiles\tag.dir\ogg\speex\speexproperties.cpp.obj taglib\CMakeFiles\tag.dir\trueaudio\trueaudiofile.cpp.obj taglib\CMakeFiles\tag.dir\trueaudio\trueaudioproperties.cpp.obj taglib\CMakeFiles\tag.dir\riff\rifffile.cpp.obj taglib\CMakeFiles\tag.dir\riff\aiff\aifffile.cpp.obj taglib\CMakeFiles\tag.dir\riff\aiff\aiffproperties.cpp.obj taglib\CMakeFiles\tag.dir\riff\wav\wavfile.cpp.obj taglib\CMakeFiles\tag.dir\riff\wav\wavproperties.cpp.obj taglib\CMakeFiles\tag.dir\riff\wav\infotag.cpp.obj taglib\CMakeFiles\tag.dir\asf\asftag.cpp.obj taglib\CMakeFiles\tag.dir\asf\asffile.cpp.obj taglib\CMakeFiles\tag.dir\asf\asfproperties.cpp.obj taglib\CMakeFiles\tag.dir\asf\asfattribute.cpp.obj taglib\CMakeFiles\tag.dir\asf\asfpicture.cpp.obj taglib\CMakeFiles\tag.dir\mp4\mp4file.cpp.obj taglib\CMakeFiles\tag.dir\mp4\mp4atom.cpp.obj taglib\CMakeFiles\tag.dir\mp4\mp4tag.cpp.obj taglib\CMakeFiles\tag.dir\mp4\mp4item.cpp.obj taglib\CMakeFiles\tag.dir\mp4\mp4properties.cpp.obj taglib\CMakeFiles\tag.dir\mp4\mp4coverart.cpp.obj taglib\CMakeFiles\tag.dir\mod\modfilebase.cpp.obj taglib\CMakeFiles\tag.dir\mod\modfile.cpp.obj taglib\CMakeFiles\tag.dir\mod\modtag.cpp.obj taglib\CMakeFiles\tag.dir\mod\modproperties.cpp.obj taglib\CMakeFiles\tag.dir\s3m\s3mfile.cpp.obj taglib\CMakeFiles\tag.dir\s3m\s3mproperties.cpp.obj taglib\CMakeFiles\tag.dir\it\itfile.cpp.obj taglib\CMakeFiles\tag.dir\it\itproperties.cpp.obj taglib\CMakeFiles\tag.dir\xm\xmfile.cpp.obj taglib\CMakeFiles\tag.dir\xm\xmproperties.cpp.obj taglib\CMakeFiles\tag.dir\ogg\opus\opusfile.cpp.obj taglib\CMakeFiles\tag.dir\ogg\opus\opusproperties.cpp.obj taglib\CMakeFiles\tag.dir\tag.cpp.obj taglib\CMakeFiles\tag.dir\tagunion.cpp.obj taglib\CMakeFiles\tag.dir\fileref.cpp.obj taglib\CMakeFiles\tag.dir\audioproperties.cpp.obj taglib\CMakeFiles\tag.dir\tagutils.cpp.obj /out:taglib\tag.dll /implib:taglib\tag.lib /pdb:taglib\tag.pdb /dll /version:1.19 /machine:X86 -LC:/Users/Administrator/runner/builds/gstreamer/cerbero/cerbero-build/dist/msvc_x86/lib /INCREMENTAL:NO C:\Users\Administrator\runner\builds\gstreamer\cerbero\cerbero-build\build-tools\lib\z.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:taglib\tag.dll.manifest" failed (exit code 1120) with the following output:
LINK : warning LNK4044: unrecognized option '/LC:/Users/Administrator/runner/builds/gstreamer/cerbero/cerbero-build/dist/msvc_x86/lib'; ignored
Creating library taglib\tag.lib and object taglib\tag.exp
tzlib.cpp.obj : error LNK2019: unresolved external symbol _inflate referenced in function "class TagLib::ByteVector __cdecl TagLib::zlib::decompress(class TagLib::ByteVector const &)" (?decompress@zlib@TagLib@@YA?AVByteVector@2@ABV32@@Z)
tzlib.cpp.obj : error LNK2019: unresolved external symbol _inflateEnd referenced in function "class TagLib::ByteVector __cdecl TagLib::zlib::decompress(class TagLib::ByteVector const &)" (?decompress@zlib@TagLib@@YA?AVByteVector@2@ABV32@@Z)
tzlib.cpp.obj : error LNK2019: unresolved external symbol _inflateInit_ referenced in function "class TagLib::ByteVector __cdecl TagLib::zlib::decompress(class TagLib::ByteVector const &)" (?decompress@zlib@TagLib@@YA?AVByteVector@2@ABV32@@Z)
C:\Users\Administrator\runner\builds\gstreamer\cerbero\cerbero-build\build-tools\lib\z.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'x86'
taglib\tag.dll : fatal error LNK1120: 3 unresolved externals
Usually goes away on re-try in the morning, but fails pretty much every night.
Also happened before the taglib version update, but only started failing recently (last 1-2 weeks or so perhaps)
Edited by Tim-Philipp Müller