[HarfBuzz] Compilation Troubles on Solaris 10

Richard Wordingham richard.wordingham at ntlworld.com
Tue Apr 9 12:41:17 PDT 2013


On Tue, 09 Apr 2013 14:08:52 -0400
Behdad Esfahbod <behdad at behdad.org> wrote:

> On 13-04-09 07:40 AM, Steven R. Loomis wrote:
> > (meant to reply all)
> > 
> > Richard,
> >  GCC 3.4.3 is about 9 years old- http://gcc.gnu.org/gcc-3.4/
> >  Would it be possible to rebuild gcc, even in a user account?

I'll take that as 'Code is correct, compiler is wrong, not worth
changing code to accommodate it.'  The differences are just the
compile-time checking associated with the copying of pointers and
references.

I did wonder if C++ may have evolved between compiler builds.  I'm
worried that I can't work out why the code is correct and the compiler
is wrong.

> > Could be endian problems? 

Unlikely with the compiler.

I seem to have got the basic code working, though my solution to the
FreeType problem may be horribly inefficient.  (I haven't tried hb-view
on Solaris yet.)

> Looks like Richard's problem was with pkg-config and as a result not
> detecting FreeType.

That's the problems that manifests itself at run-time, though the
message on running configure should have been heeded.  The issues are:

1) Configure insists on at least version 0.20 of pkg-config.  It
seems that a new, now used option was added then (or started working).
I think that autoconf deals with that, but there may be a problem with
old versions of pkg-config and old versions of autoconf together.
Which is definitive, configure or configure.ac?  Patching configure is
simple; I just change one of the many occurrences of '0.20' to '0.15'.
I haven't yet tested patching configure.ac.

2) FreeType has two sets of version numbers.  Version 2.1.9 (at least,
as identified by FT_Library_Version()) identifies itself as 9.7.3 in
freetype2.pc, and Version 2.3.11 identifies itself there as Version
9.22.3. The utility pkg-config extracts the number from freetype2.pc,
and compares this against 2.3.8.  I don't yet know what the
corresponding version number in freetype2.pc is, so I have no patch to
offer. (Presumably I can find this out by downloading Version 2.3.8.)

3) The check for Version 2.3.8 for Freetype may be because that is when
the newer, faster interface for extracting advance widths started
working.  The interface exists in Version 2.3.7, so it may have been
buggy, or perhaps the cut-off point is for some other reason.  The
interface does not exist in Version 2.1.9, or, at least, not in the
header files.

4) I have a working patch (well, tested horizontally, not yet tested
vertically) that will choose the old interface for FreeType Version
2.1.9 and choose the new interface for FreeType Version 2.3.11.

5) Bizarrely, the new interface seems not to be called to extract the
advance widths!  More precisely, the function
hb_ft_get_glyph_h_advance() in hb-ft.cc  does not seem to be called
within the shaper.  (It does get called when I invoke method
get_glyph_h_advance() between calls of hb_ft_font_set_funcs() and
hb_shape().)  I'm going to have to step through the code with the
debugger, because this makes no sense whatsoever.

Richard.



More information about the HarfBuzz mailing list