[ECOS] Now I'm confused ...

Gary Thomas gary@mlbassoc.com
Tue Mar 30 06:48:00 GMT 2004

Chuck McManis said:
> So here's the deal, I recently upgraded my FreeBSD box to 4.9 the "hard
> way" (clean re-install) to get to KDE 3.2. The only thing that I didn't
> manage to protect was my existing eCos install.
> So basically I get to revisit all the stuff I did a year ago and forgot
> about :-)
> I've built a new gcc toolchain out of 3.3 (FreeBSD uses 2.95 by default in
> the 4-STABLE branch). All that went as planned.
> I uses anon-cvs to recover the ECOS packages (I had previously simply
> installed the 2.0 packages)
> I didn't find source to ecosconfig (I know its there somewhere, but ..) so
> I re-used the one that I had built from 2.0.
> To test the install I tried to rebuild my redboot image (target is
> i386-elf) so I did:
> ecosconfig tree
> and got:
> ecos.ecc: error
>      The savefile contains a cdl_option for an unknown option
> Invalid savefile "ecos.ecc".
> 1 error occurred while reading in the savefile data.
> Which wasn't particularly surprising given the amount of change since 2.0.
> So I tried to create a new redboot using:
> ecosconfig new pc redboot
> then edited ecos.ecc and changed the HAL_STARTUP option to FLOPPY
> Tried to gmake and got this:
> i386-elf-gcc -g -nostdlib -Wl,--gc-sections -Wl,-static
> -L/u1/cmcmanis/unix/tmp/ecos/usr/rb/install/lib -Ttarget.ld -o
> /u1/cmcmanis/unix/tmp/ecos/usr/rb/install/bin/gdb_module.img
> src/stubrom/gdb_module.o
> /u1/cmcmanis/unix/tmp/ecos/usr/rb/install/lib/libtarget.a(redboot_main.o)(.text.cyg_start+0x0):
> In function `valid_address':
> /u2/ecos-src/ecos/packages/redboot/current/src/main.c:743: multiple
> definition of `cyg_start'
> src/stubrom/gdb_module.o(.text.cyg_start+0x0):/u2/ecos-src/ecos/packages/hal/common/current/src/stubrom/stubrom.c:57:
> first defined here
> /usr/local/gnu/lib/gcc-lib/i386-elf/3.3.2/../../../../i386-elf/bin/ld:
> Warning: size of symbol `cyg_start' changed from 15 in
> src/stubrom/gdb_module.o to 896 in
> /u1/cmcmanis/unix/tmp/ecos/usr/rb/install/lib/libtarget.a(redboot_main.o)
> collect2: ld returned 1 exit status
> gmake[1]: ***
> [/u1/cmcmanis/unix/tmp/ecos/usr/rb/install/bin/gdb_module.img] Error 1
> gmake[1]: Leaving directory
> `/u1/cmcmanis/unix/tmp/ecos/usr/rb/hal/common/current'
> gmake: *** [build] Error 2
> Multiple definition of cyg_start ? I'd expect this to be redboot's entry point.

Obviously, it's trying to build the GDB stubs as well as RedBoot which
will cause no end of confusion.  I'm not sure how it got confused like

> What else do I need to change in the ecos.ecc to get a vanilla redboot ?

You should be able to follow these steps:
  % ecosconfig new pc redboot
  % ecosconfig import ${ECOS_REPOSITORY}/hal/i386/pc/current/misc/redboot_FLOPPY.ecm
  % ecosconfig tree
  % make

I just tried it and it worked fine for me.

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list