does graphite affect the c++ munging? Does -On?

Jonathan Wakely jwakely.gcc@gmail.com
Mon Nov 5 00:32:00 GMT 2012


On 4 November 2012 23:09, James Cloos wrote:
>
> I'm seeing an unexpected undefined reference error from ld(1) for a
> package which uses icu.
>
> The error is dependent on CXXFLAGS, notably the three graphite flags.
>
> Although, now that I try to duplicate that, I cannot and get the same
> undefined refs every time.  :-/
>
> The first undefined ref is to:
>
> icu::LEFontInstance::mapCharsToGlyphs(unsigned short const*,
>                                       int,
>                                       int,
>                                       signed char,
>                                       icu::LECharMapper const*,
>                                       signed char,
>                                       icu::LEGlyphStorage&) const
>
> The definition in icu's src is:
>
> void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[],
>                                       le_int32 offset,
>                                       le_int32 count,
>                                       le_bool reverse,
>                                       const LECharMapper *mapper,
>                                       le_bool filterZeroWidth,
>                                       LEGlyphStorage &glyphStorage) const
>
> and the library has:
>
> _ZNK3icu14LEFontInstance16mapCharsToGlyphsEPKDsiiaPKNS_12LECharMapperEaRNS_14LEGlyphStorageE
>
> which I presume splits out as:
>
>   E PK Ds i i a PK NS_12LECharMapper E a R NS_14LEGlyphStorage E
>
> which seems to match, presuming PKDs is a pointer to ushort, and a is
> a signed char.

It doesn't match, c++filt shows that symbol is

icu::LEFontInstance::mapCharsToGlyphs(char16_t const*, int, int,
signed char, icu::LECharMapper const*, signed char,
icu::LEGlyphStorage&) const

char16_t is not unsigned short.



More information about the Gcc-help mailing list