[tex-k] FAIL: tests/ttf.test
Jindrich Novy
jnovy at redhat.com
Wed Nov 14 13:17:32 CET 2012
Hi Peter, Norbert, Karl, Jakub,
On Wed, Nov 14, 2012 at 01:15:18PM +0100, Jindrich Novy wrote:
> Hello Peter, Norbert,
>
> On Wed, Nov 14, 2012 at 12:59:16PM +0100, Peter Breitenlohner wrote:
> > On Fri, 9 Nov 2012, Jindrich Novy wrote:
> >
> > >>On Mi, 07 Nov 2012, Peter Breitenlohner wrote:
> > >>>according to the msg above the first undefined reference is
> > >>> icu_50::OpenTypeLayoutEngine::characterProcessing(unsigned short const*,
> > >>> int, int, int, signed char, unsigned short*&, icu_50::LEGlyphStorage&,
> > >>> LEErrorCode&)
> > >>>so please verify that libs/icu/icu-build/lib/libicule.a defines exactly this.
> > >>
> > >>nm --demangle libicule.a | grep -i icu_50::OpenTypeLayoutEngine::characterProcessing
> > >>
> > >>gives me:
> > >>
> > >>0000000000000000 T
> > >>icu_50::OpenTypeLayoutEngine::characterProcessing(char16_t const*, int,
> > >>int, int, signed char, char16_t*&, icu_50::LEGlyphStorage&, LEErrorCode&)
> > >>
> > >>So we would need
> > >> unsigned short <-> char16_t
> > >>to make that match.
> > >
> > >After consultation with gcc guys it turned out that libicu compiles
> > >well just with -std=c++11 in CXXFLAGS. The problem is that part of it
> > >is built with a different C++ stanard (c++03) what makes some symbols
> > >unresolved.
> >
> > Hi Jindrich, Norbert, Karl,
> >
> > as far as I can see, 'unsigned short' and 'char16_t' are actually the same
> > and they are compatible for arg1 (const LEUnicode []) but there is a problem
> > with arg6 (LEUnicode*&). This may or may not be a bug in gcc-4.7.2.
>
> char16_t is keyword only in C++11 standard and newer + it has it's own
> mangling. No one guarantees C++03 and C++11 are ABI compatible so the
> best way is to compile all either in C++11 or C++03.
>
> >
> > You can avoid this problem by using gcc <=4.6 if possible, or for gcc 4.7
> > invoke
> > Build ... CXX="'g++ -std=c++11'" ...
> >
> > Note, however, that for gcc 4.7 you need at least svn r28258 because there
> > was also a problem with dvisvgm.
>
> Yes, I patched dvisvgm to not to print the version to workaround this
> problem with older revisions.
>
> >
> > We'll have to see if the xetex problem disappears with a later gcc version
> > or otherwise add -std=c++11 to the xetex specific CXXFLAGS (when using gcc
> > 4.7 or later).
>
> I'm Cc-ing Jakub who gave me the C++ related advises. Please feel free to ask
> him for details if needed.
Forgot to add Jakub to Cc so doing it now.
Thanks,
Jindrich
--
Jindrich Novy <jnovy at redhat.com> http://people.redhat.com/jnovy/
Kdo víno má a nepije, kdo hrozny má a nejí je, kdo ženu má a nelíbá,
kdo zábavě se vyhýbá, na toho vemte bič a hůl, to není člověk, to je vůl.
--- Jan Werich
More information about the tex-k
mailing list