unsafe fn resolve(name: &str) -> *mut c_voidExpand description
Resolve a GL symbol the way libepoxy actually exports it.
This is the trap that cost the spike a debugging cycle. libepoxy does not
export glFoo as a function. It exports epoxy_glFoo as a data symbol
holding a lazily-resolving function pointer. So the address dlsym returns
is the address of the pointer, not of any code: returning it makes mpv jump
into non-executable data and take SIGSEGV/SEGV_ACCERR on the very first GL
call. The value must be read out of that location.
The epoxy crate does this correctly and is unusable here — its
gl_generator dependency pulls a yanked xml-rs.
TRACES: UR-080 | IR-033