Linux From Scratch para Cubietruck – C6: Edificio de la cadena de herramientas GCC – actualizar cadena de herramientas de host (AAA) -> (AAB) -> (ABB)

Cadena de herramientas en Debian 7 (AAA) sin duda no es la versión más reciente. GCC es 4.7, binutils es 2,22-8, asegúrese de que está 3,81, etc Vamos a actualizar sólo los componentes más relevantes de la cadena de herramientas GCC dirigidos a la máquina host. Estos son GCC, binutils, marca, gmp, MPFR, mpc, isl, y cloog. Para otros componentes, todavía utilizaremos aquellas en construcción de la cadena de la máquina herramienta. Se instalará el cadena de herramientas mejorada en «x86_64-luke-linux-gnu» ($ HOSTROOT).

1. Versión de software

~ / cadena de herramientas / src $ ls-l
total de 142.696
-rw-r – r – 1 gcc gcc 21440347 10 de enero 13:11 binutils-2.23.2.tar.bz2
-rw-r – r – 1 gcc gcc 3857324 10 de enero 13:09 cloog-0.18. 1.tar.gz
-rw-r – r – 1 gcc gcc 85999682 11 de enero 22:09 gcc-4.8.2.tar.bz2
-rw-r – r – 1 gcc gcc 1819560 10 de enero 13:09 gmp-5.1.2.tar.xz
-rw-r – r – 1 gcc gcc 1160944 10 de enero 13:09 isl-0.12.1.tar.lzma
-rw-r – r – 1 gcc gcc 1341927 11 de enero 22:09 maquillaje 4.0.tar.bz2
-rw-r – r – 1 gcc gcc 624125 12 de enero 03:53 mpc-1.0.1.tar.gz
-rw-r – r – 1 gcc gcc 1074388 10 de enero 13:09 MPFR-3.1.2.tar.xz

2. Software GNU estrofa acumulación />
Todos los paquetes de software siguientes GNU autotools convenciones tendrá la misma estrofa edificio. Tomemos «gmp» como ejemplo:

a. configurar el software

gcc @ debian: ~ / cadena de herramientas $ cd build / host / gmp
gcc @ debian: ~ / cadena de herramientas / build / host / gmp $ .. / ../../src/gmp-5.1.2/configure – build = $ BUILD – host = $ HOST – prefix = $ BUILDROOT / usr – disable-shared – enable-cxx

Ahora usted debe comprobar «config.log» para asegurarse de que todo está bien />
b. compilar software

gcc @ debian: ~ / cadena de herramientas / build / host / gmp $ make-j4 2> & 1 | tee make.log

Ahora compruebe «make.log» para asegurar una compilación exitosa

c.. comprobar el software compilado

gcc @ debian: ~ / cadena de herramientas / build / host cheque / gmp $ make-j4 2> & 1 |. tee make.check.log

Ahora compruebe «make.check.log» para asegurar que se aprobaron todos los casos de prueba

d. Instale el software en un área de preparación

gcc @ debian: ~ / cadena de herramientas / construir / host / gmp $ make-j4 DESTDIR = $ {} WEB / gmp 2> & 1 | tee make.staging.log

Ahora compruebe «make.staging.log» garantizar que los componentes de software integrados y directorio de instalación están en orden />
e. instalar software

gcc @ debian: ~ / cadena de herramientas / build / host / gmp $ make-j4 instalar 2> & 1 |. tee make.install.log

Ahora compruebe «make.install.log» para garantizar una instalación correcta

En la siguiente descripción, sólo voy a enumerar el «configurar» el mando y omitir la parte de «hacer» de la estrofa, ya que son todos los mismos procedimientos.

2. actualizar binutils y hacer

En el directorio «build», haremos numerosas edificio. Pondré todas las actividades de construcción de la cadena de herramientas de host (AAB/x86_64-luke-linux-gnu) en todas las actividades de construcción de la cadena de herramientas de destino (ABC / arm-luke-linux-gnueabihf «build / host», y ) en «build / target».

Todos los artefactos construidos se instalarán en «$ HOSTROOT». Haremos una construcción de dos pasos para la cadena de herramientas de acogida, por primera vez, utilice la cadena de equipo de generación de herramientas. Después de la cadena de herramientas de ordenador está listo, vamos a utilizar a reconstruirse. Esto parece un (AAB) a (ABB) Ruta (nativo de cruz), pero sí ellos para verificar la exactitud de nuestro compilador mediante la construcción de sí mismo. La cadena herramienta final se convertirá en (BBC) en consecuencia.

A. binutils

$ mkdir-p build / host / {gmp, MPFR, mpc, isl, cloog, binutils, gcc, make}
$ .. / ../../src/binutils-2.23.2/configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – target = $ HOST – with-sysroot = / – enable-build-with-CXX – enable-werror – disable-shared – enable-ld = por defecto – enable-oro = no

$ x86_64-luke-linux-gnu-ld – versión
ld GNU (GNU Binutils) 2.23.2

Desde ( AAB) utilizan el mismo como libc (AAA), por lo que «- with-sysroot» está ajustado en «/», el directorio raíz del sistema existente, en el que reside libs sistema original. Cuando los conductores de gcc llamadas ld, pasará directivas apropiadas «-L» para ld.

B. hacer

../../../src/make-4.0 / configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – disable-nls

$ que hacer
/ home/gcc/toolchain/x86_64-luke-linux-gnu/usr/bin/make
$ make – versión

GNU Make 3.81

3. actualizar las bibliotecas de apoyo

La secuencia de construcción será gmp -> MPFR -> mpc -> isl -> cloog. Se construirán Sólo bibliotecas estáticas. gcc enlazará con estos lib estática y no se cargará versiones lib acciones, existentes desde la ruta lib del sistema (que es la versión más antigua)



../../../src/gmp-5.1. 2/configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – disable-shared


../../../src/mpfr-3.1.2/configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – disable-shared – with-gmp = $ HOSTROOT / usr


../../../src/mpc-1.0.1/configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – disable-shared – with-gmp = $ HOSTROOT / usr – with-MPFR = $ HOSTROOT / usr


– host = $ BUILD – disable-shared – with- gmp-prefix = $ HOSTROOT / usr

Courier New, Courier, monospace; font-size: x-small;»>.. /.. /.. / src / cloog-0.18.1/configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – disable-shared – con-gmp-prefix = $ HOSTROOT / usr – with-isl-prefix = $ HOSTROOT / usr

4. actualizar gcc

../../../src/gcc-4.8 .2/configure – prefix = $ HOSTROOT / usr – build = $ BUILD – host = $ BUILD – target = $ HOST – disable-multilib – disable-nls – disable-shared – enable-languages ​​= c, c + + – with-tune = core2 – enable-__cxa_atexit – enable- threads = posix - enable-c99 – with-sysroot = / – with-gmp = $ HOSTROOT / usr – with-MPFR = $ HOSTROOT / usr – with-mpc = $ HOSTROOT / usr – with-isl = $ HOSTROOT / usr – = $ HOSTROOT / usr con-cloog

Esta es una compilación cruzada. Ya que estamos usando libc del sistema, para que podamos construir gcc en un solo paso. «Core 2» es mi T400 cpu. Al igual que antes, construimos lib estática, y establecer «sysroot» a «/» para usar las librerias del sistema existentes en debian 7. «Sysroot» está codificado como «/», aunque no bajo «$ prefijo», pero cuando nos desplazamos nuestra cadena de herramientas, «sysroot» simplemente no se moverá (ningún cuerpo puede moverse sistema «/» de archivos raíz), esta cadena de herramientas sigue siendo reubicable. En este paso, las bibliotecas de destino serán construidos con el gcc de nueva construcción, nombrado como «xgcc», ya que no tenemos una cadena de herramienta de focalización en (B) en la ruta del sistema todavía.

5. instalada la estructura de directorios de la cadena de herramientas cruz

└ ─ ─ usr
─ ─ bin ($ bindir)
│ ├ ─ ─ x86_64-luke- linux-gnu-c + +
│ ├ ─ ─ x86_64-luke-linux-gnu-cpp
│ ├ ─ ─ x86_64-luke-linux-gnu-g + +
│ ├ ─ ─ x86_64-luke-linux-gnu-gcc
│ ├ ─ ─ x86_64-luke-linux-gnu-gcc-4.8.2
│ ├ ─ ─ x86_64-luke-linux-gnu-gcc-ar
│ ├ ─ ─ x86_64-luke-linux-gnu-gcc-nm
│ ├ ─ ─ x86_64-luke-linux- gnu-gcc-ranlib
│ └ ─ ─ x86_64-luke-linux-gnu-gcov
├ ─ ─ incluir
├ ─ ─ lib ($ libdir): libs / headers / archivos de inicio que utiliza propio gcc
│ ├ ─ ─ gcc
│ │ └ ─ ─-x86_64 luke-linux-gnu
│ │ └ ─ ─ 4.8.2 (archivos Starup)
│ │ ├ ─ ─ crtbegin.o
│ │ ├ ─ ─ crtbeginS.o
; │ │ ├ ─ ─ crtbeginT.o
│ │ ├ ─ ─ crtend.o
; │ │ ├ ─ ─ crtendS.o
│ │ ├ ─ ─ crtfastmath.o
; │ │ ├ ─ ─ crtprec32.o
│ │ ├ ─ ─ crtprec64.o
; │ │ ├ ─ ─ crtprec80.o
│ │ ├ ─ ─ finclude
│ │ ├ ─ ─ incluir
│ │ │ ├ ─ ─ adxintrin.h
│ │ │ ├ ─ ─ ammintrin.h
│ │ │ ├ ─ ─ avx2intrin.h
│ │ │ ├ ─ ─ avxintrin.h
…………………………… ……………………..
│ │ │ ├ ─ ─ xsaveoptintrin.h
│ │ │ └ ─ ─ xtestintrin.h
│ │ ├ ─ ─ fijo incluir
Courier style=»font-family: │ │ │ ├ ─ ─ dmalloc.h
│ │ │ ├ ─ ─ limits.h
│ │ ; │ ├ ─ ─ README
│ │ │ └ ─ ─ syslimits.h
│ │ ├ ─ ─ install-herramientas
│ │ │ ├ ─ ─ fixinc_list
│ │ ; │ ├ ─ ─ gsyslimits.h
│ │ │ ├ ─ ─ incluir
│ │ │ │ ├ ─ ─ limits.h
│ │ │ │ └ ─ ─ README
│ │ ; │ ├ ─ ─ macro_list
│ │ │ └ ─ ─ mkheaders.conf
│ │ ├ ─ ─ libgcc.a
│ │ ├ ─ ─ libgcov.a
│ │ └ ─ ─ Plugin
│ │ └ ─ ─ incluir las etiquetas
│ │ ; ├ ─ ─ ada
; │ │ │ └ ─ ─ gcc-interface
│ │ │ ; └ ─ ─ ada-tree.def
│ │ ├ ─ ─ Alias.h
│ │ ├ ─ ─ alloc-pool.h
………………….. ……………………………………
│ │ ├ ─ ─ treestruct.def
│ │ ├ ─ ─ vec.h
│ │ └ ─ ─ version.h
│ └ ─ ─ libiberty.a
├ ─ ─ ejecutables del sistema (los programas internos de gcc)
│ └ ─ ─ gcc
│ └ ─ ─ x86_64-luke-linux-gnu
│ └ ─ ─ 4.8.2
│ ├ ─ ─ cc1
│ ├ ─ ─ cc1plus
│ ├ ─ ─ collect2
│ ├ ─ ─ install-herramientas
│ │ ├ ─ ─ fixincl
│ │ ├ ─ ─ fixinc.sh
│ ; │ ├ ─ ─ mkheaders
│ │ └ ─ ─ mkinstalldirs
│ ; ├ ─ ─ liblto_plugin.la
│ ├ ─ ─ liblto_plugin.so -> liblto_plugin.so.0.0.0
│ ├ ─ ─ liblto_plugin.so.0 -> liblto_plugin.so.0.0.0
│ ; ├ ─ ─ liblto_plugin.so.0.0.0
│ ├ ─ ─ LTO1
│ ; ├ ─ ─ lto-wrapper
│ └ ─ ─ Plugin
│ ; └ ─ ─ gengtype
─ ─ acción (documentación gcc)
│ ├ ─ ─ gcc-4.8.2
│ │ └ ─ ─ python
│ │ └ ─ ─ libstdcxx
│ │ ; ├ ─ ─ __ init__.py
│ │ └ ─ ─ v6
│ │ ; ├ ─ ─ __ init__.py
│ │ └ ─ ─ printers.py
│ ├ ─ ─ info
COLLECT_LTO_WRAPPER=/home/gcc/toolchain/x86_64-luke-linux-gnu/usr/libexec/gcc/x86_64-luke-linux-gnu/4.8.2/lto-wrapper

COLLECT_LTO_WRAPPER=/home/gcc/toolchain/x86_64-luke-linux-gnu/usr/libexec/gcc/x86_64-luke-linux-gnu/4.8.2/lto-wrapper

/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-luke-linux-gnu/4.8.2/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib64/:/home/gcc/toolchain/x86_64-luke-linux-gnu/usr/lib/gcc/x86_64-luke-linux-gnu/4.8.2/../../../../x86_64-luke-linux-gnu/lib/:/lib/:/usr/lib/


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *