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

Reply via email to