Since glslang 14.0.0, OGLCompiler and HLSL stub libraries have been fully removed from the build. This fixes the configuration by detecting if the stub libraries are still present (glslang releases before version 14.0.0). ffbuild/config.log: /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lOSDependent: No such file or directory /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lHLSL: No such file or directory /usr/lib/gcc/x86_64-pc-linux-gnu/13/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lOGLCompiler: No such file or directory Addresses https://trac.ffmpeg.org/ticket/10713 See https://bugs.gentoo.org/show_bug.cgi?id=918989 Should fix https://ffmpeg.org/pipermail/ffmpeg-devel/2023-August/313666.html Signed-off-by: Matthew White --- configure | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/configure b/configure index c8ae0a061d..abff488dc0 100755 --- a/configure +++ b/configure @@ -2626,6 +2626,7 @@ CMDLINE_SET=" ignore_tests install ld + libglslang_ldflags ln_s logfile malloc_prefix @@ -6652,6 +6653,24 @@ if enabled_all libglslang libshaderc; then die "ERROR: libshaderc and libglslang are mutually exclusive, if in doubt, disable libglslang" fi +if enabled libglslang; then + if [ -x "$(command -v glslang)" ]; then + # https://github.com/KhronosGroup/glslang + # commit 6be56e45e574b375d759b89dad35f780bbd4792f: Remove `OGLCompiler` and `HLSL` stub libraries from build + # StandAlone/StandAlone.cpp: "SpirvGeneratorVersion:GLSLANG_VERSION_MAJOR.GLSLANG_VERSION_MINOR.GLSLANG_VERSION_PATCH GLSLANG_VERSION_FLAVOR" + glslang_version="$(glslang -dumpversion)" + glslang_major="${glslang_version%%.*}" + glslang_major="${glslang_major#*:}" + if test ${glslang_major} -le 13; then + libglslang_ldflags=" -lOSDependent -lHLSL -lOGLCompiler" + elif ! [[ ${glslang_major} =~ ^[0-9]+$ ]]; then + die "ERROR: glslang's computed major version isn't a number: '${glslang_major}'" + fi + else + die "ERROR: glslang binary not found, impossible to determine installed glslang's version" + fi +fi + check_cpp_condition winrt windows.h "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)" if ! disabled w32threads && ! enabled pthreads; then @@ -6771,10 +6790,10 @@ enabled libfreetype && require_pkg_config libfreetype freetype2 "ft2build. enabled libfribidi && require_pkg_config libfribidi fribidi fribidi.h fribidi_version_info enabled libharfbuzz && require_pkg_config libharfbuzz harfbuzz hb.h hb_buffer_create enabled libglslang && { check_lib spirv_compiler glslang/Include/glslang_c_interface.h glslang_initialize_process \ - -lglslang -lMachineIndependent -lOSDependent -lHLSL -lOGLCompiler -lGenericCodeGen \ + -lglslang -lMachineIndependent "${libglslang_ldflags}" -lGenericCodeGen \ -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lstdc++ -lm || require spirv_compiler glslang/Include/glslang_c_interface.h glslang_initialize_process \ - -lglslang -lOSDependent -lHLSL -lOGLCompiler \ + -lglslang "${libglslang_ldflags}" \ -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lstdc++ -lm; } enabled libgme && { check_pkg_config libgme libgme gme/gme.h gme_new_emu || require libgme gme/gme.h gme_new_emu -lgme -lstdc++; } -- 2.43.0