[csw-maintainers] problems with symbol version script

Ben Walton bwalton at opencsw.org
Wed Jun 23 02:12:07 CEST 2010


Hi All,

I'm trying to build an updated libxslt which has, since the last
release, added a symbol version script.  The build fails with:

libtool: link: /opt/studio/SOS12/SUNWspro/bin/cc -G -h libxslt.so.1 -o
.libs/libxslt.so.1.1.26  .libs/attrvt.o .libs/xslt.o
.libs/xsltlocale.o .libs/xsltutils.o .libs/pattern.o .libs/templates.o
.libs/variables.o .libs/keys.o .libs/numbers.o .libs/extensions.o
.libs/extra.o .libs/functions.o .libs/namespaces.o .libs/imports.o
.libs/attributes.o .libs/documents.o .libs/preproc.o .libs/transform.o
.libs/security.o   -R/opt/csw/lib -L/opt/csw/lib -lxml2 -lz -lpthread
-liconv -lsocket -lnsl -lm -lc  -m32 -xarch=v8 -Wl,-M
-Wl,./libxslt.syms -m32 -xarch=v8
Undefined                       first referenced
 symbol                             in file
_fini
/opt/studio/SOS12/SUNWspro/prod/lib/crti.o  (symbol has no version
assigned)
_init
/opt/studio/SOS12/SUNWspro/prod/lib/crti.o  (symbol has no version
assigned)
xsltPointerListFree                 ./libxslt.syms
xsltCopyTree                        .libs/transform.o  (symbol has no
version assigned)
xsltTransStorageAdd                 ./libxslt.syms
xsltPointerListCreate               ./libxslt.syms
xsltPointerListAddSize              ./libxslt.syms
xsltParseSequenceConstructor        ./libxslt.syms
xsltComputingGlobalVarMarker        .libs/variables.o  (symbol has no
version assigned)
xsltPointerListClear                ./libxslt.syms
xsltParseAnyXSLTElem                ./libxslt.syms
xsltRestoreDocumentNamespaces       ./libxslt.syms
xsltXSLTAttrMarker                  ./libxslt.syms
xsltTransStorageRemove              ./libxslt.syms
_lib_version
/opt/studio/SOS12/SUNWspro/prod/lib/values-xa.o  (symbol has no
version assigned)
xsltDefaultTrace                    .libs/transform.o  (symbol has no
version assigned)
xsltStyleStylesheetLevelGetExtData  ./libxslt.syms
xsltConstNamespaceNameXSLT          ./libxslt.syms
xsltMatchPattern                    ./libxslt.syms
ld: fatal: Symbol referencing errors. No output written to
.libs/libxslt.so.1.1.26
gmake: *** [libxslt.la] Error 1

So far, I've been able to make the build work by either removing the
-Wl,-M -Wl,-./libxslt.syms parameters, thus disabling the symbol
versioning completely or by added -Wl,-B -Wl,local to the arguments,
thus changing the intended behaviour of the symbol map (all symbols in
the map are defined in the global scope).

The symbol version script looks ok[1] to me.

Has anyone hit this before?  I'd prefer to enable the functionality if
possible since that makes for better .so files...

Any and all help is appreciated.

Thanks
-Ben

[1] I'll be submitting a patch upstream to correct the names...looks
    like a copy error from libxml2.  They build the .syms file from an
    xml document and an xslt transform file where the transform file
    contains the LIBXML2 tags presumably as they were pulled in from
    that twin project.
--
Ben Walton
Systems Programmer - CHASS
University of Toronto
C:416.407.5610 | W:416.978.4302



More information about the maintainers mailing list