[openbeos] Re: Wonderbrush/Other R5 apps under Haiku

  • From: Oliver Tappe <openbeos@xxxxxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Fri, 27 Jan 2006 18:50:00 +0100

On 2006-01-27 at 17:08:35 [+0100], François Revol <revol@xxxxxxx> wrote:
> > 
> > 
> > No, not yet, but I can verify that the symbol is mangled differently
> > when
> > built under Linux, namely to "GetFamilyAndStyle__C5BFontPA63_cT1".
> > I'll
> > look into this tonight.
> 
> [revol@patrick ~]$ echo GetFamilyAndStyle__C5BFontPA64_cPA64_c | c++
> filt
> BFont::GetFamilyAndStyle(char (*)[64], char (*)[64]) const
> [revol@patrick ~]$ echo GetFamilyAndStyle__C5BFontPA63_cT1 | c++filt
> BFont::GetFamilyAndStyle(char (*)[63], char (*)[63]) const
> 
> Seems like the font_style and font_family types have 1 less char or
> something...
> I guess the T1 thingy is something like "same as first last type"

Yep, these are what the gcc-guys call 'repetition codes'. 

There used to be a bug in the gcc's c++-mangler with respect to these 
repetition codes for array types that causes problems with the symbol 
mentioned by Simon. 
I remember having to patch gcc-2.95.3 to deal with this (aka: to actually 
mangle the names in the way the older compilers did in order to match what 
lives in libbe.so).

I suppose Ingo has not applied the respective patch 
(beos-specific/name-mangling.patch), as it probably doesn't go down well 
with gcc-4's completely different and all new C++-parser >:o/

Ingo, please tell if I can give you a hand on this.

cheers,
        Oliver

Other related posts: