Bug 54424 - [build problem] libdricore9.0.0.so.1 => not found on classic drivers
[build problem] libdricore9.0.0.so.1 => not found on classic drivers
Status: RESOLVED NOTOURBUG
Product: Mesa
Classification: Unclassified
Component: Mesa core
git
All Linux (All)
: high critical
Assigned To: mesa-dev
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-09-03 09:10 UTC by Fabio Pedretti
Modified: 2012-09-03 11:46 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Fabio Pedretti 2012-09-03 09:10:02 UTC
All the classic drivers links to libdricore9.0.0.so.1 which is in the same directory of the drivers, but they cannot find it:

:/usr/lib/i386-linux-gnu/dri$ ldd radeon_dri.so 
	linux-gate.so.1 =>  (0x00c4e000)
	libdricore9.0.0.so.1 => not found
	libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0x0035a000)
	libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0x00dc3000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0x00590000)
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0x002a4000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0x00b31000)
	libdrm_radeon.so.1 => /usr/lib/i386-linux-gnu/libdrm_radeon.so.1 (0x00aa7000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00367000)
	librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0x0070b000)
	/lib/ld-linux.so.2 (0x00d3b000)
:/usr/lib/i386-linux-gnu/dri$ ls
dummy_drv_video.so  i965_dri.so         libdricore9.0.0.so.1  nouveau_vieux_dri.so  r300_dri.so  radeon_dri.so  vmwgfx_dri.so
i915_dri.so         libdricore9.0.0.so  nouveau_dri.so        r200_dri.so           r600_dri.so  swrast_dri.so
:/usr/lib/i386-linux-gnu/dri$ file libdricore9.0.0.so.1 
libdricore9.0.0.so.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0xd1357d6d9e9a27f605b97710f3c7782a10c72e49, stripped

Gallium drivers doesn't link to it.

configured with:
cd /build/buildd/mesa-9.1~git1209021312.a96119~gd~p/build/dri && \
	../../configure --prefix=/usr --mandir=\${prefix}/share/man \
	             --infodir=\${prefix}/share/info --sysconfdir=/etc \
	             --libdir=\${prefix}/lib/i386-linux-gnu \
	             --localstatedir=/var --build=i686-linux-gnu --enable-dri --with-dri-drivers=" r200 radeon nouveau swrast i915 i965" --with-dri-driverdir=/usr/lib/i386-linux-gnu/dri --enable-glx-tls --enable-texture-float --enable-xa --enable-gallium-g3dvl --enable-debug --enable-driglx-direct --with-egl-platforms="x11 drm" --enable-gallium-llvm --with-llvm-shared-libs --with-gallium-drivers=" nouveau r600 r300 svga i915 radeonsi swrast" --enable-gles1 --enable-gles2 --enable-openvg --enable-gallium-egl CFLAGS="-Wall -g -O2" CXXFLAGS="-Wall -g -O2"


Full build log (parallel build) is here:
https://launchpadlibrarian.net/114433895/buildlog_ubuntu-precise-i386.mesa_9.1~git1209021312.a96119~gd~p_BUILDING.txt.gz
Comment 1 Michel Dänzer 2012-09-03 10:01:43 UTC
(In reply to comment #1)
> :/usr/lib/i386-linux-gnu/dri$ ldd radeon_dri.so 
>     linux-gate.so.1 =>  (0x00c4e000)
>     libdricore9.0.0.so.1 => not found
[...]
> :/usr/lib/i386-linux-gnu/dri$ file libdricore9.0.0.so.1 

The build log shows upstream installing it in /usr/lib/i386-linux-gnu, where it should be found. Looks like a downstream packaging bug.


> Gallium drivers doesn't link to it.

Now that would be a bug, but again I can't reproduce it with a local upstream build.
Comment 2 sergio.callegari 2012-09-03 11:00:25 UTC
I confirm that soft linking libdricore9.0.0.so.1 in /usr/lib/x86_64-linux-gnu fixes the issue for me.
Comment 3 Fabio Pedretti 2012-09-03 11:46:29 UTC
(In reply to comment #1)
> The build log shows upstream installing it in /usr/lib/i386-linux-gnu, where it
> should be found. Looks like a downstream packaging bug.

OK, thanks.

> > Gallium drivers doesn't link to it.
> 
> Now that would be a bug, but again I can't reproduce it with a local upstream
> build.

It looks that gallium drivers have it statically linked, their size is much bigger than on the classic drivers.

$ ls -lh
totale 29M
-rw-r--r-- 1 root root 380K set  3 13:22 i915_dri.so
-rw-r--r-- 1 root root 976K set  3 13:22 i965_dri.so
-rw-r--r-- 1 root root 5,8M set  3 13:22 nouveau_dri.so
-rw-r--r-- 1 root root 185K set  3 13:22 nouveau_vieux_dri.so
-rw-r--r-- 1 root root 322K set  3 13:22 r200_dri.so
-rw-r--r-- 1 root root 5,2M set  3 13:22 r300_dri.so
-rw-r--r-- 1 root root 5,2M set  3 13:22 r600_dri.so
-rw-r--r-- 1 root root 296K set  3 13:22 radeon_dri.so
-rw-r--r-- 1 root root 5,3M set  3 13:22 swrast_dri.so
-rw-r--r-- 1 root root 5,0M set  3 13:22 vmwgfx_dri.so