I have built OpenGL acceleration libraries (libGL and libGLU) which I keep in a specific directory,
/usr/lib/mali. I also have a software implementation of OpenGL which is installed in
/usr/lib/arm-linux-gnueabihf. Both directories are added to
/usr/lib/mali coming first, so that the programs prefer libraries from it.
ldconfig finds all the libraries:
$ sudo ldconfig -v /usr/lib/mali: libGLU.so.1 -> libGLU.so.1 libGL.so.1.2.0 -> libGL.so.1 /usr/lib/arm-linux-gnueabihf: libGL.so.1 -> libGL.so.1.5.08005 libGLU.so.1 -> libGLU.so.1.3.08005
The weird part is that
ldconfig creates a symlink
libGL.so.1.2.0, but does nothing for
ldd output is even weirder:
ldd `which glxgears` libGLU.so.1 => /usr/lib/mali/libGLU.so.1 (0xb6e4a000) libGL.so.1 => /usr/lib/arm-linux-gnueabihf/libGL.so.1 (0xb6bb5000) libGL.so.1.2.0 => /usr/lib/mali/libGL.so.1.2.0 (0xb67f1000)
The output suggests that the
libGLU is taken from the hardware-accelerated directory, while
libGL sticks to the software implementation.
libGL.so.1.2.0 is also loaded for some reason. In the end, the software implementation is used when I run
Can anyone explain me what's going on? What can I do to make my hardware-accelerated libraries load by default, without removing or overwriting the software libraries from
/usr/lib/arm-linux-gnueabihf/ (they are in fact a package dependency)?
PS: the hardware-accelerated libraries do work when I add