[Intel-gfx] [BUG] intel_drv.so fails to load
Adam Jackson
ajax at redhat.com
Wed Jul 18 21:34:50 CEST 2012
On Wed, 2012-07-18 at 20:04 +0200, Knut Petersen wrote:
> Ok, I built caef63e0268e59e439b030a9a338e81d5cf8e311 using
>
> export MYROOT=/home/knut/git/X11-t
> export PREFIX=$MYROOT/usr
> export EPREFIX=$PREFIX
> export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PREFIX/share/pkgconfig
> export PATH=$PREFIX/bin:$PATH
> export ACLOCAL="aclocal -I $PREFIX/share/aclocal"
> export LD_LIBRARY_PATH=$PREFIX/lib
> export PYTHONPATH=$PREFIX/lib/python2.7/site-packages
> export MAKEFLAGS="-j 15"
> export GMAKEFLAGS="-j 15"
> export CC=/opt/icecream/bin/gcc
> export CXX=/opt/icecream/bin/g++
> export CFLAGS="-g2 -O3 --verbose -D MULTITOUCH"
> export CXXFLAGS="-g2 -O3 "
> export LD_PRELOAD=$PREFIX/lib/libmtdev.so
> util/modular/build.sh -g $PREFIX -o driver/xf86-video-intel --confflags "--disable-xaa --localstatedir=$MYROOT/var"
>
> and got the following log entries:
>
> [107706.682] (II) LoadModule: "intel"
> [107706.682] (II) Loading /home/knut/git/X11-t/usr/lib/xorg/modules/drivers/intel_drv.so
> [107706.700] (EE) Failed to load /home/knut/git/X11-t/usr/lib/xorg/modules/drivers/intel_drv.so: /home/knut/git/X11-t/usr/lib/xorg/modules/drivers/intel_drv.so: undefined symbol: XAAGetPatternROP
> [107706.700] (II) UnloadModule: "intel"
> [107706.700] (II) Unloading intel
> [107706.700] (EE) Failed to load module "intel" (loader failed, 7)
> [107706.700] (EE) No drivers available.
> [107706.709]
> Fatal server error:
> [107706.709] no screens found
>
> Bad behaviour restored.
So, one difference between the driver you built and the driver in
factory:
http://download.opensuse.org/pub/opensuse/factory/repo/oss/suse/i586/xf86-video-intel-2.20.0-1.1.i586.rpm
Is that yours has this, and theirs doesn't:
hate:~% eu-readelf -a intel_drv.so | grep TEXTREL
TEXTREL
FLAGS TEXTREL
This suggests that you managed to build the X driver without -fPIC, and
eu-findtextrel(1) agrees. This would cause the problem if text
relocations are also not lazy, and I believe that to be the case. [1]
To verify this assumption you could just jam -fPIC into CFLAGS and see
if the result works, but that's just papering over the bug, not
necessarily a fix.
I have no idea _how_ you managed to build it that way though. I would
start by inspecting config.log and libtool from the build tree, or by
pointing $CC at real local gcc instead of icecream.
[1] - This, I think, is more artifact of implementation rather than
something done of necessity, but since textrels in DSOs are an i686ism
as far as Linux is concerned - and generally frowned upon even there -
it would be a lot of typing for little benefit.
- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/intel-gfx/attachments/20120718/b940d50a/attachment.sig>
More information about the Intel-gfx
mailing list