From 08b2176a803219a596999243c10fc28631dc3e31 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Tue, 6 Jan 2026 06:09:58 -0800
Subject: [PATCH] Fixed conflict when linking both SDL and hidapi statically
Closes https://github.com/libsdl-org/SDL/pull/14772
(cherry picked from commit bc68c1c920f7ae87f2ac1ab03a44b2252ad1864e)
---
src/hidapi/SDL_hidapi.c | 64 +++++++++++++++++++++--------------------
1 file changed, 33 insertions(+), 31 deletions(-)
diff --git a/src/hidapi/SDL_hidapi.c b/src/hidapi/SDL_hidapi.c
index 16e9cacf19382..1151b068989e8 100644
--- a/src/hidapi/SDL_hidapi.c
+++ b/src/hidapi/SDL_hidapi.c
@@ -737,37 +737,39 @@ static SDL_LibUSBContext *libusb_ctx;
struct LIBUSB_hid_device_;
typedef struct LIBUSB_hid_device_ LIBUSB_hid_device;
-#define free_hid_device LIBUSB_free_hid_device
-#define hid_close LIBUSB_hid_close
-#define hid_device LIBUSB_hid_device
-#define hid_device_ LIBUSB_hid_device_
-#define hid_enumerate LIBUSB_hid_enumerate
-#define hid_error LIBUSB_hid_error
-#define hid_exit LIBUSB_hid_exit
-#define hid_free_enumeration LIBUSB_hid_free_enumeration
-#define hid_get_device_info LIBUSB_hid_get_device_info
-#define hid_get_feature_report LIBUSB_hid_get_feature_report
-#define hid_get_indexed_string LIBUSB_hid_get_indexed_string
-#define hid_get_input_report LIBUSB_hid_get_input_report
-#define hid_get_manufacturer_string LIBUSB_hid_get_manufacturer_string
-#define hid_get_product_string LIBUSB_hid_get_product_string
-#define hid_get_report_descriptor LIBUSB_hid_get_report_descriptor
-#define hid_get_serial_number_string LIBUSB_hid_get_serial_number_string
-#define hid_init LIBUSB_hid_init
-#define hid_open LIBUSB_hid_open
-#define hid_open_path LIBUSB_hid_open_path
-#define hid_read LIBUSB_hid_read
-#define hid_read_timeout LIBUSB_hid_read_timeout
-#define hid_send_feature_report LIBUSB_hid_send_feature_report
-#define hid_set_nonblocking LIBUSB_hid_set_nonblocking
-#define hid_write LIBUSB_hid_write
-#define hid_version LIBUSB_hid_version
-#define hid_version_str LIBUSB_hid_version_str
-#define input_report LIBUSB_input_report
-#define make_path LIBUSB_make_path
-#define new_hid_device LIBUSB_new_hid_device
-#define read_thread LIBUSB_read_thread
-#define return_data LIBUSB_return_data
+#define free_hid_device LIBUSB_free_hid_device
+#define get_usb_code_for_current_locale LIBUSB_get_usb_code_for_current_locale
+#define hid_close LIBUSB_hid_close
+#define hid_device LIBUSB_hid_device
+#define hid_device_ LIBUSB_hid_device_
+#define hid_enumerate LIBUSB_hid_enumerate
+#define hid_error LIBUSB_hid_error
+#define hid_exit LIBUSB_hid_exit
+#define hid_free_enumeration LIBUSB_hid_free_enumeration
+#define hid_get_device_info LIBUSB_hid_get_device_info
+#define hid_get_feature_report LIBUSB_hid_get_feature_report
+#define hid_get_indexed_string LIBUSB_hid_get_indexed_string
+#define hid_get_input_report LIBUSB_hid_get_input_report
+#define hid_get_manufacturer_string LIBUSB_hid_get_manufacturer_string
+#define hid_get_product_string LIBUSB_hid_get_product_string
+#define hid_get_report_descriptor LIBUSB_hid_get_report_descriptor
+#define hid_get_serial_number_string LIBUSB_hid_get_serial_number_string
+#define hid_init LIBUSB_hid_init
+#define hid_open LIBUSB_hid_open
+#define hid_open_path LIBUSB_hid_open_path
+#define hid_read LIBUSB_hid_read
+#define hid_read_timeout LIBUSB_hid_read_timeout
+#define hid_send_feature_report LIBUSB_hid_send_feature_report
+#define hid_set_nonblocking LIBUSB_hid_set_nonblocking
+#define hid_write LIBUSB_hid_write
+#define hid_libusb_wrap_sys_device LIBUSB_hid_libusb_wrap_sys_device
+#define hid_version LIBUSB_hid_version
+#define hid_version_str LIBUSB_hid_version_str
+#define input_report LIBUSB_input_report
+#define make_path LIBUSB_make_path
+#define new_hid_device LIBUSB_new_hid_device
+#define read_thread LIBUSB_read_thread
+#define return_data LIBUSB_return_data
#include "SDL_hidapi_libusb.h"