m-ab-s / media-autobuild_suite

This Windows Batchscript helps setup a Mingw-w64 compiler environment for building ffmpeg and other media tools under Windows.
GNU General Public License v3.0
1.5k stars 257 forks source link

vulkan-loader is messing up the build, help would be appreciated, thanks :) #2528

Closed barzai741 closed 6 months ago

barzai741 commented 9 months ago

logs.zip

I tried disabling it with the hash key in build/ffmpeg_options and deleted the folder build/vulkan-loader-git but neither work. Tried with and without mpv enabled.

I am a complete layman at computing, would appreciate some help.

Thanks.

The immediate error message is as follows:

CMake Error: CMake can not determine linker language for target: loader-unknown-chain CMake Error: install(EXPORT "VulkanLoaderConfig" ...) includes target "vulkan" which requires target "loader-unknown-chain" that is not in any export set. CMake Error: install(EXPORT "VulkanLoaderConfig" ...) includes target "vulkan" which requires target "loader_specific_options" that is not in any export set. -- Generating done (0.1s) CMake Generate step failed. Build files cannot be regenerated correctly. cmake failed. Check C:/ffmpeg/build/vulkan-loader-git/build-64bit/ab-suite.cmake.log This is required for other packages, so this script will exit.

demensdeum commented 9 months ago

Same problem with vulkan on Windows 11

1480c1 commented 9 months ago

Please try again with the latest suite, I think I have the patches finalized for now

b-rad15 commented 9 months ago

this fix didn't work for me, I still get this error when I build despite already deleting that folder:

20:41:20 ┌ vulkan-loader git  ........................ [Recently updated]
20:41:22 ├ Running uninstall...
0001-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch
        Patch could not be applied with `git am`. Continuing without patching.
0004-loader-Add-private-libs-to-pc-file.patch
        Patch could not be applied with `git am`. Continuing without patching.
0005-loader-Static-library-name-related-hacks.patch
        Patch could not be applied with `git am`. Continuing without patching.
20:41:25 ├ Running dependencies...
20:41:36 ├ Installing Vulkan-Headers...
20:41:36 ├ Running uninstall...
20:41:36 ├ Running cmake...
20:41:38 ├ Running build...
20:41:38 ├ Running install...
20:41:40 ├ Building Vulkan-Loader...
20:41:40 ├ Running cmake...
20:41:45 ├ Running build...
20:41:54 ├ Running install...
20:41:54 ├ /local64/lib/libvulkan.a  ........................ [Not found]
20:41:54 └ vulkan-loader-git  .................................. [Failed]

Try deleting '/build/vulkan-loader-git' and start the script again.
If you are sure there are no dependencies, <Enter> to continue building.

Close this window if you wish to stop building.
1480c1 commented 9 months ago

Does your media-suite_compile.sh contain the changes from https://github.com/m-ab-s/media-autobuild_suite/commit/45bf068c7fca5abee77a4968f2244b9271db450c?

drakuleah commented 9 months ago

Same here, word by word, and I have the latest build with the above mentioned changes logs.zip

b-rad15 commented 9 months ago

Does your media-suite_compile.sh contain the changes from 45bf068?

Yes, however the issue was fixed after deleting and reinstalling the build's msys

hunterhogan commented 9 months ago

FYI, I had the same error, and the most recent commits fixed everything. Thank you for the updates. A special thank you for your very clever code Try deleting '$packageDir' and start the script again.. And a general thank you for how awesome MABS is.

hydra3333 commented 9 months ago

Hi, it didn't fix it for me. Would you be able to post your ffmpeg_options.txt and media-autobuild_suite.ini so I can try to diagnose ? Thanks !

hunterhogan commented 9 months ago

I have --enable-vulkan but it works because of the changed patches.

For unrelated reasons, I disabled all of the nvidia stuff because I don't have nvidia, but I don't have any reason to think that helped here.

hydra3333 commented 9 months ago

OK, thank you. Mine still fails unless I use --disable-libplacebo. Here's my options. media-autobuild_suite.ini.txt ffmpeg_options.txt

hunterhogan commented 9 months ago

--disable-libplacebo

I'm not a developer, but if you are having trouble with vulkan loader, wouldn't you expect enabling libplacebo to give you the same error?

In media-suite_compile.sh:

if { { [[ $ffmpeg != no ]] && enabled_any vulkan libplacebo; } ||

Because:

[libplacebo] is provided as a Vulkan-based video filter in the FFmpeg project.

After I deleted ./build/vulkan-loader-git and updated mabs, everything was ok.

hydra3333 commented 9 months ago

Thanks. Neither am I :)

I'll try it afresh, again. I'll use the options file above, with just one change: placebo enabled.

Last time I did that and left placebo and vulkan enabled, building died with the ffmpeg link-time errors show in https://github.com/m-ab-s/media-autobuild_suite/issues/2524#issuecomment-1752156851 (It was afresh in a clean window sandbox). Disabling libplacebo removed the ffmpeg link-time errors.

Just to be 100% clear, your success is with both vulkan and libplacebo explicitly enabled in the options file ?

hydra3333 commented 9 months ago

Hi, no it isn't quite fixed after all.

I spun up a new empty Win11 sandbox, downloaded MABS afresh, used the aforementioned ffmpeg_options.txt etc with both vulkan and libplacebo, and received link errors (log extract below).

Cheers.

ccache g++ -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -static-libgcc -static-libstdc++ -IC:/MABS/local64/include -LC:/MABS/local64/lib -lfdk-aac -L/local64/lib -L/mingw64/lib -Wl,--nxcompat,--dynamicbase -Wl,--high-entropy-va -Wl,--as-needed -Wl,--pic-executable,-e,mainCRTStartup -Wl,--image-base,0x140000000 -IC:/MABS/local64/include/opus -LC:/MABS/local64/lib -o /tmp/ffconf.Z4HwuVjm/test.exe /tmp/ffconf.Z4HwuVjm/test.o -lopus -lm -liconv -lpsapi -lstdc++ -lstdc++
require_pkg_config libplacebo libplacebo >= 4.192.0 libplacebo/vulkan.h pl_vulkan_create
check_pkg_config libplacebo libplacebo >= 4.192.0 libplacebo/vulkan.h pl_vulkan_create
test_pkg_config libplacebo libplacebo >= 4.192.0 libplacebo/vulkan.h pl_vulkan_create
pkgconf --exists --print-errors libplacebo >= 4.192.0
check_func_headers libplacebo/vulkan.h pl_vulkan_create -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib -lplacebo -lm -lshlwapi -lglslang-default-resource-limits C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -lversion -lspirv-cross -lvulkan -lcfgmgr32 -LC:/MABS/msys64/mingw64/lib -llcms2 -llcms2_fast_float -lm -pthread -ldovi -lkernel32 -ladvapi32 -lbcrypt -lkernel32 -lntdll -luserenv -lws2_32 -lkernel32 -lws2_32 -lkernel32
test_ld cc -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib -lplacebo -lm -lshlwapi -lglslang-default-resource-limits C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -lversion -lspirv-cross -lvulkan -lcfgmgr32 -LC:/MABS/msys64/mingw64/lib -llcms2 -llcms2_fast_float -lm -pthread -ldovi -lkernel32 -ladvapi32 -lbcrypt -lkernel32 -lntdll -luserenv -lws2_32 -lkernel32 -lws2_32 -lkernel32
test_cc -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -LC:/MABS/msys64/mingw64/lib -pthread
BEGIN /tmp/ffconf.Z4HwuVjm/test.c
    1   #include <libplacebo/vulkan.h>
    2   #include <stdint.h>
    3   long check_pl_vulkan_create(void) { return (long) pl_vulkan_create; }
    4   int main(void) { int ret = 0;
    5    ret |= ((intptr_t)check_pl_vulkan_create) & 0xFFFF;
    6   return ret; }
END /tmp/ffconf.Z4HwuVjm/test.c
ccache gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DWIN32_LEAN_AND_MEAN -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__ -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -mthreads -IC:/MABS/local64/include -Wno-int-conversion -DLIBTWOLAME_STATIC -DCACA_STATIC -DMODPLUG_STATIC -DCHROMAPRINT_NODLL -DZMQ_STATIC -DLIBXML_STATIC -DAL_LIBTYPE_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include/AL -std=c11 -fomit-frame-pointer -IC:/MABS/local64/include -pthread -IC:/MABS/msys64/mingw64/include -I/mingw64/include -IC:/MABS/local64/include -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/local64/include/libpng16 -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include/harfbuzz -IC:/MABS/local64/include/fribidi -DFRIBIDI_LIB_STATIC -IC:/MABS/local64/include/freetype2 -IC:/MABS/local64/include -IC:/MABS/local64/include/libxml2 -DLIBXML_STATIC -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include/bs2b -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/local64/include/freetype2 -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include/freetype2 -IC:/MABS/local64/include/fribidi -DFRIBIDI_LIB_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/msys64/mingw64/include -DHWY_STATIC_DEFINE -DJXL_STATIC_DEFINE -IC:/MABS/local64/include -DJXL_THREADS_STATIC_DEFINE -IC:/MABS/local64/include -IC:/MABS/local64/include/mfx -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/msys64/mingw64/include/openjpeg-2.5 -DOPJ_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include/opus -IC:/MABS/local64/include/opus -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -LC:/MABS/msys64/mingw64/lib -pthread -c -o /tmp/ffconf.Z4HwuVjm/test.o /tmp/ffconf.Z4HwuVjm/test.c
C:/MABS/msys64/tmp/ffconf.Z4HwuVjm/test.c: In function 'check_pl_vulkan_create':
C:/MABS/msys64/tmp/ffconf.Z4HwuVjm/test.c:3:44: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    3 | long check_pl_vulkan_create(void) { return (long) pl_vulkan_create; }
      |                                            ^
gcc.exe: warning: C:/MABS/local64/lib/../lib/libSPIRV.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libMachineIndependent.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libOSDependent.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libOGLCompiler.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libGenericCodeGen.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libSPIRV-Tools.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a: linker input file unused because linking not done
ccache g++ -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -static-libgcc -static-libstdc++ -IC:/MABS/local64/include -LC:/MABS/local64/lib -lfdk-aac -L/local64/lib -L/mingw64/lib -Wl,--nxcompat,--dynamicbase -Wl,--high-entropy-va -Wl,--as-needed -Wl,--pic-executable,-e,mainCRTStartup -Wl,--image-base,0x140000000 -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -LC:/MABS/msys64/mingw64/lib -pthread -o /tmp/ffconf.Z4HwuVjm/test.exe /tmp/ffconf.Z4HwuVjm/test.o -lplacebo -lm -lshlwapi -lglslang-default-resource-limits -lversion -lspirv-cross -lvulkan -lcfgmgr32 -llcms2 -llcms2_fast_float -lm -ldovi -lkernel32 -ladvapi32 -lbcrypt -lkernel32 -lntdll -luserenv -lws2_32 -lkernel32 -lws2_32 -lkernel32 -liconv -lpsapi -lstdc++ -lstdc++
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x41): undefined reference to `glslang::InitializeProcess()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x81): undefined reference to `glslang::FinalizeProcess()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x119): undefined reference to `glslang::TShader::TShader(EShLanguage)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x158): undefined reference to `glslang::TShader::setStrings(char const* const*, int)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x1df): undefined reference to `glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x1fc): undefined reference to `glslang::TProgram::TProgram()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x231): undefined reference to `glslang::TProgram::link(EShMessages)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x274): undefined reference to `glslang::GlslangToSpv(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator<unsigned int> >&, glslang::SpvOptions*)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x2f4): undefined reference to `glslang::TProgram::getInfoLog()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x324): undefined reference to `glslang::TShader::getInfoLog()'
collect2.exe: error: ld returned 1 exit status
ERROR: libplacebo >= 4.192.0 not found using pkg-config

mpv_options.txt ffmpeg_options.txt media-autobuild_suite.ini.txt

edit: using --enable-libplacebo rather than disable

nikolasr commented 9 months ago

Strange, yesterday I finally managed to build ffmpeg without problems. However I used pkgconfig 1.8 beause of #2494. What I did was:

P.S.: I also installed python-jinja via pacman (see downgrade pkgconfig) for mingw64, as it is a base build requirement for vulkan P.P.S.: Of course I compiled 64-bit. So for 32-bit you need to replace the according steps.

hydra3333 commented 9 months ago

Hello. I do not know how you managed to get it built ... those changes did not work for me (64bit static only).

Created a fresh Windows sandbox, put these into line 4:

pacman -U --noconfirm "https://repo.msys2.org/mingw/mingw64/mingw-w64-x86_64-pkgconf-1~1.8.0-2-any.pkg.tar.zst"
sed -ri '/#IgnorePkg/a IgnorePkg = mingw-w64-x86_64-pkgconf\n' "/etc/pacman.conf"

Installed python-jinja2 via pacman.

And received the error below in the log at the ffmpeg configure stage.

Cheers

ccache g++ -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -static-libgcc -static-libstdc++ -IC:/MABS/local64/include -LC:/MABS/local64/lib -lfdk-aac -L/local64/lib -L/mingw64/lib -Wl,--nxcompat,--dynamicbase -Wl,--high-entropy-va -Wl,--as-needed -Wl,--pic-executable,-e,mainCRTStartup -Wl,--image-base,0x140000000 -IC:/MABS/local64/include/opus -LC:/MABS/local64/lib -o /tmp/ffconf.oXq28piX/test.exe /tmp/ffconf.oXq28piX/test.o -lopus -lm -liconv -lpsapi -lstdc++ -lstdc++
require_pkg_config libplacebo libplacebo >= 4.192.0 libplacebo/vulkan.h pl_vulkan_create
check_pkg_config libplacebo libplacebo >= 4.192.0 libplacebo/vulkan.h pl_vulkan_create
test_pkg_config libplacebo libplacebo >= 4.192.0 libplacebo/vulkan.h pl_vulkan_create
pkgconf --exists --print-errors libplacebo >= 4.192.0
check_func_headers libplacebo/vulkan.h pl_vulkan_create -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib -lplacebo -lm -lshlwapi -lglslang-default-resource-limits C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -lversion -lspirv-cross -lvulkan -lcfgmgr32 -LC:/MABS/msys64/mingw64/lib -llcms2 -llcms2_fast_float -lm -pthread -ldovi -ladvapi32 -lbcrypt -lntdll -luserenv -lws2_32 -lkernel32 -lkernel32 -ladvapi32 -lbcrypt -lkernel32 -lntdll -luserenv -lws2_32 -lkernel32 -lws2_32 -lkernel32
test_ld cc -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib -lplacebo -lm -lshlwapi -lglslang-default-resource-limits C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -lversion -lspirv-cross -lvulkan -lcfgmgr32 -LC:/MABS/msys64/mingw64/lib -llcms2 -llcms2_fast_float -lm -pthread -ldovi -ladvapi32 -lbcrypt -lntdll -luserenv -lws2_32 -lkernel32 -lkernel32 -ladvapi32 -lbcrypt -lkernel32 -lntdll -luserenv -lws2_32 -lkernel32 -lws2_32 -lkernel32
test_cc -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -LC:/MABS/msys64/mingw64/lib -pthread
BEGIN /tmp/ffconf.oXq28piX/test.c
    1   #include <libplacebo/vulkan.h>
    2   #include <stdint.h>
    3   long check_pl_vulkan_create(void) { return (long) pl_vulkan_create; }
    4   int main(void) { int ret = 0;
    5    ret |= ((intptr_t)check_pl_vulkan_create) & 0xFFFF;
    6   return ret; }
END /tmp/ffconf.oXq28piX/test.c
ccache gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DWIN32_LEAN_AND_MEAN -U__STRICT_ANSI__ -D__USE_MINGW_ANSI_STDIO=1 -D__printf__=__gnu_printf__ -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -mthreads -IC:/MABS/local64/include -Wno-int-conversion -DLIBTWOLAME_STATIC -DCACA_STATIC -DMODPLUG_STATIC -DCHROMAPRINT_NODLL -DZMQ_STATIC -DLIBXML_STATIC -DAL_LIBTYPE_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include/AL -std=c11 -fomit-frame-pointer -IC:/MABS/local64/include -pthread -IC:/MABS/msys64/mingw64/include -I/mingw64/include -IC:/MABS/local64/include -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/local64/include/libpng16 -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/local64/include/freetype2 -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include/harfbuzz -IC:/MABS/local64/include/fribidi -DFRIBIDI_LIB_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include/libxml2 -DLIBXML_STATIC -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include/bs2b -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/local64/include -IC:/MABS/local64/include/freetype2 -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include/freetype2 -IC:/MABS/local64/include/fribidi -DFRIBIDI_LIB_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include -DHWY_STATIC_DEFINE -IC:/MABS/msys64/mingw64/include -DJXL_STATIC_DEFINE -IC:/MABS/local64/include -DJXL_THREADS_STATIC_DEFINE -IC:/MABS/local64/include -IC:/MABS/local64/include/mfx -IC:/MABS/msys64/mingw64/include -IC:/MABS/local64/include -IC:/MABS/msys64/mingw64/include/openjpeg-2.5 -DOPJ_STATIC -IC:/MABS/local64/include -IC:/MABS/local64/include/opus -IC:/MABS/local64/include/opus -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -LC:/MABS/msys64/mingw64/lib -pthread -c -o /tmp/ffconf.oXq28piX/test.o /tmp/ffconf.oXq28piX/test.c
C:/MABS/msys64/tmp/ffconf.oXq28piX/test.c: In function 'check_pl_vulkan_create':
C:/MABS/msys64/tmp/ffconf.oXq28piX/test.c:3:44: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    3 | long check_pl_vulkan_create(void) { return (long) pl_vulkan_create; }
      |                                            ^
gcc.exe: warning: C:/MABS/local64/lib/../lib/libSPIRV.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libMachineIndependent.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libOSDependent.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libOGLCompiler.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libGenericCodeGen.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libSPIRV-Tools.a: linker input file unused because linking not done
gcc.exe: warning: C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a: linker input file unused because linking not done
ccache g++ -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -static-libgcc -static-libstdc++ -IC:/MABS/local64/include -LC:/MABS/local64/lib -lfdk-aac -L/local64/lib -L/mingw64/lib -Wl,--nxcompat,--dynamicbase -Wl,--high-entropy-va -Wl,--as-needed -Wl,--pic-executable,-e,mainCRTStartup -Wl,--image-base,0x140000000 -IC:/MABS/local64/include -DPL_STATIC -IC:/MABS/local64/include/spirv_cross -IC:/MABS/msys64/mingw64/include -LC:/MABS/local64/lib C:/MABS/local64/lib/../lib/libSPIRV.a C:/MABS/local64/lib/../lib/libMachineIndependent.a C:/MABS/local64/lib/../lib/libOSDependent.a C:/MABS/local64/lib/../lib/libOGLCompiler.a C:/MABS/local64/lib/../lib/libGenericCodeGen.a C:/MABS/local64/lib/../lib/libSPIRV-Tools.a C:/MABS/local64/lib/../lib/libSPIRV-Tools-opt.a -LC:/MABS/msys64/mingw64/lib -pthread -o /tmp/ffconf.oXq28piX/test.exe /tmp/ffconf.oXq28piX/test.o -lplacebo -lm -lshlwapi -lglslang-default-resource-limits -lversion -lspirv-cross -lvulkan -lcfgmgr32 -llcms2 -llcms2_fast_float -lm -ldovi -ladvapi32 -lbcrypt -lntdll -luserenv -lws2_32 -lkernel32 -lkernel32 -ladvapi32 -lbcrypt -lkernel32 -lntdll -luserenv -lws2_32 -lkernel32 -lws2_32 -lkernel32 -liconv -lpsapi -lstdc++ -lstdc++
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x41): undefined reference to `glslang::InitializeProcess()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x81): undefined reference to `glslang::FinalizeProcess()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x119): undefined reference to `glslang::TShader::TShader(EShLanguage)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x158): undefined reference to `glslang::TShader::setStrings(char const* const*, int)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x1df): undefined reference to `glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x1fc): undefined reference to `glslang::TProgram::TProgram()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x231): undefined reference to `glslang::TProgram::link(EShMessages)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x274): undefined reference to `glslang::GlslangToSpv(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator<unsigned int> >&, glslang::SpvOptions*)'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x2f4): undefined reference to `glslang::TProgram::getInfoLog()'
C:/MABS/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/MABS/local64/lib/libplacebo.a(glsl_glslang.cc.obj):glslang.cc:(.text+0x324): undefined reference to `glslang::TShader::getInfoLog()'
collect2.exe: error: ld returned 1 exit status
ERROR: libplacebo >= 4.192.0 not found using pkg-config

Attached are ffmpeg_options.txt etc. ffmpeg_options.txt media-autobuild_suite.ini.txt mpv_options.txt

nikolasr commented 9 months ago

Trying to automate things is always good, but just to be sure, please try doing it manually step-by-step, to avoid anything that might interfere,

my config files (64-bit, static): config_files.zip

hydra3333 commented 9 months ago

OK will compare config files and try as you suggest in a fresh Win11 Sandbox.

_edit: Ah, I was also looking for your ffmpeg_options.txt (and mpvoptions.txt) to cross-check them as well, they're not in the zip ;)

nikolasr commented 9 months ago

Could You be so kind and give me a hint where to find those 2 files? I didn't change them, thinking those options would be auto-generated by using _media-autobuildsuite.ini .So, if You're using my _media-autobuildsuite.ini settings, You should end up with my options. One last thing thats different is that I'm building on bare-metal Windows 10, not Windows 11 Sandbox. Shouldn't make a difference, but maybe it does :-) Edit: Oh, and now I see You're using ccache while I'm not. Might speed up things, but may cause trouble, so I'd suggest turning it off for testing.

hydra3333 commented 9 months ago

Oh, and now I see You're using ccache while I'm not. Might speed up things, but may cause trouble, so I'd suggest turning it off for testing.

That's funny, I said no during the setup and CC=2 in media-autobuild_suite.ini.

Could You be so kind and give me a hint where to find those 2 files?

Sure, they're in the same folder as media-autobuild_suite.ini

After some reboots and whatnot (PC issues) I'm trying it now.

hydra3333 commented 9 months ago

Could You be so kind and give me a hint where to find those 2 files?

They only seem to appear if ffmpegChoice=1 rather than 4.

I have temporarily given up, there are definitely issues with Microsoft Windows 11 Sandbox. Sometimes the sandbox allows one to "close your window, say "yes" to any popups", sometimes not. Sometimes the issue persists across sandboxes (it is NOT supposed to do that). If that issue arises, one can start task manager in the sandbox but not select anything with the mouse (HIGHLY unusual). Sometimes the sandbox issue persists across Windows host reboots and across sandbox instances. I have run various anti-virus tools which declare the host is clean.

nikolasr commented 9 months ago

How about using Virtualbox and Windows 10 (90-day evaluation, if you don't have any other license), if you really have to use a sandbox or VM? Edit: As MS seems to be more restrictive with windows 10 eval (registration/logging in), even good [ ;-) ] old Windows 8 Evaluation would be good enough...

Murmur commented 8 months ago

See this comment I was finally able to compile ffmpeg with vulkan+libglslang+drawtext flags. https://github.com/m-ab-s/media-autobuild_suite/issues/2494#issuecomment-1782566361

nikolasr commented 8 months ago

@Murmur: Thanks a lot for your info! Do you maybe per chance know, if there's anything new to msys's pgkconf package?

When using pkgconf 1.8 (and being "tricky" [see my steps above]), I managed to build ffmpeg without any problems and other patches. However, since my CPU doesn't support intel SVT encoders, I disabled these, I also disabled some of the more "futuristic" codecs, but included the "infamous" ones like fdkaac, vulkan, glslang and cuda (voting to build with all codecs when asked while configuring and enabling non-free [of course only for testing ^^])

If there's a new 'working' version of pkgconf, maybe this issue might be closed?

Murmur commented 8 months ago

I do not know details about the pkgconfigm I need to experiment with your settings aw you are able to compile ffmpeg-placebo filter(?).

nikolasr commented 8 months ago

It's been a week (or a little bit more) since I compiled ffmpeg, so there might (or might not) be some other upstream changes causing problems, but, yes, of course I compiled with libplacebo :-) However, maybe timing is key: downgrade pkgconfig right then when "compiling global tools" starts. Not earlier, not later.

nikolasr commented 8 months ago

Here's my buildconfig, maybe this helps reproducing my build buildconf.zip

nikolasr commented 6 months ago

Can we close this issue? For me it's all working again with current upstream. I did have some issues with upstream glslang, but that's not the problem here. So, any contradictions?

Murmur commented 6 months ago

@nikolasr it's fine for me to close this ticket. I am still unable to compile ffmpeg with --enable-libplacebo flag but can live without it. Everything else important works fine gpac, mp4box, ffmpeg tools.

You are able to use --enable-libplacebo flag I was unable to pinpoint what triggers my compilation broken, might be a side effect from another flags.

nikolasr commented 6 months ago

@Murmur : Strange. Did you try completely deleting (!) your media autobuild suite dir and checking out a fresh git clone? Not a master.zip, but a real git clone? Should work like a charm with one exception: I had to work around a glslang problem by choosing a specific revision. In _.\build\media-suitedeps.sh I changed SOURCE_REPO_GLSLANG=https://github.com/KhronosGroup/glslang.git to SOURCE_REPO_GLSLANG=https://github.com/KhronosGroup/glslang.git#commit=feb5437

No other changes or workarounds needed. Worked for me on 12-23-2023

Edit: Oh, I just saw my ffmbc build right at the end wasn't successful, but everything else compiled ok (including ffmpeg.exe). But the compilation script didn't care, nor did I ;-)

P.S.: If you'd like to look at my settings, here's my media-autobuild_suite.ini: [compiler list] arch=3 license2=1 standalone=1 vpx2=1 aom=1 rav1e=1 dav1d=1 libavif=1 jpegxl=1 x2643=4 x2652=5 other265=1 svthevc=2 xvc=1 vvc=1 uvg266=2 vvenc=2 vvdec=2 svtav1=2 svtvp9=2 flac=1 fdkaac=1 faac=1 exhale=1 mediainfo=1 soxB=1 ffmpegB2=1 ffmpegPath=https://git.ffmpeg.org/ffmpeg.git ffmpegUpdate=1 ffmpegChoice=4 mp4box=1 rtmpdump=1 mplayer2=1 mpv=1 vlc=2 bmx=1 curl=4 ffmbc=1 cyanrip2=1 ripgrep=1 jq=1 jo=1 dssim=1 avs2=1 dovitool=1 hdr10plustool=1 CC=2 cores=2 deleteSource=1 strip=1 pack=2 logging=1 updateSuite=1 timeStamp=1 ccache=2 noMintty=2

Murmur commented 6 months ago

Could be a ffmpeg build flags media-autobuild_suite.ini: standalone=2 ffmpegB2=3 ffmpegChoice=1 ccache=1 differences. Need to run more tests later and maybe a new test folder from scratch. Script builds libplacebo-git library fine but then later ffmpeg binary ERROR: libplacebo >= 4.192.0 not found using pkg-config error.

nikolasr commented 6 months ago

Got the same error until I completely deleted the whole suite and rebuilt from scratch with a fresh git checkout. There were issues with pkg-config, which had apparently been resolved upstream. But somehow this does not take effect until you rebuild everything. That means really everything, including build, local64 and msys64 Well, or just rename your mabs dir, and do a fresh git clone somewhere else in case you want to revert to your old files. ;-) And especially.... do not use ccache! Better a slow compile, but a working one ;-)

nikolasr commented 6 months ago

@barzai741 : Could you please close this issue?