[ECOS] Mismatch between 'C' and 'C++' structures

Bill Marcotte bill@pentek.com
Thu Jun 22 12:34:00 GMT 2000


> > I am currently working on an i960 port of ECOS.  When I build ECOS
>  with
> > Asserts enabled, I get the following message when I run the code:
> > 
> >    Size of C struct (cyg_mempool_var) !=
> >                Size of C++ struct (Cyg_Mempool_Variable)
> > 
> >    sizeof(cyg_mempool_var) = 0x30
> >    sizeof(Cyg_Mempool_Variable) = 0x40
> > 
> > Does anyone know how to resolve this?
> 
> Well the obvious question is whether you modified any of the generic
>  kernel
> code in this area.
> 
> Failing that, it would appear that the i960 g++ must pad C++ classes in
> some way different to i960 gcc pads structs. Perhaps there is some
>  compiler
> switch that can be used to prevent this.
> 
> And just to check, you are compiling the kernel with -fno-rtti aren't
>  you?
> 

I was able to resolve this problem by compiling with the mic-compat switch.


More information about the Ecos-discuss mailing list