6.7 Los encabezados de Linux `make mrproper` fallan en lfs 7.5

6.7 Los encabezados de Linux `make mrproper` fallan en lfs 7.5

Estoy construyendo lfs-7.5.

Cuando corro make mrproperen el capitulo6.7, dice:

hacer: gcc: comando no encontrado

y al correr bash /tools/bin/gccdice:

bash: /tools/bin/gcc: no existe tal archivo o directorio

Este es el mismo problema queaquí. Incluso la información proporcionada por la persona que hizo la pregunta en los comentarios es la misma que la mía.

Él dice que lo hizo "tercer pase" de gccenCapítulo 5. Si este fuera el caso, entonces el autor de LFS nos habría indicado claramente que realizáramos 3 pasadas. Supongo que estoy cometiendo un error sutil en alguna parte, pero parece que no puedo descubrir dónde.

Según el apoyo brindado por los autores de LFS, nos piden que rehagamos todo desde el principio. Estoy de acuerdo con ellos, pero sin saber dónde pudo haber ocurrido el error, estamos obligados a cometer el mismo error nuevamente (como lo hice yo). El resultado proporcionado por la persona que hizo la pregunta en la pregunta de soporte de LFS coincide con el mío. Este es elenlace.

Otra pregunta sobre el mismo tema.aquíno arrojó ninguna respuesta.

Por favor ayuda.

Por cierto, cuando descubrí que gccno estaba vinculado a las bibliotecas /tools/libde LFS, creé manualmente un enlace sim desde libc.so.6y /libdebajo /lib64de /mnt/lfsdonde monté la partición LFS. Pero cuando estaba ejecutando make headers_checken6.7(después make mrproper), se quejó de que no lo encontró libz.soy cuando busqué /tools/lib, no pude encontrarlo.

Respuesta1

No sé si la respuesta anterior que envié escorrectoO no.

Decidí continuar haciéndolo LFS-7.5en Linux Mint, donde el usuario lfsestaba presente en el sudoersarchivo. Despues de terminarCapítulo 5, nuevamente recibí un error enCapítulo 6.7 make mrproper. Entonces, eliminé todas las carpetas $LFSexcepto $LFS/sourcesy comencé desde el principio.

Después de terminar la segunda pasada de gcc, verifiqué si las bibliotecas de gccapuntaban a las siguientes $LFS/toolso no. Pero descubrí que todavía estaban apuntando al /usrsistema host.

Entonces, reconstruí desde la primera pasada gccy luego todo estuvo bien.

Entonces, después del segundo pase de gcc, haz:

ldd$LFS/tools/bin/$LFS_TGT-gcc

y si la salida resultante apunta a /usr, rehaga desde la primera pasada de gcc.

Al menos, este es el método que utilicé e inmediatamente después de rehacer la primera pasada por gccsegunda vez, la salida del comando anterior apuntaba a $LFS/tools/lib.

Respuesta2

Pude ejecutar con éxito make mrproperlos siguientes comandos. Realmente no sé si esta es realmente la solución al problema anterior. De todos modos aquí está:

Estaba usando Ubuntu 14.04 y creélfsusuario como lo sugiere el libro LFS-7.5. Pero el problema fue que no me di cuenta hasta más tarde, mucho más tarde, al chrootingresar a la partición LFS, que el usuario lfs no estaba en la partición LFS.sudoersarchivo.

Ubuntu no agregó (¿no agrega?) automáticamente al usuario alsudoersarchivo, probablemente por diseño de la gente de Ubuntu. Esta podría ser la razón por la que no lo volví a intentar en Ubuntu.

Me desanimé y comencé a probar LFS-7.5 enLinux menta 16y automáticamente agregó el usuario a lasudoersarchivo y todo salió bien enCapítulo 6.7mientras construimos e instalamosencabezados de Linux.

Respuesta3

Tuve exactamente el mismo problema. Revisé el enlazador dinámico usado por gcc: readelf -l /tools/bin/gcc | grep interpretery no estaba/herramientas/lib64/ld-linux-x86-64.so.2pero/lib64/ld-linux-x86-64.so.2. Entonces, gcc no se pudo ejecutar porque este archivo no existía.
El problema surgió en el paso de construcción de gcc Pass2. No puse la definición de CC, CXX, AR y RANLIB en la misma línea que el comando de configuración.

yo corrí

CC=$LFS_TGT-gcc
CXX=$LFS_TGT-g++
AR=$LFS_TGT-ar
RANLIB=$LFS_TGT-ranlib
../configure --prefix=/tools ...

En lugar de

CC=$LFS_TGT-gcc \
CXX=$LFS_TGT-g++ \
AR=$LFS_TGT-ar \
RANLIB=$LFS_TGT-ranlib \
../configure --prefix=/tools ...

El mismo problema podría aplicarse en el paso de compilación de binutils pass2. Supongo que es un problema de enfoque variable.

información relacionada