[ User ] Login

Bug 232: OPEN

Mach64 dri: Undefined symbol _glapi_tls_Context

Date: 2020-04-11 - Creator: tomaspollak - Priority standard - 2 messages


I'm running Slitaz on an old VAIO laptop that has a Rage Mobility chip, so 
I installed the following packages to get 3D acceleration/DRI:

- libdrm-mach64
- mesa-dri-mach64
- xorg-fx86-video-mach64

I updated my xorg.conf and everything seems fine (Xorg starts without a 
problem), but if I try to run glxinfo or glxgears I get no acceleration, and 
after running with LIBGL_DEBUG=verbose then I see what seems to be the reason:

dlopen /usr/lib/dri/mach64_dri.so failed (/usr/lib/dri/mach64_dri.so: undefined 
symbol: _glapi_tls_Context)

How can I fix this?

Thank you

Affected package(s): mesa-dri-mach64 libdrm-mach64


By: mojo on 2020-05-11 15:10

Verify the mesa version installed is the same as mesa-dri-mach64 version.

By: Gorgg33333 on 2020-06-13 03:59


I had a similar problem, and I found out that it was caused by the fact that 
the mesa7 package only provides the libGLES\* libraries, and not the libGL\* 
libraries. This makes it so that the named symbol is not available in the libGL 
library, because the symbol was removed in mesa in between versions 7 and 9, 
and only the old version (mesa7) has it. Because the mach64 driver was also 
removed upstream in between these versions, it still uses the symbol. This is 
shown by the following:

You can solve this by compiling Mesa 7 from source and installing manually, 
which I did following the commands on the mesa7 package receipt 
( pkgs.slitaz.org/?receipt=mesa7). Run 'make install' at the end 
instead of the commands in genpkg_rules to install the needed libraries.

For convenience, here are the specific commands I used:
tazpkg recharge
tazpkg get-install expat-dev libdrm-dev xorg-libXdamage-dev pkg-config 
xorg-libXxf86vm-dev xorg-libXt-dev xorg-dri2proto xorg-glproto talloc 
xorg-makedepend lesstif libxml2-python xorg-imake lesstif-dev xorg-server-dev 
udev-dev file libtool automake autoconf
tar -xf MesaLib-7.10.2.tar.bz2
cd Mesa-7.10.2
autoreconf -vfi
./configure --prefix=/usr --with-x --with-dri-driverdir=/usr/lib/dri 
--with-dri-drivers=mach64 --disable-gallium-llvm --enable-glx-tls 
--with-driver=dri --enable-xcb --disable-glut --enable-gles1 --enable-gles2 
--enable-egl --enable-texture-float --disable-shared-dricore
make install

This driver will only provide OpenGL 1.x, which most modern applications using 
OpenGL are incompatible with. However, if you do happen to have applications 
using this old version of GL, they will (most likely) run much faster.

Keep in mind that you will have to reinstall these libraries after each upgrade 
that involves the packages mesa and mesa7. I am not exactly sure how this 
problem would be best resolved in the packaging system. Maybe something like a 
metapackage provided by two conflicting packages, assuming that is possible?

I hope this was helpful, and thank you for using SliTaz.