INICIO   Otros temas


Instalación desde los fuentes del GNU ToolChain m68HC1x 3.1

Autor: Fernando Rafael Filipuzzi

E-mail: fernando_6867@yahoo.com.ar



  1. Dependencias y Requerimientos:

    Al igual que el toolchain 3.0 las dependencias y requerimientos de sistema son casi las misma.

    	host:/# aptitude install bzip2 flex bison libgmp3-dev libncurses5-dev \
    	> libmpc-dev autoconf textinfo build-essential make gcc-3.4 cvs \
    	> groff man2html unzip patch tree
    	host:/# export CC=gcc-3.4
    
    	host:/# cd /usr/src
    	host:/usr/src# wget http://www.gnu-m68hc11.org/m68hc1x-builder-3.1.tar.gz
    	host:/usr/src# tar zxvf m68hc1x-builder-3.1.tar.gz
    

  2. GNU Binutils:

    	host:/usr/src# wget http://ftp.gnu.org/pub/gnu/binutils/binutils-2.15a.tar.bz2
    	host:/usr/src# tar jxvf binutils-2.15a.tar.bz2	
    	host:/usr/src# cp m68hc1x-builder-3.1/binutils-2.15-m68hc1x-20040801.diffs ./
    	host:/usr/src# mv binutils-2.15 binutils-2.15-m68hc1x
    	host:/usr/src# cd binutils-2.15-m68hc1x
    	host:/usr/src/binutils-2.15-m68hc1x# patch -p1 < ../binutils-2.15-m68hc1x-20040801.diffs
    

    En el caso de compilar para los m68hc11:

    	host:/usr/src/binutils-2.15-m68hc1x# ./configure --target=m6811-elf \
    	> --program-prefix=m6811-elf-
    

    Y para los m68hc12

    	host:/usr/src/binutils-2.15-m68hc1x# ./configure --target=m6812-elf \
    	> --program-prefix=m6812-elf-
    

    Luego continua con:

    	host:/usr/src/binutils-2.15-m68hc1x# make
    	host:/usr/src/binutils-2.15-m68hc1x# make install
    	host:/usr/src/binutils-2.15-m68hc1x# cd ..
    

    El fichero binutils-2.15.tar.gz fue reemplazado por binutils-2.15a.tar.bz2.


  3. GNU GCC

    	host:/usr/src# wget http://ftp.gnu.org/pub/gnu/gcc/gcc-3.3.6/gcc-3.3.6.tar.gz
    	host:/usr/src# cp ./m68hc1x-builder-3.1/gcc-3.3.6-m68hc1x-20060122.diffs ./
    	host:/usr/src# tar xvzf gcc-3.3.6.tar.gz
    	host:/usr/src# mv gcc-3.3.6 gcc-3.3.6-m68hc1x
    	host:/usr/src# cd gcc-3.3.6-m68hc1x
    	host:/usr/src/gcc-3.3.6-m68hc1x# patch -p1 < ../gcc-3.3.6-m68hc1x-20060122.diffs
    

    Para compilar para los m68hc11

    	host:/usr/src/gcc-3.3.6-m68hc1x# ./configure --target=m6811-elf \
    	> --program-prefix=m6811-elf- --enable-languages=c,c++
    

    Para compilar para los m68hc12

    	host:/usr/src/gcc-3.3.6-m68hc1x# ./configure --target=m6812-elf \
    	> --program-prefix=m6812-elf- --enable-languages=c,c++
    

    Luego continua con:

    	host:/usr/src/gcc-3.3.6-m68hc1x# make
    	host:/usr/src/gcc-3.3.6-m68hc1x# make install
    	host:/usr/src/gcc-3.3.6-m68hc1x# cd ..
    

  4. GNU GDB

    	host:/usr/src# wget http://ftp.gnu.org/pub/gnu/gdb/gdb-6.4a.tar.gz
    	host:/usr/src# tar xvzf gdb-6.4a.tar.gz
    	host:/usr/src# cp ./m68hc1x-builder-3.1/gdb-6.4-m68hc1x-20060122.diffs ./	 
    	host:/usr/src# mv gdb-6.4 gdb-6.4-m68hc1x
    	host:/usr/src# cd gdb-6.4-m68hc1x
    	host:/usr/src/gdb-6.4-m68hc1x# patch -p1 < ../gdb-6.4-m68hc1x-20060122.diffs
    

    Para compilar para los m68hc11

    	host:/usr/src/gdb-6.4-m68hc1x# ./configure --target=m6811-elf --program-prefix=m6811-elf-
    

    Para compilar para los m68hc12

    	host:/usr/src/gdb-6.4-m68hc1x# ./configure --target=m6811-elf --program-prefix=m6812-elf-
    

    Luego continua con:

    	host:/usr/src/gdb-6.2-m68hc1x# make
    	host:/usr/src/gdb-6.2-m68hc1x# make install
    	host:/usr/src/gdb-6.2-m68hc1x# cd ..
    

  5. Compilando NEWLIB

    	host:/usr/src# wget ftp://sources.redhat.com/pub/newlib/newlib-1.12.0.tar.gz
    	host:/usr/src# cp ./m68hc1x-builder-3.1/newlib-1.12.0-m68hc1x-20040801.diffs ./	 
    	host:/usr/src# tar xvzf newlib-1.12.0.tar.gz
    	host:/usr/src# mv newlib-1.12.0 newlib-1.12.0-m68hc1x
    	host:/usr/src# cd newlib-1.12.0-m68hc1x
    	host:/usr/src/newlib-1.12.0-m68hc1x# patch -p1 < ../newlib-1.12.0-m68hc1x-20040801.diffs
    	host:/usr/src/newlib-1.12.0-m68hc1x# cd ..
    	host:/usr/src# mkdir build-newlib
    	host:/usr/src# cd build-newlib
    

    Para compilar para los m68hc11

    	host:/usr/src/build-newlib# ../newlib-1.12.0-m68hc1x/configure --disable-newlib-io-float \
    	> --disable-newlib-multithread --target=m6811-elf --program-prefix=m6811-elf-
    

    Para compilar para los m68hc12

    	host:/usr/src/build-newlib# ../newlib-1.12.0-m68hc1x/configure --disable-newlib-io-float \
    	> --disable-newlib-multithread --target=m6812-elf --program-prefix=m6812-elf-
    

    Continuar con:

    	host:/usr/src/build-newlib# make
    	host:/usr/src/build-newlib# make install
    	host:/usr/src/build-newlib# cd ..
    

  6. Problemas:

    1. Al construir la newlib termina con lo que sigue:
      	../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fseek.c: In function `_fseek_r':
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fseek.c:124: warning: `curoff' might be used uninitialized in this function
      m6811-elf-gcc -B/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/ -isystem /usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/targ-include -isystem /usr/src/toolchain/hc11/newlib-1.12.0-m68hc1x/newlib/libc/include  -m68hc12 -DPACKAGE=\"newlib\" -DVERSION=\"1.12.0\"  -I. -I../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio  -DPREFER_SIZE_OVER_SPEED -Os -mrelax -D__SINGLE_THREAD__ -DNO_FLOATING_POINT -DNO_EXEC -DABORT_PROVIDED -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES -fno-builtin    -O2 -g -Os -Wall  -O2 -g -Os -Wall  -m68hc12 -c ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fsetpos.c
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fsetpos.c: In function `_fsetpos_r':
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fsetpos.c:59: warning: implicit declaration of function `_fseek_r'
      m6811-elf-gcc -B/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/ -isystem /usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/targ-include -isystem /usr/src/toolchain/hc11/newlib-1.12.0-m68hc1x/newlib/libc/include  -m68hc12 -DPACKAGE=\"newlib\" -DVERSION=\"1.12.0\"  -I. -I../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio  -DPREFER_SIZE_OVER_SPEED -Os -mrelax -D__SINGLE_THREAD__ -DNO_FLOATING_POINT -DNO_EXEC -DABORT_PROVIDED -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES -fno-builtin    -O2 -g -Os -Wall  -O2 -g -Os -Wall  -m68hc12 -c ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/ftell.c
      m6811-elf-gcc -B/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/ -isystem /usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/targ-include -isystem /usr/src/toolchain/hc11/newlib-1.12.0-m68hc1x/newlib/libc/include  -m68hc12 -DPACKAGE=\"newlib\" -DVERSION=\"1.12.0\"  -I. -I../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio  -DPREFER_SIZE_OVER_SPEED -Os -mrelax -D__SINGLE_THREAD__ -DNO_FLOATING_POINT -DNO_EXEC -DABORT_PROVIDED -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES -fno-builtin    -O2 -g -Os -Wall  -O2 -g -Os -Wall  -m68hc12 -c ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fvwrite.c
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fvwrite.c: In function `__sfvwrite':
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fvwrite.c:51: warning: `p' might be used uninitialized in this function
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fvwrite.c:55: warning: `nldist' might be used uninitialized in this function
      Changed reload 2, conflict 0 with 6
      ../../../../../../newlib-1.12.0-m68hc1x/newlib/libc/stdio/fvwrite.c:233: internal compiler error: in merge_assigned_reloads, at reload1.c:6217
      Please submit a full bug report,
      with preprocessed source if appropriate.
      See  for instructions.
      make[7]: *** [fvwrite.o] Error 1
      make[7]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/libc/stdio'
      make[6]: *** [all-recursive] Error 1
      make[6]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib/libc'
      make[5]: *** [all-recursive] Error 1
      make[5]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib'
      make[4]: *** [all-recursive-am] Error 2
      make[4]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/m68hc12/newlib'
      make[3]: *** [multi-do] Error 1
      make[3]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/newlib'
      make[2]: *** [all-multi] Error 2
      make[2]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/newlib'
      make[1]: *** [all-recursive-am] Error 2
      make[1]: Leaving directory `/usr/src/toolchain/hc11/build-newlib/m6811-elf/newlib'
      make: *** [all-target-newlib] Error 2
      
    2. No se cual es el problema pero este error fue puesto en
      http://savannah.gnu.org/bugs/?16423 y dice que removiendo CFLAGS se resuelve. En la guía original dice que construyendo solo con make por defecto utilizará como CFLAGS -g -O2 -W -Wall.

  7. Enlaces y referencias:

    1. Enlaces y referencias


INICIO   Otros temas