Subject: pkg/10446: loading errors using XMMS's plugins
To: None <gnats-bugs@gnats.netbsd.org>
From: Brian de Alwis <bsd@manumission.org>
List: netbsd-bugs
Date: 06/25/2000 20:24:10
>Number:         10446
>Category:       pkg
>Synopsis:       loading errors using XMMS's plugins
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jun 25 20:25:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Brian de Alwis
>Release:        thorpej's May 26 snapshot of 1.4Z
>Organization:
>Environment:
	
System: NetBSD cr68894-a.crdva1.bc.wave.home.com 1.4Z NetBSD 1.4Z (GENERIC) #12: Sat May 27 16:55:41 PDT 2000 root@swinger:/u1/snapshots/src/sys/arch/i386/compile/GENERIC i386
Package: audio/xmms; installs xmms-1.0.1


>Description:
Running xmms `compiled out-of-the-box' produces the following output:

    $ xmms
    /usr/pkg/lib/xmms/Output/libOSS.so: Undefined PLT symbol "_oss_ioctl"
    (reloc type = 7, symnum = 26)
    /usr/pkg/lib/xmms/Input/libcdaudio.so: Undefined PLT symbol "_oss_ioctl"
    (reloc type = 7, symnum = 30)

This symbol is in /usr/lib/libossaudio.so.  Doing an `ldd' on, say
`libOSS.so' produces:

    $ pwd
    /usr/pkgsrc/audio/xmms/work/xmms-1.0.1/Output/OSS
    $ ldd .libs/libOSS.so
    .libs/libOSS.so:
	     -lc.12 => /usr/lib/libc.so.12

No libossaudio.so. It turns out that our pkglibtool (pkglibtool-ELF-1.2p2)
doesn't specify prereq libraries when actually building a shared-library.
And since the xmms binary isn't linked against libossaudio.so, the
shlib is not found at run-time, and there are unresolved symbols.

I'll note that we have other libraries which specify prereqs, like
/usr/X11R6/lib/libXt.so.

Maybe this is a bug with XMMS's setup? That it should specify
certain libraries as essential? Or maybe it's a problem with configure,
that isn't realizing this requirement?

>How-To-Repeat:
    $ cd /usr/pkgsrc/audio/xmms; make install
    $ /usr/pkg/bin/xmms
    <watch the PLT errors>

>Fix:
    Explicitly specify the dependent libraries? Linking by hand produces
    the right ldd results; I'm not quite sure how to modify libtool
    to do this though.
>Release-Note:
>Audit-Trail:
>Unformatted: