[ECOS] problems compiling host tools

Bart Veer bartv@ecoscentric.com
Thu Mar 6 15:44:00 GMT 2003

>>>>> "Aldo" == Aldo Dolfi <dolfi@nec-labs.com> writes:

    Aldo> Thanks, Jonathan,
    >>> and I got the linking errors in the attached file. [snip]
    >> > 
    >> /home/dolfi/ecos/jessica/install/lib/libtarget.a(kernel_thread.o)(.text._Z41__static_initialization_and_destruction_0ii+0x2b): 
    >> In function `__static_initialization_and_destruction_0(int, int)':
    >> /home/dolfi/ecos/jessica/install/include/cyg/kernel/thread.inl:254: 
    >> undefined reference to `__dso_handle'
    >> This is odd. This implies eCos was built without "-fno-exceptions 
    >> -fno-rtti". But unless you changed the configuration to use different 
    >> flags (as the commands you wrote above indicate) that really shouldn't 
    >> happen.
    >> How did you build the i386-elf-gcc? Or where did you get it from? 

    Aldo> Ops, I simply thought I would not need a cross compiler,
    Aldo> because host and target are on the same arch, so I simply
    Aldo> created symlinks to the system provided tools... Is this
    Aldo> wrong?

Yes. In gcc terms an architecture refers to the whole run-time
environment, not just the processor. When you build a compiler for a
Linux system the compiler knows that glibc will provide certain
functionality, and hence the generated code can make calls to e.g.
__dso_handle. Instead for an eCos PC target you need to configure and
build a compiler for raw i386-elf, which means the compiler will make
no such assumptions about the run-time environment.


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

More information about the Ecos-discuss mailing list