This is the mail archive of the ecos-discuss@sourceware.cygnus.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]

Re: Mismatch between 'C' and 'C++' structures


> > 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.

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