[tex-live] OpenBSD

Jonathan Kew jonathan_kew at sil.org
Tue Jan 2 17:12:50 CET 2007


On 1 Jan 2007, at 11:03 pm, Martin Schröder wrote:
>
> Note that a ./xetex -version gives warnings:
> --------------
>> ./xetex --version
> ./xetex:/usr/X11R6/lib/libfreetype.so.13.1: ./xetex : WARNING:
> symbol(tt_driver_class) size mismatch, relink your program
> ....etc....

Martin, what does "freetype-config --version" report on your system?  
(Just curious.... what version of freetype2 that is installed in /usr/ 
X11R6?)


Here's what I *think* is going on; maybe someone can confirm whether  
my understanding sounds right.

- XeTeX is built (by default) using the copy of Freetype2 in the TL  
source tree. This is currently v2.2.1. We build this as a static  
library and link with it, so that xetex's use of Freetype2 is  
entirely independent of what's installed (or not) in the host platform.

- On the other hand, we link dynamically with the host's  
libfontconfig, as this seems to be the best way of finding the user's  
"installed" fonts. It is likely that libfontconfig, in turn, depends  
on libfreetype (installed .so library). Therefore, xetex inherits a  
dependency on the installed libfreetype, in addition to having its  
own statically-linked freetype2 routines.

- These two versions of Freetype2 have some incompatible structures  
(either the actual definitions have changed, or they were built with  
different compilers or options such that the structure sizes turned  
out different).

- In principle, there would be a problem if the same Freetype2  
structures were accessed both directly (using the statically-linked  
version) and through fontconfig APIs (which would lead to the  
dynamically-linked lib). But xetex doesn't do this; any use of the  
host system's libfreetype.so is internal to fontconfig and does not  
interact with xetex's own use of freetype2.

- Therefore, I don't think it matters if these two freetype2 versions  
are incompatible, as this warning indicates. Martin, if you can try  
the test I described for Olaf recently (see "Testing XeTeX IRIX  
build", Dec 28), that would help to confirm this.

- However, we obviously don't want a program that prints warnings  
like this each time it's used!


So what do we do?

- One option would be to build xetex without the static libfreetype  
from TL (--using-system-freetype2 might work for this, though I  
haven't tested this lately). However, this would presumably mean that  
if the installed FT2 is updated, the xetex binary may break.

- Another possibility might be to statically link fontconfig as well  
as freetype2, like the rest of the libraries used. However, my  
experience when I tried this some time back was that a static  
fontconfig build may not interoperate properly with the host  
platform's normal installation.

- If I'm right that the version mismatch does not actually matter,  
then all we really need is a way to suppress the warning messages  
from the loader. But I don't know how to do that.


Comments, corrections, and suggestions most welcome!

JK




More information about the tex-live mailing list