O problema estava de fato nas minhas configurações do Makefile. Inspecionar a biblioteca com objdump
revelou a causa raiz:
$ objdump -p libGL.so.1 |grep SONAME
SONAME libGL.so.1.2.0
ldd
mostrou libGL.so.1
e libGL.so.1.2.0
, porque o primeiro foi importado por glxgears
e o segundo foi importado pela minha implementação de libGLU
, que foi criada com base na versão acelerada por hardware de libGL
e, portanto, sabia que seu soname, libGL.so.1.2.0
.
A correção foi mudar o soname com -soname,libGL.so.1
.