Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Nov 2007 13:28:58 -0300
From:      Alejandro Pulver <alepulver@FreeBSD.org>
To:        freebsd-hackers@FreeBSD.org
Subject:   dlopen: resolving external library symbols to calling program
Message-ID:  <20071130132858.1e4290a0@deimos.mars.bsd>

next in thread | raw e-mail | index | archive | help
--Sig_/6qg=HrxqZ=ub+bcoSc4UlQ0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable

Hello.

When I was updating the games/deng port, I found it failed at runtime
with the following error:

% doomsday
While opening dynamic library
/usr/local/lib/libdropengl.so:
  /usr/local/lib/libdropengl.so: Undefined symbol "ArgExists"
DD_InitDGL: Loading of libdropengl.so failed.
  (null).

The function is defined in m_args.c which is included in both
"doomsday" and "libdropengl.so". But nm(1) reports it as undefined for
"libdropengl.so". Also, it is loaded with RTLD_NOW.

% nm `which doomsday` | grep ArgExists
080d9ef0 T ArgExists

% nm /usr/local/lib/libdropengl.so | grep ArgExists
         U ArgExists

The files are linked with the "-flat namespace" and "-undefined
suppress" flags in Mac OS X (don't know if it's relevant here).

I think the simplest solution (if possible, of course) would be to make
dlopen() resolve these symbols to the main executable. I tried to do
this with RTLD_GLOBAL without success.

The port is available here (note that the application uses cmake to
build):
ftp://ftp.alepulver.com.ar/deng.tar.bz2

If you need any other information just ask me. I will appreciate any
help.

Thanks and Best Regards,
Ale

--Sig_/6qg=HrxqZ=ub+bcoSc4UlQ0
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQFHUDpLiV05EpRcP2ERAkO6AKCNAYMYGLtPtZ2h7RLGOU07YmN+7gCgnenB
sJb5VPO/Ml8GEwdV9jFYjXY=
=2lOJ
-----END PGP SIGNATURE-----

--Sig_/6qg=HrxqZ=ub+bcoSc4UlQ0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20071130132858.1e4290a0>