Files
main/x11/vulkan/glslang/files/fix_spirv_backcompat.patch
2025-04-14 13:23:38 +03:00

64 lines
2.0 KiB
Diff

From 0018771b46c492e28ca916b00eda96093381a3b2 Mon Sep 17 00:00:00 2001
From: Juan Ramos <github@jpr.mozmail.com>
Date: Sat, 1 Mar 2025 10:55:31 -0800
Subject: [PATCH] Fix spirv backcompat
closes #3882
---
SPIRV/CMakeLists.txt | 5 ++---
glslang/stub.cpp | 20 +++++++++++++++++---
2 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
index 4b3ec1e3d5..d746839a80 100644
--- a/SPIRV/CMakeLists.txt
+++ b/SPIRV/CMakeLists.txt
@@ -91,6 +91,7 @@ set_target_properties(SPIRV PROPERTIES
target_include_directories(SPIRV PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+glslang_only_export_explicit_symbols(SPIRV)
if (ENABLE_SPVREMAPPER)
add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
@@ -128,9 +129,7 @@ if(GLSLANG_ENABLE_INSTALL)
install(TARGETS SPVRemapper EXPORT glslang-targets)
endif()
- if (NOT BUILD_SHARED_LIBS)
- install(TARGETS SPIRV EXPORT glslang-targets)
- endif()
+ install(TARGETS SPIRV EXPORT glslang-targets)
install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
endif()
diff --git a/glslang/stub.cpp b/glslang/stub.cpp
index b9aec6d15e..9c286fb909 100644
--- a/glslang/stub.cpp
+++ b/glslang/stub.cpp
@@ -32,6 +32,20 @@
// POSSIBILITY OF SUCH DAMAGE.
//
-// This empty source file exists to support building stubbed versions of
-// deprecated libraries which have been integrated into the main glslang
-// library. It should be deleted once the stub libraries are fully removed.
+#ifdef GLSLANG_IS_SHARED_LIBRARY
+#ifdef _WIN32
+#ifdef GLSLANG_EXPORTING
+#define STUB_EXPORT __declspec(dllexport)
+#else
+#define STUB_EXPORT __declspec(dllimport)
+#endif
+#endif
+#endif // GLSLANG_IS_SHARED_LIBRARY
+
+#ifndef STUB_EXPORT
+#define STUB_EXPORT
+#endif
+
+// Force stub library to export function to preserve backcompat.
+// https://github.com/KhronosGroup/glslang/issues/3882
+STUB_EXPORT int stub_library_function() { return 0; }