From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bill Marcotte To: jlarmour@redhat.co.uk, bill@pentek.com Cc: ecos-discuss@sourceware.cygnus.com Subject: Re: [ECOS] Mismatch between 'C' and 'C++' structures Date: Thu, 22 Jun 2000 12:34:00 -0000 Message-id: <9786.961702487.0@NO-ID-FOUND.mhonarc.org> X-SW-Source: 2000-06/msg00256.html > > 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.