Currently these packages contain only static libs which get "compiled-in" in all their reverse dependencies. According to CMakeLists, these packages can be build as shared libs if BUILD_SHARED_LIBS flag is set while invoking CMake (see glslang script, for spirv-tools the flag is the same).
I've found revdeps of glslang which currently contain copies of glslang code instead of linking to shared lib:
- vulkan-tools
- libplacebo
Also glslang is a dependency of MangoHud (D8365) which could make use of shared library too. Probably there are other revdeps of glslang that I didn't found.
I've tried building shared spirv-tools and glslang locally and rebuilding libplacebo against them - it correctly links to shared libglslang and works as expected (Vulkan renderer in mpv works). I wonder about opinion of Core and / or Globals on this matter - is there a reason why we build these libraries as static and should we switch them to shared?