Originally posted by Dard
I have a similar situation. I run Debian Wheezy with r600g from git, for a 5770.
Code:
/usr/bin/ld: skipping incompatible /usr/local/xorg32/lib/libdrm.so when searching for -ldrm
My setup is based on a script I got from DanL, which I disrespectfully modified so I wouldn't have to schroot. I run my script as an unprivileged user (albeit allowed to sudo make and ldconfig nopasswd), which compiles in a home directory before installed to /opt/xorg/ and /opt/xorg32/.
Dependencies for 64-bit, more or less (mostly more):
Code:
libdrm-dev libdrm-radeon1 flex bison libxmu-dev libxmu-headers libxmuu-dev libxi-dev libxrandr-dev xorg-dev libdirectfb-bin automake autoconf libxcb-glx0 libxcb-glx0-dev libtool xutils-dev libx11-xcb-dev libgl1-mesa-dev libglu1-mesa-dev libudev-dev libvdpau1 libvdpau-dev libselinux1-dev
Code:
cd ~/opt git clone git://anongit.freedesktop.org/mesa/drm git clone git://anongit.freedesktop.org/mesa/mesa git clone git://anongit.freedesktop.org/xorg/driver/xf86-video-ati
Code:
cd drm ./autogen.sh --disable-intel --prefix=/opt/xorg make sudo make install sudo ldconfig cd ../mesa ./autogen.sh --prefix=/opt/xorg --with-gallium-drivers=swrast,r600 --with-dri-drivers= --disable-gallium-llvm --enable-xcb --enable-gallium-egl --enable-openvg --enable-gbm --enable-gallium-gbm --enable-xvmc --enable-vdpau --enable-gallium-g3dvl --enable-shared-glapi --enable-gles1 --enable-gles2 --enable-selinux make sudo make install sudo ldconfig cd ../xf86-video-ati ./autogen.sh --prefix=/opt/xorg make sudo make install sudo ldconfig
Dependencies for 32-bit:
Code:
ia32-libs-dev ia32-libs-gtk libc6-dev-i386 gcc-multilib g++-multilib
Code:
#!/bin/bash # update r600g, both x86 and x86_64. # 2011-08-15 function failExit() { echo 'failure!'; exit 1; } echo " * * * updating r600g * * *" echo " x86_64:" echo "Updating DRM" cd drm make distclean && git pull || failExit echo "Building DRM" ./autogen.sh --disable-intel --prefix=/opt/xorg && make || failExit echo "Installing DRM" sudo make install && sudo ldconfig || failExit echo "Updating Mesa" cd ../mesa make distclean && git pull || failExit echo "Building Mesa" ./autogen.sh --prefix=/opt/xorg --with-gallium-drivers=swrast,r600 --with-dri-drivers= --disable-gallium-llvm --enable-xcb --enable-gallium-egl --enable-openvg --enable-gbm --enable-gallium-gbm --enable-xvmc --enable-vdpau --enable-gallium-g3dvl --enable-shared-glapi --enable-gles1 --enable-gles2 --enable-selinux && make || failExit echo "Installing Mesa" sudo make install && sudo ldconfig || failExit echo "Updating xf86-video-ati" cd ../xf86-video-ati make distclean && git pull || failExit echo "Building xf86-video-ati" ./autogen.sh --prefix=/opt/xorg && make || failExit echo "Installing xf86-video-ati" sudo make install && sudo ldconfig || failExit echo " x86_64 done." exit 0 echo " x86:" echo "Building drm" cd ../drm make distclean && ./autogen.sh --prefix=/opt/xorg32 --libdir=/opt/xorg32/lib CFLAGS="-m32 -O2 -g" --disable-intel && make || failExit echo "Installing drm" sudo make install && sudo ldconfig || failExit echo "Building Mesa" cd ../mesa make distclean && CFLAGS="-m32" CXXFLAGS="-m32" PKG_CONFIG_PATH=/opt/xorg32/lib/pkgconfig:/opt/xorg32/share/pkgconfig LDFLAGS=-L/opt/xorg32/lib CPPFLAGS=-I/opt/xorg32/include ./autogen.sh --prefix=/opt/xorg32 --libdir=/opt/xorg32/lib --with-gallium-drivers="swrast,r600" --with-dri-drivers= --with-dri-driverdir="/opt/xorg32/lib/dri" --enable-32-bit --disable-gallium-llvm --enable-xcb --enable-gallium-egl --enable-openvg --enable-gbm --enable-gallium-gbm --enable-xvmc --enable-vdpau --enable-gallium-g3dvl --enable-shared-glapi --enable-gles1 --enable-gles2 && make || failExit # removed --enable-selinux from above due to incompatibility echo "Installing Mesa" sudo make install && sudo ldconfig || failExit echo " x86 done." echo " * * * updating r600g done. * * *"
The PKG_CONFIG_PATH, LDFLAGS, and CPPFLAGS variables in the line to make 32-bit Mesa are what fix the libdrm.so problem (at least, for me). I didn't figure it out until I saw them mentioned here.
There might be something missing ldconfig-wise; I'm not sure what....
Obviously, the script is half-baked or worse I haven't even tested a 32-bit application here since reinstalling Debian and writing the script. Update: Just tested it with $ LIBGL_DEBUG=verbose lugaru. It works, and is using the right r600g.
My Mesa configuration is rather bloated -- so you might want to trim it back to the --enable-xcb or so. It *might* be missing a flag or two. You might want to add a flag or two.
Hope that helps. (Usual liability disclaimers apply if it doesn't.) Consider the script free software -- I'll stick a license on it if necessary.
Comment