Página siguiente Página anterior Índice general

15. ELF

15.1 Introducción

Desde sus primeras versiones, Linux soporta los binarios en formato a.out. Recientemente, el soporte para los binarios en el formato ELF ha sido integrado en el núcleo y se ha hecho una distribución de las bibliotecas compartidas en formato ELF. Las ventajas de este formato en relación al formato a.out son muchas:

Las ultimas versiones de las distribuciones están basadas en el formato ELF. Si su máquina todavía está en formato a.out, ya es hora de reinstalar su máquina con una distribución de Linux actualizada.

15.2 utilización de los utilitarios ELF

.

Las nuevas versiones del compilador y de las utilidades generan ejecutables en formato ELF, por defecto. Es posible crear ejecutables en formato a.out utilizando la opción -b i486-linuxaout al llamar a gcc.

Desde ahora es fácil construir bibliotecas dinámicas. Los archivos fuente deben ser compilados con la opción -fPIC con el fin que el código generado pueda ser ejecutado en cualquier dirección (las bibliotecas dinámicas se cargan en direcciones imprevisibles y su código debe ser independiente de su dirección física). La opción -shared de gcc permite luego generar una biblioteca dinámica.

Por ejemplo para generar una biblioteca libtruc.so.1.0 se utilizarían las siguientes órdenes:

  $ gcc -c -fPIC *.c
  $ gcc -shared -Wl,-soname,libtruc.so.1 -o libtruc.so.1.0 *.o

15.3 Fuentes de información sobre ELF

Algunos documentos sobre ELF están disponibles en ftp.lip6.fr en /pub/linux/ELF/doc. Se trata de :

También es posible aprender más sobre ELF en estas URL:


Página siguiente Página anterior Índice general