Entre para ver sus mensajes privadosEntre para ver sus mensajes privados   LoginLogin 





 
Posibles problemas (Capítulo 5)

 
Publicar nuevo tema   Responder al tema    Foros de discusión : LFS
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje

Diniremix
Site Admin


Registrado: 14 Sep 2008
Mensajes: 14




MensajePublicado: Jue Dic 18, 2008 6:42 pm    Asunto: Posibles problemas (Capítulo 5) Responder citando

Aloha! salu2 a tod@s. En este apartado se citan algunos problemas encontrados en la construcción del sistema temporal del cápitulo 5 y como fueron (o serán) solucionados.


/* Cabeceras API de Linux-2.6.22.5*/
Cita:

El núcleo Linux necesita exponer una Interfaz de Programación de Aplicaciones (API) para ser usada por la librería C del sistema (Glibc en LFS). Esto se hace sanitizando los diversos ficheros de cabecera incluidos en el paquete con las fuentes de núcleo Linux.

En cristiano Las Cabeceras API de Linux no son ningun paquete en especial que se encuentre en LFS solo es la instalación de algunos archivos de cabecera (*.h) en lugares como:
/usr/include/{asm{,-generic},linux,mtd,rdma,sound}/*.h

Asi que solo descomprime el nucleo de Linux (linux- 2. 6. 22. 5. tar. bz2) y ejecuta los comandos mostrados en el Caps. 5.5.1. Instalación de las cabeceras API de Linux.


/* Ajuste de herramientas: */

El problema consiste de que al momento de ejecutar el comando:
Código:

gcc -dumpspecs | sed 's@^/lib/ld-linux.so.2@/tools&@g' \
  > `dirname $(gcc -print-libgcc-file-name)`/specs

Se genera un error:

sed: can't read /mnt/lfs/tools/bin/../lib/gcc/i686-pc-linux-gnu/4.1.2/specs: No such file or directory


Hasta el momento de crear éste post la solución más acertada fue la siguiente:

1) Crear el archivo specs manualmente en:
Código:

`dirname $(gcc -print-libgcc-file-name)`

usando:
Código:

gcc -dumpspecs > `dirname $(gcc -print-libgcc-file-name)`/specs


2) Despues ejecutar el comando nuevamente:
Código:

gcc -dumpspecs | sed 's@^/lib/ld-linux.so.2@/tools&@g' `dirname $(gcc -print-libgcc-file-name)`/specs

En la consola se muestra el cambio despues de haber ejecutado el comando.
Cita:

*dynamic_linker:
/tools/lib/ld-linux.so.2

Nota:
Se puede omitir este paso ya que el archivo specs no surte ningun cambio (al menos en las pruebas realizadas).

3) Se edita el fichero specs en la ruta:
Código:

vi `dirname $(gcc -print-libgcc-file-name)`/specs

buscamos la linea:
Cita:

*dynamic_linker:
/lib/ld-linux.so.2

y la cambiamos por:
Cita:

*dynamic_linker:
/tools/lib/ld-linux.so.2

Listo!, podemos hacer las pruebas de sanidad otra vez.

Borramos el archivo a.out anterior
Código:

rm -v a.out

Volvemos a compilarlo...
Código:

cc dummy.c

Revisamos el enlazador dinamico.
Código:

readelf -l a.out | grep ': /tools'

Cita:

Caps. 5.7 Si todo funciona correctamente, no debe haber errores y la salida del último comando debe ser:

[Requesting program interpreter: /tools/lib/ld-linux.so.2]

Nota:
Cita:

Caps. 5.7 Confirma que /tools/lib aparezca como el prefijo de tu enlazador dinámico.

Como hasta este punto todo ha salido bien (al menos dá la impresión) podeis seguir con lo descrito en el libro (seguir por donde ibas).

La construccion de las herramientas temporales se ha terminado y hasta el momento todo marcha bien.

salu2

_________________
Diniremix Immortal
The OpenDoorGroup Team
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Publicar nuevo tema   Responder al tema    Foros de discusión : LFS Todas las horas son GMT
Página 1 de 1


 
Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
 


Crear un foro | foros de Programacion | Hosting gratis | soporte foros | Contactar | Denunciar un abuso | FAQ | Foro ejemplo

Para vps hosting ssd en Desafiohosting.com