[Expat-discuss] expat, XFree86, and soname

Jeremy Huddleston jeremyhu at uclink4.berkeley.edu
Sat Mar 1 02:57:49 EST 2003


I just installed XFree86 4.3, and to my supprise it includes expat 
1.95.2.  I was going to delete it so that I could use the 1.95.6 that I 
have on my system instead, but there is a small problem.  XFree86 calls 
the library libexpat.so.1 while the soname used in the expat tarballs is 
libexpat.so.0.  Clearly this is not a great situation.  I can (and have) 
removed the libexpat* files from /usr/X11R6/lib and run he following in 
/usr/local/lib:

ld -shared -soname=libexpat.so.1 libexpat.so.0 -o libexpat.so.1

This has the effect of allowing files linked against libexpat.so.1 to 
gain access to the libexpat.so.0 "through" it.

Alternatively, you can create a symlink:

ln -s libexpat.so.0 libexpat.so.1

While these work arounds work, it does not solve the problem with the 
soname.  Some of my programs will be looking for libexpat.so.0 and some 
will be looking for libexpat.so.1.

Because of this, will all future libexpat.so.1 and libexpat.so.0 
libraries be binary compatible with eachother, and will future versions 
start using the libexpat.so.1 soname?

Thanks,
Jeremy




More information about the Expat-discuss mailing list