Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jun 2007 15:40:40 -0500 (CDT)
From:      "Sean C. Farley" <sean-freebsd@farley.org>
To:        freebsd-emulation@freebsd.org
Subject:   Library loading problem for Linux applications
Message-ID:  <20070614152441.C1140@baba.farley.org>

next in thread | raw e-mail | index | archive | help
Since the xorg 7.2 upgrade, I have been unable to run games/linux-ut
(maintainer is yours truly).  I believe it to be the way the libraries
are being loaded that is causing the problem.

If I try to run the ut (shell script that runs ut-bin), I believe
SDLDrv.so is having trouble finding the Linux libXext.so.6.

ut -log output (snipped):
Bound to SDLDrv.so
appError called:
Couldn't initialize SDL: No available video device

ktrace output:
52006 ut-bin   CALL  open(0xbfbfc5c0,0,0x287078ab)
52006 ut-bin   NAMI  "./tls/libXext.so.6"
52006 ut-bin   RET   open JUSTRETURN
52006 ut-bin   CALL  open(0xbfbfc5c0,0,0x287078ab)
52006 ut-bin   NAMI  "./libXext.so.6"
52006 ut-bin   RET   open JUSTRETURN
52006 ut-bin   CALL  open(0xbfbfc5c0,0,0x287078ab)
52006 ut-bin   NAMI "/compat/linux/usr/local/lib/tls/libXext.so.6"
52006 ut-bin   NAMI  "/usr/local/lib/tls/libXext.so.6"
52006 ut-bin   RET   open JUSTRETURN
52006 ut-bin   CALL  open(0xbfbfc5c0,0,0x287078ab)
52006 ut-bin   NAMI "/compat/linux/usr/local/lib/libXext.so.6"
52006 ut-bin   NAMI "/usr/local/lib/libXext.so.6"
52006 ut-bin   RET   open 7

If I fix the problem by running (cd /compat/linux/usr && ln -s X11R6
local), then this is solved.  Of course, there has to be a second
problem; it cannot find the Linux libGL.so.1.

ut -log output (snipped):
Bound to OpenGLDrv.so
Loaded render device class.
Initializing OpenGLDrv...
binding libGL.so.1
appError called:
Failed loading libGL.so.1: /usr/local/lib/libGL.so.1: ELF file OS ABI invalid

ktrace output:
1395 ut-bin   CALL  open(0xbfbfc870,0,0)
1395 ut-bin   NAMI  "./tls/libGL.so.1"
1395 ut-bin   RET   open JUSTRETURN
1395 ut-bin   CALL  open(0xbfbfc870,0,0)
1395 ut-bin   NAMI  "./libGL.so.1"
1395 ut-bin   RET   open JUSTRETURN
1395 ut-bin   CALL  open(0xbfbfc870,0,0)
1395 ut-bin   NAMI  "/compat/linux/usr/local/lib/tls/libGL.so.1"
1395 ut-bin   NAMI  "/usr/local/lib/tls/libGL.so.1"
1395 ut-bin   RET   open JUSTRETURN
1395 ut-bin   CALL  open(0xbfbfc870,0,0)
1395 ut-bin   NAMI  "/compat/linux/usr/local/lib/libGL.so.1"
1395 ut-bin   NAMI  "/usr/local/lib/libGL.so.1"
1395 ut-bin   RET   open 49/0x31

What is the correct solution to have the Linux application search all
relevant directories in /compat first?  LD_LIBRARY_PATH is ignored by
these open() calls.  The nVidia libGL.so.1 is installed in
/compat/linux/usr/lib.

Sean
-- 
sean-freebsd@farley.org



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