[csw-maintainers] missing symbol libz

Laurent Blume laurent at opencsw.org
Wed May 22 20:39:58 CEST 2013


On 2013-05-22 12:06 AM, Riccardo Mottola wrote:
> ls -l /opt/csw/lib/libz.so.1
> lrwxrwxrwx   1 root     root          13 Apr  7 18:57
> /opt/csw/lib/libz.so.1 -> libz.so.1.2.7
> 
> The linker ought to prefer this one? ldd says something even different:
> ldd libxml2.so.2
>         libdl.so.1 =>    /lib/libdl.so.1
>         libpthread.so.1 =>       /lib/libpthread.so.1
>         libz.so.1 =>     /opt/csw/lib/sparcv8plus+vis/libz.so.1
<snip>

That's correct. Actually, it's probably an indirect link, because you
didn't provide -R/opt/csw/lib/$ISALIST in your linking.

If you do an ldd -v, you will get which other lib is asking for this one.
You must not link directly against those, it's the runtime linker that
chooses thet best one according to the best architecture your current
CPU supports.

> -L/opt/csw/lib -R/opt/csw/lib <snip> -L/usr/lib

That's good: OpenCSW's lib comes first, before the system's. No problem
with that, it doesn't matter if you add other -L after it.

> -L../Source/./obj -L../Model/./obj
> -L/home/multix/GNUstep/Library/Libraries
> -L/opt/GNUstep/Local/Library/Libraries
> -L/opt/GNUstep/System/Library/Libraries     -lgnustep-gui -lpng -ltiff
> -lz -ljpeg -lm   -lgnustep-base    -lobjc   -lsocket -lnsl -lm

That's good, -lz is here.

> Undefined                       first referenced
>  symbol                             in file
> gzopen64                            /opt/csw/lib/libxml2.so.2
> 
> which would include /opt/csw/lib but not the particular
> /opt/csw/lib/sparcv8/ !

Again, it must not include it, so don't try.

What comes to my mind here is, have you installed CSWlibz-dev?
Ie, do you have /opt/csw/lib/libz.so, so that the linker can find it? If
you have only the .so.1*, it's not enough.

Laurent


More information about the maintainers mailing list