Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

But this ruins the entire idea of packaging software in a self-contained way, at least for a large class of programs.

It makes me wonder, does the OS still take its job of hardware abstraction seriously these days?



The OS does. Nvidia doesn't.


Does Nvidia not support OpenGL?


Not really. Nvidia-OpenGL is incompatible to all existing OS OpenGL interfaces, so you need to ship a separate libGL.so if you want to run on Nvidia. In some cases you even need separate binaries, because if you dynamically link against Nvidia's libGL.so, it won't run with any other libGL.so. Sometimes also vice versa.


Does AMD use a statically linked OpenGL?


AMD uses the dynamically linked system libGL.so, usually Mesa.


So you still need dynamic linking to load the right driver for your graphics card.


Most stuff like that uses some kind of "icd" mechanism that does 'dlopen' on the vendor-specific parts of the library. Afaik neither OpenGL nor Vulkan nor OpenCL are usable without at least dlopen, if not full dynamic linking.


It does, and one way it does that is by dynamically loading the right driver code for your hardware.


That’s a licensing problem not a packaging problem. A DLL is a DLL - only thing that changes is whether you’re allowed redistribute it




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: