[U-Boot-Users] GCC3.4.0 Coldfire 52xx Build problems

Teun Grinwis teun at adesys.nl
Thu Aug 4 11:31:27 CEST 2005


Hello All,

I am new to U-Boot.
We develop appl. on coldfire M5275EVB with uclinux 2.6, and intent to use
U-Boot as
boot loader.

- Use the gcc3.4.0 toolchain, binutils binutils-2.15.90.0.1.1 from
  http://www.uclinux.org/pub/uClinux/m68k-elf-tools/gcc-3/

- I download u-boot from CVS, so latest version.

- Tried to compile for M5272C3_config
  did make M5272C3_config
      make

- got following error:
----------------------
  make[1]: Leaving directory
`/cygdrive/c/project/U-Boot_20050803/u-boot/post/cpu'
m68k-elf-gcc -Wa,-gstabs -D__ASSEMBLY__ -g  -Os   -ffixed-d7 -msep-data -D__
KERNEL__ -DTEXT_BASE=0xffe00000 -I/cygdrive/c/project/U-Boot_20050803/u-boot
/include -fno-builtin -ffreestanding -nostdinc -isystem
/usr/lib/gcc/i686-pc-cygwin/3.4.4/include -pipe  -DCONFIG_M68K -D__M68K__ -m
5307 -c -o cpu/mcf52x2/start.o
/cygdrive/c/project/U-Boot_20050803/u-boot/cpu/mcf52x2/start.S
/cygdrive/c/project/U-Boot_20050803/u-boot/cpu/mcf52x2/start.S: Assembler
messages:
/cygdrive/c/project/U-Boot_20050803/u-boot/cpu/mcf52x2/start.S:345: Fatal
error: Tried to convert PC relative conditional branch to absolute jump
make: *** [cpu/mcf52x2/start.o] Error 1
-----------------------
 - found the same error in the mail list, see
http://sourceforge.net/mailarchive/message.php?msg_id=10000351
but no real solution mentioned.

 - found that the compiler option -msep-data is the reason for this error.

 - removed -msep-data from cpu/mcf52x2/config.mk

 - now compiling proceeds, but next error occurs:

make -C `dirname board/m5272c3/libm5272c3.a`
make[1]: Entering directory
`/cygdrive/c/project/U-Boot_20050803/u-boot/board/m5272c3'
m68k-elf-gcc -g  -Os   -ffixed-d7 -D__KERNEL__ -DTEXT_BASE=0xffe00000 -I/cyg
drive/c/project/U-Boot_20050803/u-boot/include -fno-builtin -ffreestanding -
nostdinc -isystem
/usr/local/m68k-uclinux-tools/lib/gcc/m68k-uclinux/3.4.0/include -pipe  -DCO
NFIG_M68K -D__M68K__ -m5307 -Wall -Wstrict-prototypes -c -o m5272c3.o
m5272c3.c
m68k-elf-gcc -g  -Os   -ffixed-d7 -D__KERNEL__ -DTEXT_BASE=0xffe00000 -I/cyg
drive/c/project/U-Boot_20050803/u-boot/include -fno-builtin -ffreestanding -
nostdinc -isystem
/usr/local/m68k-uclinux-tools/lib/gcc/m68k-uclinux/3.4.0/include -pipe  -DCO
NFIG_M68K -D__M68K__ -m5307 -Wall -Wstrict-prototypes -c -o flash.o flash.c
flash.c: In function `flash_print_info':
flash.c:68: error: label at end of compound statement
make[1]: *** [flash.o] Error 1
make[1]: Leaving directory
`/cygdrive/c/project/U-Boot_20050803/u-boot/board/m5272c3'
make: *** [board/m5272c3/libm5272c3.a] Error 2

this flash.c file is version 1.1 from 2003/12/08.

- ok, made patch in flash.c
  compiling proceeds, but next error:

UNDEF_SYM=`m68k-elf-objdump -x lib_generic/libgeneric.a
board/m5272c3/libm5272c3.a cpu/mcf52x2/libmcf52x2.a lib_m68k/libm68k.a
fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a
fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a
rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a
post/libpost.a post/cpu/libcpu.a common/libcommon.a |sed  -n -e
's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
        m68k-elf-ld -Bstatic -T
/cygdrive/c/project/U-Boot_20050803/u-boot/board/m5272c3/u-boot.lds -Ttext
0xffe00000  -n $UNDEF_SYM cpu/mcf52x2/start.o \
                --start-group lib_generic/libgeneric.a
board/m5272c3/libm5272c3.a cpu/mcf52x2/libmcf52x2.a lib_m68k/libm68k.a
fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a
fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a
rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a
post/libpost.a post/cpu/libcpu.a common/libcommon.a --end-group -L
/usr/local/m68k-uclinux-tools/lib/gcc/m68k-uclinux/3.4.0/m5307 -lgcc \
                -Map u-boot.map -o u-boot
/cygdrive/x/uCLinux/install/bin/m68k-elf-ld.real: internal error
/cygdrive/x/uCLinux/binutils-2.15.90.0.1.1/ld/ldlang.c 1977
make: *** [u-boot] Error 1

code from binutils:

int
lang_symbol_definition_iteration (const char *name)
{
  struct lang_definedness_hash_entry *defentry
    = (struct lang_definedness_hash_entry *)
    bfd_hash_lookup (&lang_definedness_table, name, FALSE, FALSE);

  /* We've already created this one on the presence of DEFINED in the
     script, so it can't be NULL unless something is borked elsewhere in
     the code.  */
  if (defentry == NULL)
line 1977:    FAIL ();
^^^^^^^^^^^^^^^^^^^^^^

  return defentry->iteration;
}

======================================================

so my overall questions,
Is then main reason for this problems that I use GCC3.4.0 toolchain ??
Are other people using U-Boot for coldfire M52xx ??
and did run into same problems ??
I like to hear from their solutions/advices.

=======================================================

Thanks in advance.

Teun Grinwis

Adesys BV
Molenweer 4, 2291 NR
Postbus 60, 2290 AB
Wateringen (NL)
Tel.: +31 174 296389
Fax : +31 174 293807
www.adesys.nl





More information about the U-Boot mailing list