We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 3586 - Can't create OpenGL context 3.1 because of "undefined symbol: _udev_device_get_action"
Summary: Can't create OpenGL context 3.1 because of "undefined symbol: _udev_device_ge...
Status: RESOLVED INVALID
Alias: None
Product: SDL
Classification: Unclassified
Component: video (show other bugs)
Version: HG 2.1
Hardware: x86_64 Linux
: P2 normal
Assignee: Sam Lantinga
QA Contact: Sam Lantinga
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-15 09:55 UTC by Vitaly Novichkov
Modified: 2017-03-14 09:57 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Novichkov 2017-02-15 09:55:31 UTC
I don't know why this happens, but:
- I working on Linux Mint 18.1 with the Linux 4.4.0-59 kernel.
- My video card (at my job) is NVidia GeForse GT 730, using proprietary driver.
- My video card (at my home) is NVidia GeForse GT 210, using proprietary driver.
- I trying to create OpenGL context of version 3.1, but operation fails, because of "Failed loading udev_device_get_action: <mypathtoapp>/libSDL2-2.0.so: undefined symbol: _udev_device_get_action" error
- OpenGL of 2.1 creating successfully
- SAME application built for Windows and running on Wine on same machine, successfully creates OpenGL 3.1 context.
- Some time ago same application successfully used OpenGL 3.1 on same operating system with same hardware.
Comment 1 Vitaly Novichkov 2017-02-20 16:00:33 UTC
Full text of SDL_error:
=========================================================================
Failed loading udev_device_get_action: /path/to/libSDL2-2.0.so: undefined symbol: _udev_device_get_action
=========================================================================
Comment 2 Vitaly Novichkov 2017-03-14 09:57:29 UTC
Okay, I found why this happens: in real OpenGL context successfully initialized, but the failure is false because of SDL_GetError() was not empty before proceeding the context creation. The real failure source is SDL_Init() in the dynamic API function pointers filling.
In my program, I doing the external check of SDL_GetError() for a possible error message which may be set even returned pointer is not null, which was being caught from a failure of another function and has been confused me.

I think, the trouble of inability to find "_udev_device_get_action" will be another ticket if it was not created before my.