This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Help with linux synthetic target, please.


On Mon, Mar 08, 2004 at 03:41:25PM +0000, Gordon Scott wrote:
> Hi,
> 
> I've been trying to do this apparently simple task for hours and keep
> falling.
> 
> I've finally gotten eCos itself to build (configtool, Build->Library)
> after discovering the rather hidden hal/synth...host stuff,

It might be hidden, but running the configure script would of found
and built it for you. Did you read the README.host file?

> but I'm now
> falling at getting the tests running.  configtool, Build->Tests fails
> with a rather fundamental undefined reference: __write that sounds like
> I still have some host support stuff missing. What's amiss, please?

No this is normal for that one test. Its a toolchain issue which only
affects synth. Its a particularly thorny problem with no simple
solutions so we simply leave it broken and tell people every time they
ask without searching the email archive :-)

You should find that all the other tests build properly.

> Here's the tail of the Build-Tests output, if it helps.
> 
> 
> /opt/ecos/ecos-2.0/packages/infra/v2_0/tests/cxxsupp.cxx
> /opt/ecos/ecos-2.0/packages/infra/v2_0/tests/cxxsupp.cxx: In function `void cyg_start()':
> /opt/ecos/ecos-2.0/packages/infra/v2_0/tests/cxxsupp.cxx:70: warning: can't inline call to `void Pure::inline_fun1()'
> /opt/ecos/ecos-2.0/packages/infra/v2_0/tests/cxxsupp.cxx:133: warning: called from here
> gcc -g -nostdlib -Wl,-static -Wl,--fatal-warnings -L/Toolsets/eCos/ecos/build/ecos-work/synth_build/linux-synth_install/lib -Ttarget.ld -o /Toolsets/eCos/ecos/build/ecos-work/synth_build/linux-synth_install/tests/infra/v2_0/tests/cxxsupp tests/cxxsupp.o
> make[1]: Leaving directory `/Toolsets/eCos/ecos/build/ecos-work/synth_build/linux-synth_build/infra/v2_0'
> /usr/lib/gcc-lib/i486-suse-linux/2.95.3/libgcc.a(_pure.o): In function `__pure_virtual':
> make: Leaving directory `/Toolsets/eCos/ecos/build/ecos-work/synth_build/linux-synth_build'
> /usr/src/packages/BUILD/gcc-2.95.3/obj-i486-suse-linux/gcc/../../gcc/libgcc2.c(.text+0x22): undefined reference to `__write'
> 
> collect2: ld returned 1 exit status
> make[1]: *** [/Toolsets/eCos/ecos/build/ecos-work/synth_build/linux-synth_install/tests/infra/v2_0/tests/cxxsupp] Error 1
> make: *** [tests] Error 2
> 
> Hmm, another question .. the two tests that do appear to have made
> OK, 'basic' and 'context', will run in a ddd window, but never break
> anywghere in the main() function supplied. I get the impression that
> main() is a placeholder to keep linker happy and not breaking ther is
> normal. Right? .. or do I have some other fundamental problem?

There are a number of startup functions, cyg_user_start(), cyg_start()
etc. The tests tend to use these and not main(). See the
documentation. main() is there more for POSIX compatibility. This is
all in the documentation.

      Andrew

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]