SDL2/sdl2-symvers.patch

359 lines
9.2 KiB
Diff
Raw Normal View History

From: Jan Engelhardt <jengelh@inai.de>
Date: 2018-01-10 23:56:12.245827883 +0100
Should-this-be-upstream: yes
Is-it-upstream: not submitted yet
The SDL project adds new functions over time, but they completely
fail to do the required ABI upkeep - which involves either bumping
the SO number or adding symvers. As a result of their lack of ABI
upkeep, the ELF system has no way to prohibit a too-modern program
being ran against a too-old SDL library, and that leads to bad user
experience, because symbols are resolved lazily and can crash the
program in the middle.
Also note: Leap 15.x has this patch too (in shorter version), so we
need to keep all the individual symvers elements even for games/SDL2.
---
Makefile.in | 2
sdl2.sym | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 320 insertions(+), 1 deletion(-)
Index: SDL2-2.26.0/Makefile.in
===================================================================
--- SDL2-2.26.0.orig/Makefile.in
+++ SDL2-2.26.0/Makefile.in
@@ -136,7 +136,7 @@ LT_AGE = @LT_AGE@
LT_CURRENT = @LT_CURRENT@
LT_RELEASE = @LT_RELEASE@
LT_REVISION = @LT_REVISION@
-LT_LDFLAGS = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+LT_LDFLAGS = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -Wl,--version-script=sdl2.sym
all: $(srcdir)/configure Makefile $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
Index: SDL2-2.26.0/sdl2.sym
===================================================================
--- /dev/null
+++ SDL2-2.26.0/sdl2.sym
@@ -0,0 +1,319 @@
+SUSE_2.0.5 {
+global:
+ SDL_DequeueAudio;
+ SDL_GetHintBoolean;
+ SDL_RenderSetIntegerScale;
+ SDL_CreateRGBSurfaceWithFormat;
+ SDL_CreateRGBSurfaceWithFormatFrom;
+ SDL_GetDisplayUsableBounds;
+ SDL_GetWindowBordersSize;
+ SDL_SetWindowResizable;
+ SDL_SetWindowOpacity;
+ SDL_SetWindowModalFor;
+};
+SUSE_2.0.6 {
+global:
+ SDL_Vulkan_LoadLibrary;
+ SDL_Vulkan_GetVkGetInstanceProcAddr;
+ SDL_Vulkan_GetInstanceExtensions;
+ SDL_Vulkan_CreateSurface;
+ SDL_Vulkan_GetDrawableSize;
+ SDL_Vulkan_UnloadLibrary;
+ SDL_ComposeCustomBlendMode;
+ SDL_HasNEON;
+ SDL_JoystickGetDeviceVendor;
+ SDL_JoystickGetDeviceProduct;
+ SDL_JoystickGetDeviceProductVersion;
+ SDL_JoystickGetDeviceType;
+ SDL_JoystickGetDeviceInstanceID;
+ SDL_JoystickGetVendor;
+ SDL_JoystickGetProduct;
+ SDL_JoystickGetProductVersion;
+ SDL_JoystickGetType;
+ SDL_JoystickGetAxisInitialState;
+ SDL_GameControllerGetVendor;
+ SDL_GameControllerGetProduct;
+ SDL_GameControllerGetProductVersion;
+ SDL_GameControllerNumMappings;
+ SDL_GameControllerMappingForIndex;
+ SDL_LoadFile;
+ SDL_LoadFile_RW;
+ SDL_DuplicateSurface;
+} SUSE_2.0.5;
+SUSE_2.0.7 {
+global:
+ SDL_NewAudioStream;
+ SDL_AudioStreamPut;
+ SDL_AudioStreamGet;
+ SDL_AudioStreamAvailable;
+ SDL_AudioStreamFlush;
+ SDL_AudioStreamClear;
+ SDL_FreeAudioStream;
+ SDL_GetMemoryFunctions;
+ SDL_SetMemoryFunctions;
+ SDL_GetNumAllocations;
+ SDL_LockJoystick;
+ SDL_UnlockJoystick;
+ SDL_SetEventFilter;
+ SDL_GetEventFilter;
+ SDL_AddEventWatch;
+ SDL_DelEventWatch;
+} SUSE_2.0.6;
+SUSE_2.0.8 {
+global:
+ SDL_fmod;
+ SDL_log10;
+ SDL_SetYUVConversionMode;
+ SDL_GetYUVConversionMode;
+} SUSE_2.0.7;
+SUSE_2.0.9 {
+global:
+ SDL_CreateThreadWithStackSize;
+ SDL_GameControllerGetPlayerIndex;
+ SDL_GameControllerMappingForDeviceIndex;
+ SDL_GameControllerRumble;
+ SDL_GetDisplayOrientation;
+ SDL_HasAVX512F;
+ SDL_HasColorKey;
+ SDL_IsTablet;
+ SDL_JoystickGetDevicePlayerIndex;
+ SDL_JoystickGetPlayerIndex;
+ SDL_JoystickRumble;
+ SDL_LinuxSetThreadPriority;
+ SDL_NumSensors;
+ SDL_SensorClose;
+ SDL_SensorFromInstanceID;
+ SDL_SensorGetData;
+ SDL_SensorGetDeviceInstanceID;
+ SDL_SensorGetDeviceName;
+ SDL_SensorGetDeviceNonPortableType;
+ SDL_SensorGetDeviceType;
+ SDL_SensorGetInstanceID;
+ SDL_SensorGetName;
+ SDL_SensorGetNonPortableType;
+ SDL_SensorGetType;
+ SDL_SensorOpen;
+ SDL_SensorUpdate;
+ SDL_exp;
+ SDL_expf;
+ SDL_wcsdup;
+} SUSE_2.0.8;
+SUSE_2.0.10 {
+global:
+ SDL_GetTouchDeviceType;
+ SDL_RWclose;
+ SDL_RWread;
+ SDL_RWseek;
+ SDL_RWsize;
+ SDL_RWtell;
+ SDL_RWwrite;
+ SDL_RenderCopyExF;
+ SDL_RenderCopyF;
+ SDL_RenderDrawLineF;
+ SDL_RenderDrawLinesF;
+ SDL_RenderDrawPointF;
+ SDL_RenderDrawPointsF;
+ SDL_RenderDrawRectF;
+ SDL_RenderDrawRectsF;
+ SDL_RenderFillRectF;
+ SDL_RenderFillRectsF;
+ SDL_RenderFlush;
+ SDL_SIMDAlloc;
+ SDL_SIMDFree;
+ SDL_SIMDGetAlignment;
+} SUSE_2.0.9;
+SUSE_2.0.12 {
+ SDL_HasARMSIMD;
+ SDL_GameControllerTypeForIndex;
+ SDL_GameControllerFromPlayerIndex;
+ SDL_GameControllerGetType;
+ SDL_GameControllerSetPlayerIndex;
+ SDL_JoystickFromPlayerIndex;
+ SDL_JoystickSetPlayerIndex;
+ SDL_Metal_CreateView;
+ SDL_Metal_DestroyView;
+ SDL_SetTextureScaleMode;
+ SDL_GetTextureScaleMode;
+ SDL_LockTextureToSurface;
+ SDL_wcsdup;
+ SDL_wcsstr;
+ SDL_wcsncmp;
+ SDL_strtokr;
+ SDL_GetAndroidSDKVersion;
+ SDL_OnApplicationWillTerminate;
+ SDL_OnApplicationDidReceiveMemoryWarning;
+ SDL_OnApplicationWillResignActive;
+ SDL_OnApplicationDidEnterBackground;
+ SDL_OnApplicationWillEnterForeground;
+ SDL_OnApplicationDidBecomeActive;
+ SDL_OnApplicationDidChangeStatusBarOrientation;
+ SDLTest_CommonUsage;
+} SUSE_2.0.10;
+SUSE_2.0.14 {
+ SDL_SIMDRealloc;
+ SDL_GetErrorMsg;
+ SDL_GameControllerGetSerial;
+ SDL_GameControllerHasAxis;
+ SDL_GameControllerHasButton;
+ SDL_GameControllerGetNumTouchpads;
+ SDL_GameControllerGetNumTouchpadFingers;
+ SDL_GameControllerGetTouchpadFinger;
+ SDL_GameControllerHasSensor;
+ SDL_GameControllerSetSensorEnabled;
+ SDL_GameControllerIsSensorEnabled;
+ SDL_GameControllerGetSensorData;
+ SDL_GameControllerRumbleTriggers;
+ SDL_GameControllerHasLED;
+ SDL_GameControllerSetLED;
+ SDL_JoystickAttachVirtual;
+ SDL_JoystickDetachVirtual;
+ SDL_JoystickDetachVirtual;
+ SDL_JoystickSetVirtualAxis;
+ SDL_JoystickSetVirtualButton;
+ SDL_JoystickSetVirtualHat;
+ SDL_JoystickGetSerial;
+ SDL_JoystickRumbleTriggers;
+ SDL_JoystickHasLED;
+ SDL_JoystickSetLED;
+ SDL_GetPreferredLocales;
+ SDL_Metal_GetLayer;
+ SDL_Metal_GetDrawableSize;
+ SDL_OpenURL;
+ SDL_LockSensors;
+ SDL_UnlockSensors;
+ SDL_crc32;
+ SDL_wcscasecmp;
+ SDL_wcsncasecmp;
+ SDL_trunc;
+ SDL_truncf;
+ SDL_HasSurfaceRLE;
+ SDL_AndroidRequestPermission;
+} SUSE_2.0.12;
+SUSE_2.0.16 {
+ SDL_GetAudioDeviceSpec;
+ SDL_GameControllerGetSensorDataRate;
+ SDL_GameControllerSendEffect;
+ SDL_JoystickSendEffect;
+ SDL_UpdateNVTexture;
+ SDL_isalpha;
+ SDL_isalnum;
+ SDL_isblank;
+ SDL_iscntrl;
+ SDL_isxdigit;
+ SDL_ispunct;
+ SDL_isprint;
+ SDL_isgraph;
+ SDL_round;
+ SDL_roundf;
+ SDL_lround;
+ SDL_lroundf;
+ SDL_SoftStretchLinear;
+ SDL_RenderGetD3D11Device;
+ SDL_AndroidShowToast;
+ SDL_TLSCleanup;
+ SDL_SetWindowAlwaysOnTop;
+ SDL_SetWindowKeyboardGrab;
+ SDL_SetWindowMouseGrab;
+ SDL_GetWindowKeyboardGrab;
+ SDL_GetWindowMouseGrab;
+ SDL_FlashWindow;
+} SUSE_2.0.14;
+SUSE_2.0.18 {
+ SDL_GameControllerHasRumble;
+ SDL_GameControllerHasRumbleTriggers;
+ SDL_GameControllerGetAppleSFSymbolsNameForButton;
+ SDL_GameControllerGetAppleSFSymbolsNameForAxis;
+ SDL_hid_init;
+ SDL_hid_exit;
+ SDL_hid_device_change_count;
+ SDL_hid_enumerate;
+ SDL_hid_free_enumeration;
+ SDL_hid_open;
+ SDL_hid_open_path;
+ SDL_hid_write;
+ SDL_hid_read_timeout;
+ SDL_hid_read;
+ SDL_hid_set_nonblocking;
+ SDL_hid_send_feature_report;
+ SDL_hid_get_feature_report;
+ SDL_hid_close;
+ SDL_hid_get_manufacturer_string;
+ SDL_hid_get_product_string;
+ SDL_hid_get_serial_number_string;
+ SDL_hid_get_indexed_string;
+ SDL_hid_ble_scan;
+ SDL_JoystickHasRumble;
+ SDL_JoystickHasRumbleTriggers;
+ SDL_RegisterApp;
+ SDL_SetTextureUserData;
+ SDL_GetTextureUserData;
+ SDL_RenderWindowToLogical;
+ SDL_RenderLogicalToWindow;
+ SDL_RenderGeometry;
+ SDL_RenderGeometryRaw;
+ SDL_RenderSetVSync;
+ SDL_RWFromFP;
+ SDL_asprintf;
+ SDL_vasprintf;
+ SDL_atan2;
+ SDL_atan2f;
+ SDL_PremultiplyAlpha;
+ SDL_LinuxSetThreadPriorityAndPolicy;
+ SDL_GetTicks64;
+ SDL_GetWindowICCProfile;
+ SDL_SetWindowMouseRect;
+ SDL_GetWindowMouseRect;
+} SUSE_2.0.16;
+SUSE_2.0.22 {
+ SDL_ClearComposition;
+ SDL_IsTextInputShown;
+ SDL_HasIntersectionF;
+ SDL_IntersectFRect;
+ SDL_UnionFRect;
+ SDL_EncloseFPoints;
+ SDL_IntersectFRectAndLine;
+ SDL_RenderGetWindow;
+ SDL_AndroidSendMessage;
+ SDL_GetTouchName;
+} SUSE_2.0.18;
+SUSE_2.24.0 {
+ SDL_GetDefaultAudioInfo;
+ SDL_HasLSX;
+ SDL_HasLASX;
+ SDL_GameControllerPathForIndex;
+ SDL_GameControllerPath;
+ SDL_GameControllerGetFirmwareVersion;
+ SDL_GUIDToString;
+ SDL_GUIDFromString;
+ SDL_ResetHint;
+ SDL_JoystickPathForIndex;
+ SDL_JoystickAttachVirtualEx;
+ SDL_JoystickPath;
+ SDL_JoystickGetFirmwareVersion;
+ SDL_ResetKeyboard;
+ SDL_SetTextInputRect;
+ SDL_GDKRunApp;
+ SDL_GetOriginalMemoryFunctions;
+ SDL_qsort;
+ SDL_bsearch;
+ SDL_crc16;
+ SDL_utf8strnlen;
+ SDL_RenderGetD3D12Device;
+ SDL_iPhoneSetAnimationCallback;
+ SDL_GDKGetTaskQueue;
+ SDL_GetPointDisplayIndex;
+ SDL_GetRectDisplayIndex;
+} SUSE_2.0.22;
+SUSE_2.26.0 {
+ SDL_SetPrimarySelectionText;
+ SDL_GetPrimarySelectionText;
+ SDL_HasPrimarySelectionText;
+ SDL_GameControllerGetSensorDataWithTimestamp;
+ SDL_ResetHints;
+ SDL_GetJoystickGUIDInfo;
+ SDL_SensorGetData;
+ SDL_SensorGetDataWithTimestamp;
+ SDL_SensorClose;
+ SDL_strcasestr;
+ SDL_GetWindowSizeInPixels;
+} SUSE_2.24.0;