﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
20470	libplacebo FTBFS with glslang-15.0.0	Douglas R. Reno	Douglas R. Reno	"I needed to install libplacebo so I could build the new MPV, and I ran into the following build error:

[161/168] Linking target src/tests/test.string.c

FAILED: src/tests/test.string.c 
c++  -o src/tests/test.string.c src/libplacebo.so.349.p/cache.c.o src/libplacebo.so.349.p/colorspace.c.o src/libplacebo.so.349.p/common.c.o src/libplacebo.so.349.p/convert.cc.o src/libplacebo.so.349.p/dither.c.o src/libplacebo.so.349.p/dispatch.c.o src/libplacebo.so.349.p/dummy.c.o src/libplacebo.so.349.p/filters.c.o src/libplacebo.so.349.p/format.c.o src/libplacebo.so.349.p/gamut_mapping.c.o src/libplacebo.so.349.p/glsl_spirv.c.o src/libplacebo.so.349.p/gpu.c.o src/libplacebo.so.349.p/gpu_utils.c.o src/libplacebo.so.349.p/log.c.o src/libplacebo.so.349.p/options.c.o src/libplacebo.so.349.p/pl_alloc.c.o src/libplacebo.so.349.p/pl_string.c.o src/libplacebo.so.349.p/swapchain.c.o src/libplacebo.so.349.p/tone_mapping.c.o src/libplacebo.so.349.p/utils_dolbyvision.c.o src/libplacebo.so.349.p/utils_frame_queue.c.o src/libplacebo.so.349.p/utils_upload.c.o src/libplacebo.so.349.p/glsl_glslang.cc.o src/libplacebo.so.349.p/glsl_glslang_resources.c.o src/libplacebo.so.349.p/glsl_spirv_glslang.c.o src/libplacebo.so.349.p/opengl_context.c.o src/libplacebo.so.349.p/opengl_formats.c.o src/libplacebo.so.349.p/opengl_loader_gl.c.o src/libplacebo.so.349.p/opengl_loader_egl.c.o src/libplacebo.so.349.p/opengl_gpu.c.o src/libplacebo.so.349.p/opengl_gpu_tex.c.o src/libplacebo.so.349.p/opengl_gpu_pass.c.o src/libplacebo.so.349.p/opengl_swapchain.c.o src/libplacebo.so.349.p/opengl_utils.c.o src/libplacebo.so.349.p/vulkan_command.c.o src/libplacebo.so.349.p/vulkan_context.c.o src/libplacebo.so.349.p/vulkan_formats.c.o src/libplacebo.so.349.p/vulkan_gpu.c.o src/libplacebo.so.349.p/vulkan_gpu_buf.c.o src/libplacebo.so.349.p/vulkan_gpu_tex.c.o src/libplacebo.so.349.p/vulkan_gpu_pass.c.o src/libplacebo.so.349.p/vulkan_malloc.c.o src/libplacebo.so.349.p/vulkan_swapchain.c.o src/libplacebo.so.349.p/vulkan_utils.c.o src/libplacebo.so.349.p/meson-generated_.._renderer.c.o src/libplacebo.so.349.p/meson-generated_.._shaders.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_colorspace.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_custom.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_custom_mpv.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_deinterlacing.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_dithering.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_film_grain.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_film_grain_av1.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_film_grain_h274.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_icc.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_lut.c.o src/libplacebo.so.349.p/meson-generated_.._shaders_sampling.c.o src/libplacebo.so.349.p/meson-generated_.._vulkan_utils_gen.c.o src/tests/test.string.c.p/string.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,--exclude-libs=ALL -Wl,--start-group -lm -pthread /usr/lib/libunwind.so -ldl -lglslang-default-resource-limits /usr/lib/libSPIRV.so /usr/lib/libvulkan.so /usr/lib/liblcms2.so -Wl,--end-group
/usr/bin/ld: src/libplacebo.so.349.p/glsl_glslang.cc.o: in function `pl_glslang_init':

glslang.cc:(.text+0x41): undefined reference to `glslang::InitializeProcess()'

/usr/bin/ld: src/libplacebo.so.349.p/glsl_glslang.cc.o: in function `pl_glslang_uninit':

glslang.cc:(.text+0x79): undefined reference to `glslang::FinalizeProcess()'

/usr/bin/ld: src/libplacebo.so.349.p/glsl_glslang.cc.o: in function `pl_glslang_compile':

glslang.cc:(.text+0x105): undefined reference to `glslang::TShader::TShader(EShLanguage)'

/usr/bin/ld: glslang.cc:(.text+0x140): undefined reference to `glslang::TShader::setStrings(char const* const*, int)'

/usr/bin/ld: glslang.cc:(.text+0x1c2): undefined reference to `glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&)'

/usr/bin/ld: glslang.cc:(.text+0x1e1): undefined reference to `glslang::TProgram::TProgram()'

/usr/bin/ld: glslang.cc:(.text+0x216): undefined reference to `glslang::TProgram::link(EShMessages)'

/usr/bin/ld: glslang.cc:(.text+0x25b): undefined reference to `glslang::GlslangToSpv(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator<unsigned int> >&, glslang::SpvOptions*)'

/usr/bin/ld: glslang.cc:(.text+0x2dc): undefined reference to `glslang::TProgram::getInfoLog()'

/usr/bin/ld: glslang.cc:(.text+0x30c): undefined reference to `glslang::TShader::getInfoLog()'

collect2: error: ld returned 1 exit status

I suspect this might be related to some of the cleanup that was done in glslang-15.0.0. I was able to work around it by adding ""cxx.find_library('glslang', required: false)"" to src/glsl/meson.build (and adding a comma at the end of ""cxx.find_library('glslang-default-resource-limits', required: false)""

The following seds will accomplish that:

{{{
sed -i ""20s/$/,/"" src/glsl/meson.build &&
sed -i ""21i cxx.find_library('glslang', required: false)"" src/glsl/meson.build
}}}
"	defect	closed	normal	12.3	BOOK	git	medium	fixed		
