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?

¿Fue útil?

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 ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top