Re: Fwd: symbol versioning script error
Daniel Veillard <[email protected]>
| Newsgroups | gmane.comp.gnome.lib.xslt |
|---|---|
| Message-ID | <[email protected]> |
On Sun, Feb 27, 2011 at 08:29:36PM -0500, Ben Walton wrote: > Hi Daniel, > > I'm reforwarding this based on your note a few minutes ago. You may > have handled this previously as it was outside the three month > window. > > Thanks > -Ben > > --- Begin forwarded message from Ben Walton --- > From: Ben Walton <[email protected]> > To: XSLT List <[email protected]> > Date: Tue, 22 Jun 2010 21:00:56 -0400 > Subject: symbol versioning script error > > > Hi All, > > I discovered while troubleshooting another issue that the symbol > versioning script used by libxslt embeds LIBXML2_$version in the .so > files that get built. This seems to be due to the xsl transform file > in doc/ and likely results from simply copying this in from the xml2 > project. > > The attached patch will correct the issue, but will cause another one > whereby the symbol names in the resulting .so files will no longer > match those embeded in other binaries and .so files using libxslt. A > rebuild of libxslt would need to coincide with a rebuild of everything > linking against it. Aie aie aie !!! Another really stupid cut and paste error :-( If we "fix" this all the libraries requiring the old names will just fail which is like a big big problem. > Thoughts? The only way to "fix" this is to also force the output of the existing names LIBXML2_... out for the current set. This is less problematic than it seems as libxml2 was always with version > 2 and since libxslt stick to version < 1 they can provide a false positive. I'm seeing right now: paphio:~/XSLT/tests/general -> nm -D /usr/lib64/libxslt.so.1.1.26 0000000000000000 A LIBXML2_1.0.11 0000000000000000 A LIBXML2_1.0.12 0000000000000000 A LIBXML2_1.0.13 0000000000000000 A LIBXML2_1.0.16 0000000000000000 A LIBXML2_1.0.17 0000000000000000 A LIBXML2_1.0.18 0000000000000000 A LIBXML2_1.0.22 0000000000000000 A LIBXML2_1.0.24 0000000000000000 A LIBXML2_1.0.30 0000000000000000 A LIBXML2_1.0.32 0000000000000000 A LIBXML2_1.0.33 0000000000000000 A LIBXML2_1.1.0 0000000000000000 A LIBXML2_1.1.1 0000000000000000 A LIBXML2_1.1.18 0000000000000000 A LIBXML2_1.1.2 0000000000000000 A LIBXML2_1.1.20 0000000000000000 A LIBXML2_1.1.23 0000000000000000 A LIBXML2_1.1.24 0000000000000000 A LIBXML2_1.1.25 0000000000000000 A LIBXML2_1.1.26 0000000000000000 A LIBXML2_1.1.3 0000000000000000 A LIBXML2_1.1.5 0000000000000000 A LIBXML2_1.1.7 0000000000000000 A LIBXML2_1.1.9 .... So we are somehow lucky but this is nasty ! We could either: Generate both sets for example --------------- LIBXML2_1.0.13 { global: # extensions xsltExtModuleElementPreComputeLookup; xsltXPathGetTransformContext; } LIBXML2_1.0.12; and LIBXSLT_1.0.13 { global: # extensions xsltExtModuleElementPreComputeLookup; xsltXPathGetTransformContext; } LIBXSLT_1.0.12; ------------------ or manage to change the logic in the stylesheet that for version > 1.1.27 then use the LIBXSLT prefix (and connect the first to LIBXML2_1.1.26) I'm not sure what's the best approach honnestly ! > Thanks Thanks for raising the issue ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ [email protected] | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/