Closed KaiJan57 closed 2 years ago
You should need to rebuild the xf86-video-opentegra package after Xorg's upgrade, have you done it?
Sure, compiles fine, but xorg gives said error...
I don't see that problem using Arch and Xorg 1.21.1.3, but I don't use xf86-video-opentegra-git and compiling/installing opentegra manually. Either you're somehow installing the older package build or there is a problem in the pkgbuild script, maybe a missing dependency?
Please check whether you have these lines in the Xorg's log, you should've the compiled for 1.21.1.1
:
(II) Loading /usr/lib/xorg/modules/drivers/opentegra_drv.so
(II) Module opentegra: vendor="X.Org Foundation"
compiled for 1.21.1.1, module version = 0.6.0
EDIT: one package that failed to upgrade seems to have blocked a lot of xorg infrastructure from upgrading. I fixed dependency issues and am looking forward to have opentegra working again after updating said xorg packages.
Odd, it doesn't even show the expected line… context:
[ 400.685] (II) systemd-logind: took control of session /org/freedesktop/login1/session/c1 [ 400.690] (II) xfree86: Adding drm device (/dev/dri/card0) [ 400.690] (II) Platform probe for /sys/devices/soc0/50000000.host1x/drm/drm/card0 [ 400.697] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 11 paused 0 [ 400.700] (II) no primary bus or device found [ 400.700] falling back to /sys/devices/soc0/50000000.host1x/drm/drm/card0 [ 400.700] (II) LoadModule: "glx" [ 400.701] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so [ 400.712] (II) Module glx: vendor="X.Org Foundation" [ 400.712] compiled for 1.21.1.3, module version = 1.0.0 [ 400.712] ABI class: X.Org Server Extension, version 10.0 [ 400.712] (II) LoadModule: "opentegra" [ 400.712] (II) Loading /usr/lib/xorg/modules/drivers/opentegra_drv.so [ 400.724] (EE) Failed to load /usr/lib/xorg/modules/drivers/opentegra_drv.so: /usr/lib/xorg/modules/drivers/opentegra_drv.so: undefined symbol: exaDriverFini [ 400.724] (EE) Failed to load module "opentegra" (loader failed, 0) [ 400.724] (EE) No drivers available.
Also, I checked the build directory to make sure it indeed checks out the current version of the master branch.
No still undefined symbols, even when installing with make install
:(
I retried manual make install
using latest Arch Linux and it works using this method:
git clone https://github.com/grate-driver/xf86-video-opentegra.git
cd xf86-video-opentegra
sh autogen.sh --prefix=/usr
make install
I tried to build/install the PKGBUILD and I'm getting the same error as you.
I applied compiler flags changes to the PKGBUILD, which I picked up from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=xf86-video-intel-git, and now it works:
--- PKGBUILD 2022-03-06 20:18:37.890923877 +0300
+++ PKGBUILD 2022-03-06 20:18:51.125925177 +0300
@@ -8,9 +8,9 @@
arch=('armv7h')
url="http://github.com/grate-driver/xf86-video-opentegra"
license=('GPL')
-depends=('libdrm-grate-git' 'systemd' 'mesa-dri')
+#depends=('libdrm-grate-git' 'systemd' 'mesa-dri')
makedepends=('xorg-server-devel' 'git')
-conflicts=('xorg-server<1.20' 'X-ABI-VIDEODRV_VERSION<24' 'X-ABI-VIDEODRV_VERSION>=25', 'xf86-video-opentegra')
+#conflicts=('xorg-server<1.20' 'X-ABI-VIDEODRV_VERSION<24' 'X-ABI-VIDEODRV_VERSION>=25', 'xf86-video-opentegra')
groups=('xorg-drivers' 'xorg')
source=('git://github.com/grate-driver/xf86-video-opentegra.git')
sha256sums=('SKIP')
@@ -35,6 +35,14 @@
build() {
cd "${srcdir}/$_pkgname"
+
+ # Since pacman 5.0.2-2, hardened flags are now enabled in makepkg.conf
+ # With them, module fail to load with undefined symbol.
+ # See https://bugs.archlinux.org/task/55102 / https://bugs.archlinux.org/task/54845
+ export CFLAGS=${CFLAGS/-fno-plt}
+ export CXXFLAGS=${CXXFLAGS/-fno-plt}
+ export LDFLAGS=${LDFLAGS/,-z,now}
+
./configure --prefix=/usr
make
}
Thank you so much for your time even fixing the PKGBUILD
! It works now, after also cleaning the package's build directory.
You're welcome. Is it possible to update the AUR's PKGBUILD?
AFAIK the maintainer has to change it. But it is possible for everyone to pit patches into the comment section, so others are aware of this fix.
A recent
xorg-server
update on arch linux generated conflicts withxf86-video-opentegra-git
from AUR, so I updated the package conflictX-ABI-VIDEODRV_VERSION
. This driver installs fine now, but it seems to be missing symbols, preventingxorg
from loading it. The error message for xorg server version1.21.1.3
reads:Failed to load /usr/lib/xorg/modules/drivers/opentegra_drv.so: /usr/lib/xorg/modules/drivers/opentegra_drv.so: undefined symbol: exaDriverFini
Maybe implementingexaDriverFini
is enough to get the driver running again?