Package: spirv-tools Version: 2023.1-1 Severity: serious Justification: https://release.debian.org/testing/rc_policy.txt 6a User: debian...@lists.debian.org Usertags: regression X-Debbugs-Cc: debian...@lists.debian.org Control: affects -1 + src:glslang
The test-case debian/tests/glslang-dev that I contributed in glslang_11.1.0-4 has started failing with the upload of spirv-tools_2023.1-1, or possibly 2022.4+1.3.236.0-1: > + pkg-config --cflags --libs glslang > + g++ -std=c++11 -o trivial trivial.cpp -lglslang -lMachineIndependent > -lOSDependent -lHLSL -lOGLCompiler -lGenericCodeGen -lSPVRemapper -lpthread > + test -x trivial > + ./trivial > + pkg-config --cflags --libs spirv > + g++ -std=c++11 -o spirv spirv.cpp -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools > -lSPIRV-Tools-link -lglslang -lMachineIndependent -lOSDependent -lHLSL > -lOGLCompiler -lGenericCodeGen -lSPVRemapper -lpthread > /usr/bin/ld: > /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): > in function `glslang::SpirvToolsTransform(glslang::TIntermediate const&, > std::vector<unsigned int, std::allocator<unsigned int> >&, > spv::SpvBuildLogger*, glslang::SpvOptions const*)': > (.text+0x689): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' > /usr/bin/ld: (.text+0x6de): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' > /usr/bin/ld: (.text+0x784): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' > /usr/bin/ld: (.text+0x7ff): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' > /usr/bin/ld: (.text+0x8ef): undefined reference to > `spvtools::CreateEliminateDeadInputComponentsSafePass()' > /usr/bin/ld: > /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): > in function `glslang::SpirvToolsAnalyzeDeadOutputStores(spv_target_env, > std::vector<unsigned int, std::allocator<unsigned int> >&, > std::unordered_set<unsigned int, std::hash<unsigned int>, > std::equal_to<unsigned int>, std::allocator<unsigned int> >*, > std::unordered_set<unsigned int, std::hash<unsigned int>, > std::equal_to<unsigned int>, std::allocator<unsigned int> >*, > spv::SpvBuildLogger*)': > (.text+0x9b1): undefined reference to > `spvtools::CreateAnalyzeLiveInputPass(std::unordered_set<unsigned int, > std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<unsigned > int> >*, std::unordered_set<unsigned int, std::hash<unsigned int>, > std::equal_to<unsigned int>, std::allocator<unsigned int> >*)' > /usr/bin/ld: > /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): > in function `glslang::SpirvToolsEliminateDeadOutputStores(spv_target_env, > std::vector<unsigned int, std::allocator<unsigned int> >&, > std::unordered_set<unsigned int, std::hash<unsigned int>, > std::equal_to<unsigned int>, std::allocator<unsigned int> >*, > std::unordered_set<unsigned int, std::hash<unsigned int>, > std::equal_to<unsigned int>, std::allocator<unsigned int> >*, > spv::SpvBuildLogger*)': > (.text+0xae1): undefined reference to > `spvtools::CreateEliminateDeadOutputStoresPass(std::unordered_set<unsigned > int, std::hash<unsigned int>, std::equal_to<unsigned int>, > std::allocator<unsigned int> >*, std::unordered_set<unsigned int, > std::hash<unsigned int>, std::equal_to<unsigned int>, std::allocator<unsigned > int> >*)' > /usr/bin/ld: (.text+0xb03): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' > /usr/bin/ld: (.text+0xb1e): undefined reference to > `spvtools::CreateEliminateDeadOutputComponentsPass()' > /usr/bin/ld: (.text+0xb40): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' > /usr/bin/ld: > /usr/lib/gcc/x86_64-linux-gnu/12/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): > in function `glslang::SpirvToolsEliminateDeadInputComponents(spv_target_env, > std::vector<unsigned int, std::allocator<unsigned int> >&, > spv::SpvBuildLogger*)': > (.text+0xc80): undefined reference to > `spvtools::CreateAggressiveDCEPass(bool, bool)' I think probably this means that SPIRV-Tools.pc is missing some libraries, similar to #951988 but for spirv-tools rather than glslang? Adding an autopkgtest to spirv-tools and running it before upload might be a helpful way to catch similar issues. smcv