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


Bill Marcotte wrote:
> 
> 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?

Jifl
-- 
Red Hat, 35 Cambridge Place, Cambridge, UK. CB2 1NS  Tel: +44 (1223) 728762
"Plan to be spontaneous tomorrow."  ||  These opinions are all my own fault

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