Frankly I'm not sure if this is the right place to file this issue but considering I can't reproduce it in C I'll put it here for now.
constsubsystems:sdl.InitFlags=.{.video=true,.gamepad=true};trysdl.init(subsystems);Trying to initialize the gamepad subsystem dies with the following backtrace:
Illegal instruction at address 0x146dbd6
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/hidapi/SDL_hidapi.c:1514:12: 0x146dbd6 in SDL_hid_set_nonblocking_REAL (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/hidapi/SDL_hidapi.c)
return device->backend->hid_set_nonblocking(device->device, nonblock);
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c:501:13: 0x1e26c11 in HIDAPI_SetupDeviceDriver (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c)
SDL_hid_set_nonblocking(dev, 1);
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c:970:5: 0x1e23ef6 in HIDAPI_AddDevice (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c)
HIDAPI_SetupDeviceDriver(device, &removed);
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c:1145:21: 0x1e1e406 in HIDAPI_UpdateDeviceList (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c)
HIDAPI_AddDevice(info, 0, NULL);
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c:580:5: 0x1e1dff0 in HIDAPI_JoystickInit (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/hidapi/SDL_hidapijoystick.c)
HIDAPI_UpdateDeviceList();
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/SDL_joystick.c:860:13: 0x14a46e7 in SDL_InitJoysticks (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/joystick/SDL_joystick.c)
if (SDL_joystick_drivers[i]->Init()) {
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c:435:18: 0x130f0b0 in SDL_InitSubSystem_REAL (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c)
if (!SDL_InitJoysticks()) {
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c:256:12: 0x130faca in SDL_InitOrIncrementSubsystem (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c)
return SDL_InitSubSystem(subsystem);
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c:456:18: 0x130f144 in SDL_InitSubSystem_REAL (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c)
if (!SDL_InitOrIncrementSubsystem(SDL_INIT_JOYSTICK)) {
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c:558:12: 0x130fcca in SDL_Init_REAL (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/SDL.c)
return SDL_InitSubSystem(flags);
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/dynapi/SDL_dynapi_procs.h:638:1: 0x13db024 in SDL_Init_DEFAULT (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/dynapi/SDL_dynapi.c)
SDL_DYNAPI_PROC(bool,SDL_Init,(SDL_InitFlags a),(a),return)
^
/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/dynapi/SDL_dynapi_procs.h:638:1: 0x13a5a2f in SDL_Init (/home/lauree/.cache/zig/p/sdl-0.4.0+3.4.0-SDL--u6yowGyvoiJ5qkFm_T1-MpmvnHShh2q2mTZf1fo/src/dynapi/SDL_dynapi.c)
SDL_DYNAPI_PROC(bool,SDL_Init,(SDL_InitFlags a),(a),return)
^
/home/lauree/.cache/zig/p/sdl3-0.1.7-NmT1Q00HJwBQEXnwv_YWydIXUCKazlnPDACaXwwVQoHo/src/sdl3.zig:1111:27: 0x12d4a5e in init (sdl3.zig)
const ret = c.SDL_Init(
^
/home/lauree/dev/test/src/main.zig:11:17: 0x12d63bb in main (main.zig)
try sdl.init(subsystems);
^
/usr/lib/zig/std/start.zig:627:37: 0x12d6fd1 in main (std.zig)
const result = root.main() catch |err| {
^
???:?:?: 0x7f6f182ad634 in ??? (libc.so.6)
Unwind information for `libc.so.6:0x7f6f182ad634` was not available, trace may be incomplete
???:?:?: 0x7f6f182ad6e8 in ??? (libc.so.6)
???:?:?: 0x130e8d4 in ??? (???)
On one hand it very much looks like it's an issue with SDL, or at least my SDL installation, but as mentioned above it works just fine when using C so I wonder if anyone has any ideas.