snes9xgit / snes9x

Snes9x - Portable Super Nintendo Entertainment System (TM) emulator
http://www.snes9x.com
Other
2.65k stars 457 forks source link

Debian Sid build failures #649

Closed davidheitman closed 4 years ago

davidheitman commented 4 years ago

This has been happening for some time, just got around to getting back to it. Getting linker failures building latest master on Debian Sid.

[1/1] Linking target snes9x-gtk FAILED: snes9x-gtk c++ -o snes9x-gtk snes9x-gtk.p/meson-generated_.._gtk_snes9x_ui.cpp.o snes9x-gtk.p/src_gtk_display_driver_opengl.cpp.o snes9x-gtk.p/src_gtk_glx_context.cpp.o snes9x-gtk.p/.._shaders_glsl.cpp.o snes9x-gtk.p/.._shaders_shader_helpers.cpp.o snes9x-gtk.p/src_gtk_shader_parameters.cpp.o snes9x-gtk.p/.._shaders_slang.cpp.o snes9x-gtk.p/.._shaders_SPIRV-Cross_spirv_cfg.cpp.o snes9x-gtk.p/.._shaders_SPIRV-Cross_spirv_cross.cpp.o snes9x-gtk.p/.._shaders_SPIRV-Cross_spirv_glsl.cpp.o snes9x-gtk.p/.._shaders_SPIRV-Cross_spirv_cross_parsed_ir.cpp.o snes9x-gtk.p/.._shaders_SPIRV-Cross_spirv_parser.cpp.o snes9x-gtk.p/src_gtk_wayland_egl_context.cpp.o snes9x-gtk.p/src_gtk_display_driver_xv.cpp.o snes9x-gtk.p/src_gtk_sound_driver_portaudio.cpp.o snes9x-gtk.p/src_gtk_sound_driver_oss.cpp.o snes9x-gtk.p/src_gtk_sound_driver_alsa.cpp.o snes9x-gtk.p/src_gtk_sound_driver_pulse.cpp.o snes9x-gtk.p/.._filter_hq2x.cpp.o snes9x-gtk.p/.._filter_xbrz.cpp.o snes9x-gtk.p/src_filter_xbrz.cpp.o snes9x-gtk.p/.._filter_2xsai.cpp.o snes9x-gtk.p/.._filter_epx.cpp.o snes9x-gtk.p/src_filter_epx_unsafe.cpp.o snes9x-gtk.p/src_gtk_binding.cpp.o snes9x-gtk.p/src_gtk_cheat.cpp.o snes9x-gtk.p/src_gtk_config.cpp.o snes9x-gtk.p/src_gtk_control.cpp.o snes9x-gtk.p/src_gtk_display.cpp.o snes9x-gtk.p/src_gtk_display_driver_gtk.cpp.o snes9x-gtk.p/src_gtk_file.cpp.o snes9x-gtk.p/src_gtk_builder_window.cpp.o snes9x-gtk.p/src_gtk_preferences.cpp.o snes9x-gtk.p/src_gtk_s9x.cpp.o snes9x-gtk.p/src_gtk_s9xwindow.cpp.o snes9x-gtk.p/src_gtk_sound.cpp.o snes9x-gtk.p/src_gtk_splash.cpp.o snes9x-gtk.p/.._filter_snes_ntsc.c.o snes9x-gtk.p/src_gtk_sound_driver_sdl.cpp.o snes9x-gtk.p/.._fxinst.cpp.o snes9x-gtk.p/.._fxemu.cpp.o snes9x-gtk.p/.._fxdbg.cpp.o snes9x-gtk.p/.._c4.cpp.o snes9x-gtk.p/.._c4emu.cpp.o snes9x-gtk.p/.._apu_apu.cpp.o snes9x-gtk.p/.._apu_bapu_dsp_sdsp.cpp.o snes9x-gtk.p/.._apu_bapu_smp_smp.cpp.o snes9x-gtk.p/.._apu_bapu_smp_smp_state.cpp.o snes9x-gtk.p/.._msu1.cpp.o snes9x-gtk.p/.._dsp.cpp.o snes9x-gtk.p/.._dsp1.cpp.o snes9x-gtk.p/.._dsp2.cpp.o snes9x-gtk.p/.._dsp3.cpp.o snes9x-gtk.p/.._dsp4.cpp.o snes9x-gtk.p/.._spc7110.cpp.o snes9x-gtk.p/.._obc1.cpp.o snes9x-gtk.p/.._seta.cpp.o snes9x-gtk.p/.._seta010.cpp.o snes9x-gtk.p/.._seta011.cpp.o snes9x-gtk.p/.._seta018.cpp.o snes9x-gtk.p/.._controls.cpp.o snes9x-gtk.p/.._crosshairs.cpp.o snes9x-gtk.p/.._cpu.cpp.o snes9x-gtk.p/.._sa1.cpp.o snes9x-gtk.p/.._debug.cpp.o snes9x-gtk.p/.._sdd1.cpp.o snes9x-gtk.p/.._tile.cpp.o snes9x-gtk.p/.._tileimpl-n1x1.cpp.o snes9x-gtk.p/.._tileimpl-n2x1.cpp.o snes9x-gtk.p/.._tileimpl-h2x1.cpp.o snes9x-gtk.p/.._srtc.cpp.o snes9x-gtk.p/.._gfx.cpp.o snes9x-gtk.p/.._memmap.cpp.o snes9x-gtk.p/.._clip.cpp.o snes9x-gtk.p/.._ppu.cpp.o snes9x-gtk.p/.._dma.cpp.o snes9x-gtk.p/.._snes9x.cpp.o snes9x-gtk.p/.._globals.cpp.o snes9x-gtk.p/.._stream.cpp.o snes9x-gtk.p/.._conffile.cpp.o snes9x-gtk.p/.._bsx.cpp.o snes9x-gtk.p/.._logger.cpp.o snes9x-gtk.p/.._snapshot.cpp.o snes9x-gtk.p/.._screenshot.cpp.o snes9x-gtk.p/.._movie.cpp.o snes9x-gtk.p/.._statemanager.cpp.o snes9x-gtk.p/.._sha256.cpp.o snes9x-gtk.p/.._bml.cpp.o snes9x-gtk.p/.._cpuops.cpp.o snes9x-gtk.p/.._cpuexec.cpp.o snes9x-gtk.p/.._sa1cpu.cpp.o snes9x-gtk.p/.._cheats.cpp.o snes9x-gtk.p/.._cheats2.cpp.o snes9x-gtk.p/.._sdd1emu.cpp.o snes9x-gtk.p/.._netplay.cpp.o snes9x-gtk.p/.._server.cpp.o snes9x-gtk.p/.._loadzip.cpp.o snes9x-gtk.p/src_gtk_netplay_dialog.cpp.o snes9x-gtk.p/src_gtk_netplay.cpp.o snes9x-gtk.p/src_background_particles.cpp.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group libjma.a /usr/lib/x86_64-linux-gnu/libSDL2.so /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so /usr/lib/x86_64-linux-gnu/libatkmm-1.6.so /usr/lib/x86_64-linux-gnu/libgdkmm-3.0.so /usr/lib/x86_64-linux-gnu/libgiomm-2.4.so /usr/lib/x86_64-linux-gnu/libpangomm-1.4.so /usr/lib/x86_64-linux-gnu/libglibmm-2.4.so /usr/lib/x86_64-linux-gnu/libgtk-3.so /usr/lib/x86_64-linux-gnu/libgdk-3.so /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /usr/lib/x86_64-linux-gnu/libpango-1.0.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libatk-1.0.so /usr/lib/x86_64-linux-gnu/libcairo-gobject.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libcairomm-1.0.so /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libsigc-2.0.so /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libgthread-2.0.so -pthread -lX11 -lXext -ldl /usr/lib/x86_64-linux-gnu/libXrandr.so /usr/lib/x86_64-linux-gnu/libepoxy.so -lglslang -lHLSL -lSPIRV -lOSDependent -lOGLCompiler -lSPVRemapper /usr/lib/x86_64-linux-gnu/libwayland-egl.so /usr/lib/x86_64-linux-gnu/libwayland-client.so /usr/lib/x86_64-linux-gnu/libXv.so /usr/lib/x86_64-linux-gnu/libportaudio.so /usr/lib/x86_64-linux-gnu/libasound.so -lm -lpthread /usr/lib/x86_64-linux-gnu/libpulse.so /usr/lib/x86_64-linux-gnu/libpng16.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libminizip.so -Wl,--end-group '-Wl,-rpath,$ORIGIN/' -Wl,-rpath-link,/home/loucipher/repos/snes9x/gtk/build/ /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): in function glslang::SpirvToolsDisassemble(std::ostream&, std::vector<unsigned int, std::allocator<unsigned int> > const&)': (.text+0x426): undefined reference tospvContextCreate' /usr/bin/ld: (.text+0x457): undefined reference to spvBinaryToText' /usr/bin/ld: (.text+0x466): undefined reference tospvDiagnosticPrint' /usr/bin/ld: (.text+0x470): undefined reference to spvDiagnosticDestroy' /usr/bin/ld: (.text+0x478): undefined reference tospvContextDestroy' /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): in function glslang::SpirvToolsLegalize(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator<unsigned int> >&, spv::SpvBuildLogger*, glslang::SpvOptions const*)': (.text+0x52b): undefined reference tospvtools::Optimizer::Optimizer(spv_target_env)' /usr/bin/ld: (.text+0x557): undefined reference to spvtools::Optimizer::SetMessageConsumer(std::function<void (spv_message_level_t, char const*, spv_position_t const&, char const*)>)' /usr/bin/ld: (.text+0x585): undefined reference tospvtools::CreateWrapOpKillPass()' /usr/bin/ld: (.text+0x590): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x598): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x5a0): undefined reference to spvtools::CreateDeadBranchElimPass()' /usr/bin/ld: (.text+0x5ab): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x5b3): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x5bb): undefined reference tospvtools::CreateMergeReturnPass()' /usr/bin/ld: (.text+0x5c6): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x5ce): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x5d6): undefined reference to spvtools::CreateInlineExhaustivePass()' /usr/bin/ld: (.text+0x5e1): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x5e9): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x5f1): undefined reference tospvtools::CreateEliminateDeadFunctionsPass()' /usr/bin/ld: (.text+0x5fc): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x604): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x611): undefined reference to spvtools::CreateScalarReplacementPass(unsigned int)' /usr/bin/ld: (.text+0x61c): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x624): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x62c): undefined reference tospvtools::CreateLocalAccessChainConvertPass()' /usr/bin/ld: (.text+0x637): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x63f): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x647): undefined reference to spvtools::CreateLocalSingleBlockLoadStoreElimPass()' /usr/bin/ld: (.text+0x652): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x65a): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x662): undefined reference tospvtools::CreateLocalSingleStoreElimPass()' /usr/bin/ld: (.text+0x66d): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x675): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x67d): undefined reference to spvtools::CreateSimplificationPass()' /usr/bin/ld: (.text+0x688): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x690): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x698): undefined reference tospvtools::CreateAggressiveDCEPass()' /usr/bin/ld: (.text+0x6a3): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x6ab): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x6b3): undefined reference to spvtools::CreateVectorDCEPass()' /usr/bin/ld: (.text+0x6be): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x6c6): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x6ce): undefined reference tospvtools::CreateDeadInsertElimPass()' /usr/bin/ld: (.text+0x6d9): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x6e1): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x6e9): undefined reference to spvtools::CreateAggressiveDCEPass()' /usr/bin/ld: (.text+0x6f4): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x6fc): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x704): undefined reference tospvtools::CreateDeadBranchElimPass()' /usr/bin/ld: (.text+0x70f): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x717): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x71f): undefined reference to spvtools::CreateBlockMergePass()' /usr/bin/ld: (.text+0x72a): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x732): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x73a): undefined reference tospvtools::CreateLocalMultiStoreElimPass()' /usr/bin/ld: (.text+0x745): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x74d): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x755): undefined reference to spvtools::CreateIfConversionPass()' /usr/bin/ld: (.text+0x760): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x768): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x770): undefined reference tospvtools::CreateSimplificationPass()' /usr/bin/ld: (.text+0x77b): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x783): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x78b): undefined reference to spvtools::CreateAggressiveDCEPass()' /usr/bin/ld: (.text+0x796): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x79e): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x7a6): undefined reference tospvtools::CreateVectorDCEPass()' /usr/bin/ld: (.text+0x7b1): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x7b9): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x7c1): undefined reference to spvtools::CreateDeadInsertElimPass()' /usr/bin/ld: (.text+0x7cc): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x7d4): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x7e7): undefined reference tospvtools::CreateAggressiveDCEPass()' /usr/bin/ld: (.text+0x7f2): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x7fa): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x802): undefined reference to spvtools::CreateCFGCleanupPass()' /usr/bin/ld: (.text+0x80d): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x815): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x824): undefined reference tospvOptimizerOptionsCreate' /usr/bin/ld: (.text+0x83d): undefined reference to spvtools::Optimizer::SetTargetEnv(spv_target_env)' /usr/bin/ld: (.text+0x847): undefined reference tospvOptimizerOptionsSetRunValidator' /usr/bin/ld: (.text+0x864): undefined reference to spvtools::Optimizer::Run(unsigned int const*, unsigned long, std::vector<unsigned int, std::allocator<unsigned int> >*, spv_optimizer_options_t*) const' /usr/bin/ld: (.text+0x86c): undefined reference tospvOptimizerOptionsDestroy' /usr/bin/ld: (.text+0x874): undefined reference to spvtools::Optimizer::~Optimizer()' /usr/bin/ld: (.text+0x8a4): undefined reference tospvtools::CreatePropagateLineInfoPass()' /usr/bin/ld: (.text+0x8af): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x8b7): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x8c4): undefined reference to spvtools::CreateRedundantLineInfoElimPass()' /usr/bin/ld: (.text+0x8cf): undefined reference tospvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x8d7): undefined reference to spvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: (.text+0x8e4): undefined reference tospvtools::CreateRedundancyEliminationPass()' /usr/bin/ld: (.text+0x8ef): undefined reference to spvtools::Optimizer::RegisterPass(spvtools::Optimizer::PassToken&&)' /usr/bin/ld: (.text+0x8f7): undefined reference tospvtools::Optimizer::PassToken::~PassToken()' /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libSPIRV.a(SpvTools.cpp.o): in function glslang::SpirvToolsValidate(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator<unsigned int> >&, spv::SpvBuildLogger*, bool)': (.text+0x94e): undefined reference tospvContextCreate' /usr/bin/ld: (.text+0x978): undefined reference to spvValidatorOptionsCreate' /usr/bin/ld: (.text+0x98b): undefined reference tospvValidatorOptionsSetRelaxBlockLayout' /usr/bin/ld: (.text+0x996): undefined reference to spvValidatorOptionsSetBeforeHlslLegalization' /usr/bin/ld: (.text+0x9ab): undefined reference tospvValidateWithOptions' /usr/bin/ld: (.text+0xb5c): undefined reference to spvValidatorOptionsDestroy' /usr/bin/ld: (.text+0xb66): undefined reference tospvDiagnosticDestroy' /usr/bin/ld: (.text+0xb6e): undefined reference to `spvContextDestroy' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed

bearoso commented 4 years ago

Debian is including the optimizer in glslang, which needs spirv-tools. As of e26649c we now just include our own copy.