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.56k stars 267 forks source link

vulkan-loader build failed (mingw64) #2507

Closed Soundshock closed 1 year ago

Soundshock commented 1 year ago

11:52:55 ┌ vulkan-loader git ........................ [Recently updated] 11:52:56 ├ Running uninstall... 0001-loader-cross-compile-static-linking-hacks.patch Patch could not be applied with git am. Continuing without patching. 0003-loader-prefix-cjson-symbols-and-mark-most-as-static.patch Patch could not be applied with git am. Continuing without patching. 11:52:59 ├ Running dependencies... 11:53:49 ├ Installing Vulkan-Headers... 11:53:49 ├ Running uninstall... 11:53:49 ├ Running cmake... 11:53:51 ├ Running build... 11:53:51 ├ Running install... 11:53:52 ├ Building Vulkan-Loader... 11:53:53 ├ Running cmake... 11:53:56 ├ Running build... Likely error (tail of the failed operation logfile): F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp7[.refptr.vkPhysDevExtTramp7]+0x0): undefined reference to vkPhysDevExtTramp7' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp6[.refptr.vkPhysDevExtTramp6]+0x0): undefined reference tovkPhysDevExtTramp6' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp5[.refptr.vkPhysDevExtTramp5]+0x0): undefined reference to vkPhysDevExtTramp5' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp4[.refptr.vkPhysDevExtTramp4]+0x0): undefined reference tovkPhysDevExtTramp4' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp3[.refptr.vkPhysDevExtTramp3]+0x0): undefined reference to vkPhysDevExtTramp3' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp2[.refptr.vkPhysDevExtTramp2]+0x0): undefined reference tovkPhysDevExtTramp2' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp1[.refptr.vkPhysDevExtTramp1]+0x0): undefined reference to vkPhysDevExtTramp1' F:/z/m/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp0[.refptr.vkPhysDevExtTramp0]+0x0): undefined reference tovkPhysDevExtTramp0' collect2.exe: error: ld returned 1 exit status ninja: build stopped: subcommand failed. build failed. Check F:/z/m/build/vulkan-loader-git/build-64bit/ab-suite.build.log This is required for other packages, so this script will exit. 11:54:03 Creating diagnostics file...

logs.zip

Fishman0919 commented 1 year ago

Same.

logs.zip

j4ix commented 1 year ago

logs.zip

dprestegard commented 1 year ago

Same here as well

logs.zip

OliverMD15 commented 1 year ago

logs.zip

nicoferr commented 1 year ago

Same here, here are my logs : logs.zip Still no soution ? :(

bmacphail commented 1 year ago

Same issue. logs.zip

EyeBar commented 1 year ago

Similar error reported, just one more unapplied patch (0002...):

01:26:30 Running git clone for vulkan-loader... 01:26:43 Running git update for vulkan-loader... 01:26:43 ┌ vulkan-loader git ........................ [Recently updated] 01:26:46 ├ Installing uasm... done 0001-loader-cross-compile-static-linking-hacks.patch Patch could not be applied with git am. Continuing without patching. 0002-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch Patch could not be applied with git am. Continuing without patching. 0003-loader-prefix-cjson-symbols-and-mark-most-as-static.patch Patch could not be applied with git am. Continuing without patching. 01:26:57 ├ Running dependencies... 01:27:10 ├ Installing Vulkan-Headers... 01:27:10 ├ Running cmake... 01:27:12 ├ Running build... 01:27:12 ├ Running install... 01:27:14 ├ Building Vulkan-Loader... 01:27:14 ├ Running cmake... 01:27:20 ├ Running build... Likely error (tail of the failed operation logfile): C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp7[.refptr.vkPhysDevExtTramp7]+0x0): undefined reference to vkPhysDevExtTramp7' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp6[.refptr.vkPhysDevExtTramp6]+0x0): undefined reference tovkPhysDevExtTramp6' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp5[.refptr.vkPhysDevExtTramp5]+0x0): undefined reference to vkPhysDevExtTramp5' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp4[.refptr.vkPhysDevExtTramp4]+0x0): undefined reference tovkPhysDevExtTramp4' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp3[.refptr.vkPhysDevExtTramp3]+0x0): undefined reference to vkPhysDevExtTramp3' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp2[.refptr.vkPhysDevExtTramp2]+0x0): undefined reference tovkPhysDevExtTramp2' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp1[.refptr.vkPhysDevExtTramp1]+0x0): undefined reference to vkPhysDevExtTramp1' C:/MAB/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata$.refptr.vkPhysDevExtTramp0[.refptr.vkPhysDevExtTramp0]+0x0): undefined reference tovkPhysDevExtTramp0' collect2.exe: error: ld returned 1 exit status ninja: build stopped: subcommand failed. build failed. Check C:/MAB/build/vulkan-loader-git/build-64bit/ab-suite.build.log This is required for other packages, so this script will exit.

logs.zip

cantrell216 commented 1 year ago

same nearly word for word

logs.zip

maddes8cht commented 1 year ago

Same here logs.zip

crhepner commented 1 year ago

I'm getting a similar error, except it's failing on CMake instead of build.

┌ vulkan-loader git  .................................. [Recently updated]
├ Running uninstall...
0001-loader-cross-compile-static-linking-hacks.patch
        Patch could not be applied with `git am`. Continuing without patching.
0002-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch
        Patch could not be applied with `git am`. Continuing without patching.
0003-loader-prefix-cjson-symbols-and-mark-most-as-static.patch
        Patch could not be applied with `git am`. Continuing without patching.
├ Running dependencies...
├ Installing Vulkan-Headers...
├ Running uninstall...
├ Running cmake...
├ Running build...
├ Running install...
├ Building Vulkan-Loader...
├ Running cmake...
Likely error (tail of the failed operation logfile):
-- Looking for __secure_getenv - not found
CMake Warning at CMakeLists.txt:231 (message):
  Using non-secure environmental lookups.  This loader will not properly
  disable environent variables when run with elevated permissions.

-- Configuring done (5.1s)
CMake Error: CMake can not determine linker language for target: loader-unknown-chain
-- Generating done (0.0s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
cmake failed. Check C:/ab-suite-20230911/build/vulkan-loader-git/build-64bit/ab-suite.cmake.log
This is required for other packages, so this script will exit.
  Creating diagnostics file...

logs.zip

Zmmfly commented 1 year ago
-- Looking for __secure_getenv - not found
CMake Warning at CMakeLists.txt:231 (message):
  Using non-secure environmental lookups.  This loader will not properly
  disable environent variables when run with elevated permissions.

-- Configuring done (5.1s)
CMake Error: CMake can not determine linker language for target: loader-unknown-chain
-- Generating done (0.0s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
cmake failed. Check C:/ab-suite-20230911/build/vulkan-loader-git/build-64bit/ab-suite.cmake.log
This is required for other packages, so this script will exit.
  Creating diagnostics file...

Same with this error.

crhepner commented 1 year ago

I took a look at the patches that were not being applied. Several of the affected files in the Vulkan-Loader repository have been updated such that some of the line numbers no longer match.

Is it possible that regenerating the patch files would fix the problems with compiling Vulkan-Loader?

CuplexUser commented 1 year ago

logs.zip

Same problem, how can you apply the patches in a semi-automated way and then compiling manually using Ming64? I have manged to compile the Vulcan-Loader before without successfully applying any patch, but I think that was around 3 months ago, and I now I want to do a recompile to work with a CUDA 12.2. To avoid having 2 CUDA dev-kits installed...

hydra3333 commented 1 year ago

Just wondering, when was the last-known working commit of the vulkan loader and does it still work (and is it compatible with the latest ffmpeg) ... anyone know ?

Also wondering if anyone has reported the issue(s) upstream ?

lukszi commented 1 year ago

I tried --disable-vulkan in mpv_options and commenting out the --enable-vulkan in ffmpeg_options, yet no success. A temporary fix I found, is to rollback the vulkan loader version by replacing line 101 in media-suite_deps.sh with the following:

SOURCE_REPO_VULKANLOADER=https://github.com/KhronosGroup/Vulkan-Loader.git#commit=dd8332d253cfaf3a9be306af4194e4dffc2e3b3c

However now I am running into an issue with shaderc, which I don't know how to fix ...

maddes8cht commented 1 year ago

@1480c1 This is one of the things that currently stops this projekt from working for weeks. Sadly its unusable now.

waldonnis commented 1 year ago

I decided to trace back what tag the vulkan-loader patches apply cleanly against while I was revisiting some of my own local patches. If you absolutely need to have libplacebo and the Vulkan stuff (even if it's a tad outdated), you can change line 103 in build/media-suite_deps.sh from: SOURCE_REPO_VULKANLOADER=https://github.com/KhronosGroup/Vulkan-Loader.git to: SOURCE_REPO_VULKANLOADER=https://github.com/KhronosGroup/Vulkan-Loader.git#tag=v1.3.258

If you need a newer version for some reason, rebasing the existing patches shouldn't be too difficult for an interested person looking to contribute (I don't usually build with vulkan/libplacebo).

cantrell216 commented 1 year ago

I decided to trace back what tag the vulkan-loader patches apply cleanly against while I was revisiting some of my own local patches. If you absolutely need to have libplacebo and the Vulkan stuff (even if it's a tad outdated), you can change line 103 in build/media-suite_deps.sh from: SOURCE_REPO_VULKANLOADER=https://github.com/KhronosGroup/Vulkan-Loader.git to: SOURCE_REPO_VULKANLOADER=https://github.com/KhronosGroup/Vulkan-Loader.git#tag=v1.3.258

If you need a newer version for some reason, rebasing the existing patches shouldn't be too difficult for an interested person looking to contribute (I don't usually build with vulkan/libplacebo).

Thank you so much, that worked for me and will certain suffice for now. Much appreciated.

hydra3333 commented 1 year ago

If you need a newer version for some reason, rebasing the existing patches shouldn't be too difficult for an interested person looking to contribute (I don't usually build with vulkan/libplacebo).

OK, I hope to have a look at it over the coming week. Thanks for the info on which version to affix to as an alternative: #tag=v1.3.258

mrtajniak commented 1 year ago

logs.zip Same problem here

hydra3333 commented 1 year ago

A thought, I wonder, if someone has skills to contribute to MABS with pull requests to fix things such as this, please also see https://github.com/m-ab-s/media-autobuild_suite/issues/2514#issuecomment-1741595999 for suggestion on how to possibly contribute to updating MABS ?

assy1204 commented 1 year ago

Build fails with new patch.

Running git clone for vulkan-loader... Running git update for vulkan-loader... ┌ vulkan-loader git .................................. [Recently updated] ├ Running uninstall... ├ Running dependencies... ├ Installing Vulkan-Headers... ├ Running uninstall... ├ Running cmake... ├ Running build... ├ Running install... ├ Building Vulkan-Loader... ├ Running cmake... Likely error (tail of the failed operation logfile): Using non-secure environmental lookups. This loader will not properly disable environent variables when run with elevated permissions.

-- Configuring done (1.8s) 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.0s) CMake Generate step failed. Build files cannot be regenerated correctly.

1480c1 commented 1 year ago

Attempting a new set of patches https://github.com/m-ab-s/mabs-patches/commit/c7982983c34aafcf3f5ae341a329830aad3ed81c. Currently, compiling locally to see if they work as intended. Will push in the morning if it passes.

LigH-de commented 1 year ago

Complete ab-suite.cmake.log from the unaltered suite:

CPPFLAGS: -D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1
CFLAGS: -fstack-protector-strong -mtune=generic -O2 -pipe -mthreads -DSTRSAFE_NO_DEPRECATE
CXXFLAGS: -fstack-protector-strong -mtune=generic -O2 -pipe -mthreads
LDFLAGS: -pipe -static-libgcc -fstack-protector-strong -static-libstdc++
cmake .. -G Ninja -DBUILD_SHARED_LIBS=off -DCMAKE_TOOLCHAIN_FILE=/local32/etc/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/local32 -DUNIX=on -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DVULKAN_HEADERS_INSTALL_DIR=/local32 -DBUILD_STATIC_LOADER=ON -DUNIX=OFF -DENABLE_WERROR=OFF
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: G:/MABS/msys64/mingw32/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: G:/MABS/msys64/mingw32/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
CMake Warning at CMakeLists.txt:44 (message):
  The BUILD_STATIC_LOADER option has been set.  Note that this will only work
  on MacOS and is not supported or tested as part of the loader.  Use it at
  your own risk.

-- Found Git: G:/MABS/msys64/usr/bin/git.exe (found version "2.42.0") 
-- Looking for secure_getenv
-- Looking for secure_getenv - not found
-- Looking for __secure_getenv
-- Looking for __secure_getenv - not found
CMake Warning at CMakeLists.txt:237 (message):
  Using non-secure environmental lookups.  This loader will not properly
  disable environent variables when run with elevated permissions.

-- Configuring done (2.4s)
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.0s)
CMake Generate step failed.  Build files cannot be regenerated correctly.

So, basic summary: static building is only supported on Mac OS now.

Testing a downgrade by clamping the version as described above (but not yet with the proposed updated patches): It's not sufficient.

  Running git clone for vulkan-loader...
  Running git update for vulkan-loader...
┌ vulkan-loader git  .................................. [Recently updated]
├ Running uninstall...
0001-loader-cross-compile-static-linking-hacks.patch
    Patch could not be applied with `git am`. Continuing without patching.
0003-loader-prefix-cjson-symbols-and-mark-most-as-static.patch
    Patch could not be applied with `git am`. Continuing without patching.
├ Running dependencies...
├ Installing Vulkan-Headers...
├ Running uninstall...
├ Running cmake...
├ Running build...
├ Running install...
├ Building Vulkan-Loader...
├ Running cmake...
├ Running build...
Likely error (tail of the failed operation logfile):
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7c8): undefined reference to `vkPhysDevExtTramp242@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7cc): undefined reference to `vkPhysDevExtTramp243@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7d0): undefined reference to `vkPhysDevExtTramp244@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7d4): undefined reference to `vkPhysDevExtTramp245@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7d8): undefined reference to `vkPhysDevExtTramp246@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7dc): undefined reference to `vkPhysDevExtTramp247@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7e0): undefined reference to `vkPhysDevExtTramp248@4'
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: loader/libloader-opt.a(phys_dev_ext.c.obj):phys_dev_ext.c:(.rdata+0x7e4): undefined reference to `vkPhysDevExtTramp249@4'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
build failed. Check G:/MABS/build/vulkan-loader-git/build-32bit/ab-suite.build.log
...
[24/24] Linking C shared library loader\vulkan-1.dll
FAILED: loader/vulkan-1.dll loader/libvulkan-1.dll.a 
cmd.exe /C "cd . && G:\MABS\msys64\mingw32\bin\gcc.exe -fstack-protector-strong -mtune=generic -O2 -pipe -mthreads -DSTRSAFE_NO_DEPRECATE -O3 -DNDEBUG  -pipe -static-libgcc -fstack-protector-strong -static-libstdc++   G:\MABS\build\vulkan-loader-git\loader\vulkan-1.def -shared -o loader\vulkan-1.dll -Wl,--out-implib,loader\libvulkan-1.dll.a -Wl,--major-image-version,0,--minor-image-version,0 loader/CMakeFiles/vulkan.dir/allocation.c.obj loader/CMakeFiles/vulkan.dir/cJSON.c.obj loader/CMakeFiles/vulkan.dir/debug_utils.c.obj loader/CMakeFiles/vulkan.dir/extension_manual.c.obj loader/CMakeFiles/vulkan.dir/loader_environment.c.obj loader/CMakeFiles/vulkan.dir/gpa_helper.c.obj loader/CMakeFiles/vulkan.dir/loader.c.obj loader/CMakeFiles/vulkan.dir/log.c.obj loader/CMakeFiles/vulkan.dir/settings.c.obj loader/CMakeFiles/vulkan.dir/terminator.c.obj loader/CMakeFiles/vulkan.dir/trampoline.c.obj loader/CMakeFiles/vulkan.dir/unknown_function_handling.c.obj loader/CMakeFiles/vulkan.dir/wsi.c.obj loader/CMakeFiles/vulkan.dir/loader_windows.c.obj loader/CMakeFiles/vulkan.dir/dirent_on_windows.c.obj loader/CMakeFiles/vulkan.dir/loader.rc.obj  loader/libloader-opt.a  -lcfgmgr32  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: warning: resolving _vkAcquireNextImage2KHR by linking to _vkAcquireNextImage2KHR@12
Use --enable-stdcall-fixup to disable these warnings
Use --disable-stdcall-fixup to disable these fixups
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: warning: resolving _vkAcquireNextImageKHR by linking to _vkAcquireNextImageKHR@40
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: warning: resolving _vkAllocateCommandBuffers by linking to _vkAllocateCommandBuffers@12
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: warning: resolving _vkAllocateDescriptorSets by linking to _vkAllocateDescriptorSets@12
...

Will try again with released new patches...

hydra3333 commented 1 year ago

Oops, I should have posted these comments here instead. https://github.com/m-ab-s/mabs-patches/commit/b4018a3e926b0f43cb3f5fd2212b36088dfe65d0#commitcomment-128875767

assy1204 commented 1 year ago

Compiled with old vulkan-loader patch and sdk-1.3.261 Failed with libbluray.

owata!\(^o^)/

assy1204 commented 1 year ago

The vulkan loader failed even in the latest version.

Running git clone for vulkan-loader... Running git update for vulkan-loader... ┌ vulkan-loader git .................................. [Recently updated] ├ Installing uasm... done 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. ├ Running dependencies... ├ Installing Vulkan-Headers... ├ Running cmake... ├ Running build... ├ Running install... ├ Building Vulkan-Loader... ├ Running cmake... ├ Running build... ├ Running install... ├ /local64/lib/libvulkan.a .................................. [Not found] └ vulkan-loader-git ............................................ [Failed]

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

Close this window if you wish to stop building.

assy1204 commented 1 year ago

latest version ERROR: libbluray not found using pkg-config

drakuleah commented 1 year ago

Yep, confirmed. Latest version erroring in LIBBLURAY now... What a ball...

assy1204 commented 1 year ago

Try again... latest version ERROR: libbluray not found using pkg-config

Are there any environments where the build can be completed without any problems?

hydra3333 commented 1 year ago

If you would be so kind ...

You could try to manually add these lines (from out of date patches), then delete the libbluray folder, and then re-run the build to see if it works: https://github.com/m-ab-s/media-autobuild_suite/pull/2529/commits/bd1cfdfdaeebf7e164f85a8e545851b68f06038d https://github.com/m-ab-s/media-autobuild_suite/pull/2529/commits/d7bd1c91bf74b50b48b83a9db0f5ce6c5d25d90a

cheers

assy1204 commented 1 year ago

Thank you for your advice. But it didn't work ERROR: libbluray not found using pkg-config

zhangran-cn commented 1 year ago

New updatehttps://github.com/m-ab-s/mabs-patches/tree/master/vulkan-loader Change your build\media-suite_compile.sh(line 1952) like this: do_pacman_install uasm do_uninstall "${_check[@]}" do_patch "$_mabs/vulkan-loader/0001-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch" am do_patch "$_mabs/vulkan-loader/0002-loader-loader_windows-Static-linking-hacks.patch" am do_patch "$_mabs/vulkan-loader/0003-loader-CMake-related-static-hacks.patch" am do_patch "$_mabs/vulkan-loader/0004-loader-Add-private-libs-to-pc-file.patch" am do_patch "$_mabs/vulkan-loader/0005-loader-Static-library-name-related-hacks.patch" am grep_and_sed VULKAN_LIB_SUFFIX loader/vulkan.pc.in \ 's/@VULKAN_LIB_SUFFIX@//'

assy1204 commented 1 year ago

_mabs=https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/vulkan-loader $_mabs/vulkan-loader/0001-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch

https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/vulkan-loader/vulkan-loader/0001-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch

Isn't this strange?

LigH-de commented 1 year ago

Indeed, this would double the /vulkan-loader/ branch part. The correct URL would be

https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/vulkan-loader/0001-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch

Are you sure that your claim

_mabs=https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/vulkan-loader

is correct?

zhangran-cn commented 1 year ago

I just found the new updates .The five files you can be found in the link.In fact, I am not sure if it is correct because later on, I discovered that although the build was successful, LINK reported an error.-------- 原始邮件 --------发件人: LigH @.>日期: 2023年10月6日周五 22:19收件人: m-ab-s/media-autobuild_suite @.>抄送: zhangran-cn @.>, Comment @.>主 题: Re: [m-ab-s/media-autobuild_suite] vulkan-loader build failed (mingw64) (Issue #2507) Indeed, this would double the /vulkan-loader/ branch part. The correct URL would be https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/vulkan-loader/0001-pc-remove-CMAKE_CXX_IMPLICIT_LINK_LIBRARIES.patch Are you sure that your claim

_mabs=https://raw.githubusercontent.com/m-ab-s/mabs-patches/master/vulkan-loader

is correct?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

assy1204 commented 1 year ago

Thank you for your update, 1480c1 An error occurred with libplacebo in the latest version. Is it related to libxml modification?

ERROR: libplacebo >= 4.192.0 not found using pkg-config

1480c1 commented 1 year ago

I think it's fixed with https://github.com/m-ab-s/mabs-patches/commit/6ba0a60aa28d1e07b5a1a67af4ad0defb74a25ab as I managed to compile ffmpeg just now. Stopped at mpv with libdovi having conflicting symbols with librav1e.

assy1204 commented 1 year ago

ffmpeg completed! Also, since dovitool=2 was set, mpv compilation was completed. thank you!

hydra3333 commented 1 year ago

I wonder how you did it ! Afresh today:

ccache g++ -D_FORTIFY_SOURCE=2 -fstack-protector-strong -mtune=generic -O2 -pipe -D__USE_MINGW_ANSI_STDIO=1 -mthreads -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.sTV6iLmG/test.exe /tmp/ffconf.sTV6iLmG/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 -Llib -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 -Llib -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 -Llib -LC:/MABS/msys64/mingw64/lib -pthread
BEGIN /tmp/ffconf.sTV6iLmG/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.sTV6iLmG/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 -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 -Llib -LC:/MABS/msys64/mingw64/lib -pthread -c -o /tmp/ffconf.sTV6iLmG/test.o /tmp/ffconf.sTV6iLmG/test.c
C:/MABS/msys64/tmp/ffconf.sTV6iLmG/test.c: In function 'check_pl_vulkan_create':
C:/MABS/msys64/tmp/ffconf.sTV6iLmG/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 -mthreads -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 -Llib -LC:/MABS/msys64/mingw64/lib -pthread -o /tmp/ffconf.sTV6iLmG/test.exe /tmp/ffconf.sTV6iLmG/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

Will try again now ...

EyeBar commented 1 year ago

ERROR: libplacebo >= 4.192.0 not found using pkg-config

Ditto. Not completely fresh. Deleted previous build\vulkan-loader-git. Updated (run update_suite.sh in mintty) and rerun. logs.zip

LigH-de commented 1 year ago

ffmpeg completed! Also, since dovitool=2 was set, mpv compilation was completed. thank you!

Not in my case. I once tried to build libdovi. Now that mpv failed with the mentioned conflict between librav1e and libdovi, I set dovitool=2 in my media-autobuild_suite.ini. Compiling mpv still failed. So I removed dovi-tool, rav1e and mpv from build, and the libraries and pk files of dovi from local##/lib.

Surprise:

┌ mpv git  ............................................ [Recently updated]
├ Running bootstrap...
├ Running configure...
├ Running build...
Likely error (tail of the failed operation logfile):
[344/504] Compiling video/out/vulkan/utils.c
[345/504] Compiling video/out/vo_tct.c
[346/504] Compiling player/external_files.c
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -ldovi: No such file or directory
G:/MABS/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/13.2.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -ldovi: No such file or directory
collect2.exe: error: ld returned 1 exit status

So where does it remember dovi from?

waldonnis commented 1 year ago

I'll look into this. It was probably too ambitious for me to include libdovi compilation in the dovi_tool PR at this stage anyway. Might just need to remove the libdovi bits in the compile script if it's not really useful, but I'll see what can be done.

As for how it' remembering, it's probably finding the pkgconfig file during configure and enabling the feature (look for local64/lib/pkgconfig/dovi.pc and delete it if found). I'll see if there's an explicit flag to disable using libdovi as well to force it off even if libdovi is installed but disabled in the suite configuration.

hydra3333 commented 1 year ago

re-tried, same again:

BEGIN /tmp/ffconf.p8FyKWdW/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.p8FyKWdW/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 -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 -Llib -LC:/MABS/msys64/mingw64/lib -pthread -c -o /tmp/ffconf.p8FyKWdW/test.o /tmp/ffconf.p8FyKWdW/test.c
C:/MABS/msys64/tmp/ffconf.p8FyKWdW/test.c: In function 'check_pl_vulkan_create':
C:/MABS/msys64/tmp/ffconf.p8FyKWdW/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 -mthreads -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 -Llib -LC:/MABS/msys64/mingw64/lib -pthread -o /tmp/ffconf.p8FyKWdW/test.exe /tmp/ffconf.p8FyKWdW/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
waldonnis commented 1 year ago

Okay, we seem to have two unrelated errors that just happen to fall under the Vulkan umbrella here....

hydra3333 commented 1 year ago

Thanks !

Would you be able to post your ffmpeg_options.txt and media-autobuild_suite.ini for a working build, so I can try to have one too ?

Cheers

waldonnis commented 1 year ago

I don't usually compile with vulkan, but one of my older configs that included vulkan was using shaderc rather than glslang...and that seemed to compile fine as of yesterday. Worth a shot. Better yet, if you don't use glslang, shaderc, libplacebo, or Vulkan filters with ffmpeg (or mpv with the Vulkan backend/libplacebo), then just disable all of that stuff and save some compilation/download time.

It's probably better to not post my configs, since it's likely that I disable things others use frequently and enable a few things that most people wouldn't use at all. It would end up being more confusing than useful, honestly, as my current config is somewhat lean and doesn't include some pretty popular video encoder support in ffmpeg. I need to use the standalone encoder binaries (e.g. x265) for most of my encoding tasks rather than ffmpeg's library interfaces (e.g. libx265) for a few reasons I won't get into, so I often disable support for those encoders in my ffmpeg config since I never really use them.

hydra3333 commented 1 year ago

OK. OK, here's my options which works now. I had to use --disable-libplacebo. media-autobuild_suite.ini.txt ffmpeg_options.txt

LigH-de commented 1 year ago

Mine worked with quite everything enabled, non-free license.

media-autobuild_suite.ini.txt ffmpeg_options.txt

ffmpeg requires the dovi.dll when dovi is enabled, and the libopenh264.dll when openh264 is enabled.

Interestingly, the ffmpeg configuration string does not list dovi, yet the dovi.dll is reported missing when not present.

configuration: --pkg-config=pkgconf --cc='ccache gcc' --cxx='ccache g++' --ld='ccache g++' --extra-cxxflags=-fpermissive --extra-cflags=-Wno-int-conversion --disable-autodetect --enable-amf --enable-bzlib --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-iconv --enable-lzma --enable-nvenc --enable-zlib --enable-sdl2 --enable-ffnvcodec --enable-nvdec --enable-cuda-llvm --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libdav1d --enable-libaom --disable-debug --enable-libfdk-aac --enable-fontconfig --enable-libass --enable-libbluray --enable-libfreetype --enable-libmfx --enable-libmysofa --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwebp --enable-libxml2 --enable-libzimg --enable-libshine --enable-gpl --enable-avisynth --enable-libxvid --enable-libopenmpt --enable-version3 --enable-librav1e --enable-libsrt --enable-libgsm --enable-libvmaf --enable-libsvtav1 --enable-chromaprint --enable-decklink --enable-frei0r --enable-libaribb24 --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfribidi --enable-libgme --enable-libilbc --enable-libsvthevc --enable-libsvtvp9 --enable-libkvazaar --enable-libmodplug --enable-librist --enable-librtmp --enable-librubberband --enable-libtesseract --enable-libxavs --enable-libzmq --enable-libzvbi --enable-openal --enable-libcodec2 --enable-ladspa --enable-libglslang --enable-vulkan --enable-libdavs2 --enable-libxavs2 --enable-libuavs3d --enable-libplacebo --enable-libjxl --enable-opencl --enable-opengl --enable-libopenh264 --enable-openssl --extra-cflags=-DLIBTWOLAME_STATIC --extra-libs=-lstdc++ --extra-cflags=-DCACA_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCHROMAPRINT_NODLL --extra-libs=-lstdc++ --extra-cflags=-DZMQ_STATIC --extra-libs=-lpsapi --extra-cflags=-DLIBXML_STATIC --extra-libs=-liconv --disable-w32threads --extra-cflags=-DKVZ_STATIC_LIB --enable-nonfree --extra-cflags=-DAL_LIBTYPE_STATIC --extra-cflags='-IG:/MABS/local64/include' --extra-cflags='-IG:/MABS/local64/include/AL'

waldonnis commented 1 year ago

ffmpeg requires the dovi.dll when dovi is enabled, and the libopenh264.dll when openh264 is enabled. Interestingly, the ffmpeg configuration string does not list dovi, yet the dovi.dll is reported missing when not present.

That's probably coming from libplacebo, and I'm not sure what's going on with the linking with the dovi dynamic lib (probably a pkgconfig file issue). Adding that to the list of stuff to check into since I'm already looking at something else with libplacebo.

After a quick glance at libplacebo's code, it looks like libdovi is required for Dolby Vision RPU parsing/reshaping, so without it, dovi handling is seemingly largely ignored (again, quick glance, so I may have missed something). If that's not too useful to you for the immediate future, you can probably disable libdovi support when configuring libplacebo to eliminate that hard dependency until it can be addressed.