LD_PRELOAD no está utilizando la biblioteca correcta

LD_PRELOAD no está utilizando la biblioteca correcta

Estoy intentando anular un enlace dinámico en un ejecutable.

Tengo un "programa" ejecutable

El comando:

ldd program 

salidas: libstdc++.so.6 => /lib64/libstdc++.so.6

Tengo una biblioteca también:

ldd a.so

salidas: libstdc++.so.6 => /mydir/libstdc++.so.6

Intenté anular el enlace en el programa ejecutable haciendo:

setenv LD_PRELOAD a.so

ahora cuando ejecuto mi ejecutable obtengo:

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found

¿Por qué está tratando de leer?libstdc++.so.6de/lib64/libstdc++.so.6y no/mydir/libstdc++.so.6

información relacionada