SDL: cmake: the OS/2 emx toolchain limits shared library names to 8.3

From 4c2d9014afda49553c76f7045529207bb593f9b5 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Thu, 1 Oct 2026 23:56:50 +0300
Subject: [PATCH] cmake: the OS/2 emx toolchain limits shared library names to
 8.3

And also gives no lib prefix to static libraries
---
 .github/workflows/create-test-plan.py |  3 ++-
 cmake/test/CMakeLists.txt             | 14 ++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/create-test-plan.py b/.github/workflows/create-test-plan.py
index 5af85c8ab6c0a..7ff6e54706be7 100755
--- a/.github/workflows/create-test-plan.py
+++ b/.github/workflows/create-test-plan.py
@@ -145,6 +145,7 @@ class JobSpec:
 class StaticLibType(Enum):
     MSVC = "SDL2-static.lib"
     A = "libSDL2.a"
+    A_NOLIB = "SDL2.a"
 
 
 class SharedLibType(Enum):
@@ -671,7 +672,7 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta
             job.cmake_toolchain_file = "$OS2EMX_CMAKE_TOOLCHAIN_FILE"
             job.sudo = ""
             job.shared_lib = SharedLibType.WIN32
-            #job.static_lib = StaticLibType.A
+            job.static_lib = StaticLibType.A_NOLIB
         case _:
             raise ValueError(f"Unsupported platform={spec.platform}")
 
diff --git a/cmake/test/CMakeLists.txt b/cmake/test/CMakeLists.txt
index 6ba4cde9ae959..4fbf6c769c2b6 100644
--- a/cmake/test/CMakeLists.txt
+++ b/cmake/test/CMakeLists.txt
@@ -16,6 +16,11 @@ if(ANDROID)
     endmacro()
 endif()
 
+set(shlib_name83 FALSE)
+if(OS2)
+    set(shlib_name83 TRUE)
+endif()
+
 cmake_policy(SET CMP0074 NEW)
 
 # Override CMAKE_FIND_ROOT_PATH_MODE to allow search for SDL2 outside of sysroot
@@ -67,6 +72,9 @@ if(TEST_SHARED)
     generate_export_header(sharedlib-shared EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
     target_compile_definitions(sharedlib-shared PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-shared_export.h\"")
     set_target_properties(sharedlib-shared PROPERTIES C_VISIBILITY_PRESET "hidden")
+    if(shlib_name83)
+        set_property(TARGET sharedlib-shared PROPERTY OUTPUT_NAME "shlsh")
+    endif()
 
     add_executable(gui-shared-vars WIN32 main_gui.c)
     target_link_libraries(gui-shared-vars PRIVATE ${SDL2_LIBRARIES})
@@ -94,6 +102,9 @@ if(TEST_SHARED)
     generate_export_header(sharedlib-shared-vars EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
     target_compile_definitions(sharedlib-shared-vars PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-shared-vars_export.h\"")
     set_target_properties(sharedlib-shared-vars PROPERTIES C_VISIBILITY_PRESET "hidden")
+    if(shlib_name83)
+        set_property(TARGET sharedlib-shared-vars PROPERTY OUTPUT_NAME "shlbshvr")
+    endif()
 
     if(TEST_TEST)
         add_executable(sdltest-shared sdltest.c)
@@ -125,6 +136,9 @@ if(TEST_STATIC)
         generate_export_header(sharedlib-static EXPORT_MACRO_NAME MYLIBRARY_EXPORT)
         target_compile_definitions(sharedlib-static PRIVATE "EXPORT_HEADER=\"${CMAKE_CURRENT_BINARY_DIR}/sharedlib-static_export.h\"")
         set_target_properties(sharedlib-static PROPERTIES C_VISIBILITY_PRESET "hidden")
+        if(shlib_name83)
+            set_property(TARGET sharedlib-static PROPERTY OUTPUT_NAME "shlstatc")
+        endif()
     endif()
 
     add_executable(gui-static-vars WIN32 main_gui.c)