Volver a vincular una biblioteca compartida a una versión diferente de libc
Pregunta
Tengo una biblioteca compartida Linux (.so) compilado con una versión específica de libc (GLIBC2.4) y tengo que usarlo en un sistema con diferentes versiones de libc. No tengo fuentes de la biblioteca en cuestión así que no puedo volver a compilar para el nuevo sistema. Es de alguna manera posible cambiar las dependencias de esa biblioteca libc a una diferente?
Solución
Si necesita el .so en un sistema con una glibc mayor, lo que se necesita el código fuente y recompilar / volver a enlazar con la glibc más. La alternativa es instalar el glibc requerida en el sistema antiguo en una ubicación no predeterminada y ajustar el LD_LIBRARY_PATH para el ejecutable que necesita este .so
Si hay una nueva glibc Más bien, debería normalmente no será un problema ya que glibc tienden a ser compatible con versiones anteriores.
Otros consejos
A menos que su biblioteca realmente utiliza interfaces que cambiaron (poco probable), sólo puede HexEdit las referencias a las versiones en el archivo .so
resultante. Son todo el texto de todos modos.
Lo mejor que puede hacer es compilar la antigua versión de glibc para su sistema y luego construir su aplicación con que glibc y su biblioteca compartida. Fea aunque ...