GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo evitar los símbolos STT_GNU_IFUNC en su binario?

En general, los sistemas UNIX admiten la compatibilidad binaria con versiones anteriores (un binario creado en una máquina antigua continúa ejecutándose en una más nueva), pero no al revés. No puede esperar que un binario creado en un nuevo sistema se ejecute en uno más antiguo. STT_GNU_IFUNC es solo el primero de muchos problemas que encontrarás.

Si necesita crear un binario en una máquina más nueva que se ejecutará en una más antigua, consulte este documento.

Solía ​​​​haber "apgcc:un envoltorio GCC para hacer binarios portátiles" que facilitaba esto (se hace referencia desde arriba), pero parece haber desaparecido;-(

La opción más fácil es compilar en una máquina antigua (solía compilar en RedHat 6.2 y el binario resultante se ejecutaba en todas partes ). No es necesario que ejecute RH-6.2 en una máquina física, solo introdúzcalo en una máquina virtual.

La otra opción relativamente fácil es construir un chroot , nuevamente utilizando herramientas y bibliotecas de una distribución anterior (por ejemplo, RH-6.2).


Como APGCC ya no parece estar disponible (excepto quizás aquí y aquí). Estos encabezados glibc parecen ser actualmente la forma más conveniente de generar binarios portátiles de Linux a partir de un código C al incluir uno de los archivos de encabezado más antiguos.


Linux
  1. Cómo administrar su historial de comandos de Linux

  2. Cómo cambiar el nombre de host de su máquina Linux sin necesidad de reiniciar

  3. ¿Cómo saber qué servidor DNS está configurado en su máquina? Linux/Windows/OSX

  4. Cómo compilar un binario de 32 bits en una máquina Linux de 64 bits con gcc/cmake

  5. ¿Cómo obtener la dirección MAC de su máquina usando un programa C?

Cómo grabar su sesión de terminal en Linux

Cómo instalar Windows 10 en Virtualbox en Linux

Cómo probar el sistema operativo Plasma Mobile en su computadora

Cómo cambiar su nombre de host en Linux

Cómo obtener su dirección IP en Linux

¿Cómo se borra la memoria caché de Visual Studio Code en una máquina Mac/Linux?