[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1031230: spirv-tools: autopkgtest regression for glslang: undefined reference to spvtools::CreateAggressiveDCEPass etc.



Package: spirv-tools
Version: 2023.1-1
Severity: serious
Justification: https://release.debian.org/testing/rc_policy.txt 6a
User: debian-ci@lists.debian.org
Usertags: regression
X-Debbugs-Cc: debian-ci@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 to: