Cómo construir una cadena de herramientas de compilación cruzada MIPS
Cree la carpeta del proyecto de destino en el directorio de usuario actual, cree la carpeta mips-module en esta carpeta y cree tres archivos en la carpeta mips-module Carpetas: build- tools, kernel y tools, y finalmente cree las carpetas build-gcc, build-boot-gcc, build-glibc y build-binutils en la carpeta build-tools. El comando es el siguiente:
$ cd ~
$ mkdir -p ./target-project/mips-module/{kernel/,tools/,build-tools/{build -gcc, build-boot-gcc,build-glibc,build-binutils}}
$ tree ./target-project/mips-module/
Usar script para crear variables de entorno
#!
$ cd target-project
$ chmod +x mips.sh
$ source mips.sh
Puedes usar echo para ver Si la variable de entorno surte efecto.
Finalmente, descargue linux-2.6.38.tar.bz2 y colóquelo en la carpeta del kernel, binutils-2.22.tar.gz, gcc-4.6.2.tar.gz, glibc-2.14. .gz, glibc-ports-2.14.tar.gz, gmp-5.0.4.tar.gz, gcc-2.6.4.tar.gz y gmp-5.0.4.tar.gz. Las descargas de 5.0.4.tar.gz, mpc-0.9.tar.gz y mpfr-3.0.1.tar.gz se colocan en la carpeta build-tools.
Paso 2 Instalar archivos de encabezado de Linux basados en MIPS
$ cd $PRJROOT/kernel
$ tar -xjvf linux-2.6.38.tar.bz2
$ cd linux-2.6.38
Crea una carpeta de inclusión en la ruta especificada.
$ mkdir -p $TARGET_PREFIX/include
Asegúrese de que el código fuente de Linux esté limpio.
$ make mrproper
Genera los archivos de encabezado necesarios.
$ make ARCH=mips headers_check
$ make ARCH=mips INSTALL_HDR_PATH=dest headers_install
Copie todos los archivos en la carpeta de destino a la carpeta de archivos de inclusión especificada.
$ cp -rv dest/include/* $TARGET_PREFIX/include
Finalmente elimina la carpeta de destino
$ rm -rf dest
$ ls -l $TARGET_PREFIX/include
Paso 3 Instalar binutils-2.22
$ cd $PRJROOT/build-tools
$ tar -xzvf binutils- 2.22.tar.gz
$ cd build-binutils
$ ./binutils-2.22/configure --target=$TARGET --prefix=$PREFIX
$ make
$ make install
Luego instale automake.
$ tar -xzvf automake -1.11.1.tar.gz
$ cd automake-1.11.1
$ ./configure
$ make
$ sudo make install
El siguiente es el inicio de la modificación El método para archivos relacionados es principalmente eliminar -Werror.
$ cd $PRJROOT/build-tools/binutils-2.22/gas
$ ge dit configure p>
Ingrese el siguiente contenido
# -Werror está habilitado de forma predeterminada cuando se usa gcc
if test "${GCC}" = yes -a -z "${ ERROR_ON_WARNING}" ; entonces
ERROR_ON_WARNING=yes
fi
Modificar a
# Habilitado de forma predeterminada cuando se usa gcc - Werror
if prueba "${GCC}" = yes -a -z "${ERROR_ON_ WARNING}" ; entonces
ERROR_ON_WARNING=no
fi
Sin embargo , es necesario reconfigurar para generar el Makefile.
$ ./configure (configurar en la ruta binutils/gas)
$ make distclean (recuerde)
Luego vuelva a ejecutar el paso 3 y compile esta vez. aprobar.
Paso 4 Instalar el gestor de arranque gcc
$ cd $PRJROOT/build-tools
$ tar -xzvf gcc-4.6.2.tar.gz
p>
$ tar -xjvf gmp-5.0.4.tar.bz2
$ mv gmp-5.0 .4 ./gcc-4.6.2/gmp
$ tar -xzvf mpc-0.9.tar.gz
$ mv mpc-0.9 ./gcc-4.6.2/mpc
$ tar -xzvf mpfr-3.0.1.tar.
$ mv mpfr-3.0.1 ./gcc-4.6.2/mpfr
$ cd build-boot-gcc
$ ./gcc- 4.6 .2/configure --target=$TARGET --prefix=$PREFIX --disable-shared
--sin-encabezados --with-newlib --enable-languages=c -- enable-decimal-float < ; br>--disable-libgomp--disable-libmudflap--disable-libssp--disable-threads--disable-multilib
Compile e instale el cargador de arranque gcc y la biblioteca libgcc.
$ make all-gcc
$ make all-target-libgcc
$ make install-gcc
$ make install-target -libgcc
Paso 5 Compilar glibc
$ cd $PRJROOT/build-tools
$ tar xzvf glibc-2.14.tar.gz
$ cd glibc-2.14
Eliminar archivo Makefonfig-lgcc_eh.
$ cp -v Makeconfig {,.b salpicadura intestinal detención trabajo bola de masa oficina malvada tormenta lanza k} p >
$ sed -e 's/-lgcc_eh//g' Makeconfig.bk > Makeconfig
$ cd ...
$ tar -xjvf glibc-ports- 2.14 .tar.bz2
$ mv glibc-ports-2.14 ./glibc-2.14/ports
$ cd build-glibc
$ CC=mipsellinux --gcc ./glibc-2.14/configure --host=$TARGET --prefix="/usr"
-enable-add-ons--with-headers=$TARGET_PREFIX/include libc_cv_forced_ unwind=yes
libc_cv_c_cleanup=yes
Nota: En este momento, cómo configurar la variable de entorno LD_LIBRARY_PATH provocará un error de configuración y deberá eliminar la variable y reconfigurarla.
$ make
$ make install_root=$TARGET_PREFIX prefix="" install
Paso 6 Instale completamente gcc
Primero, también A Un paso muy importante es eliminar las rutas absolutas de los archivos de la biblioteca (como libc).
$ cd $TARGET_PREFIX/lib
Copia de seguridad.
$ cp libc.so libc.so.bk
$ gedit libc.so
GRUPO ( /lib/libc.so.6 /lib/libc_nonshared .a AS_NEEDED ( /lib/ld.so.1 ) )
Modificar a
GRUPO ( libc.so.6 libc_nonshared.a AS_NEEDED ( ld.so.1 ) )
$ cp libpthread.so libpthread.so.bk
$ gedit libpthread./lib/libpthread_nonshared.a)
Cambiar a
GRUPO (libpthread.so.0 libpthread_nonshared.a)
Entonces gcc se puede compilar completamente.