Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved] xf86-video-nouveau fails at exaDriverAlloc symbol
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Desktop Environments
View previous topic :: View next topic  
Author Message
Vrenn
Apprentice
Apprentice


Joined: 15 Dec 2004
Posts: 285

PostPosted: Fri Aug 24, 2018 5:24 pm    Post subject: [solved] xf86-video-nouveau fails at exaDriverAlloc symbol Reply with quote

Hello dear Gentoo community!

I just want to share my experience on an problem I haven't found a solution here, just in case somebody gets in trouble too.

I have an old AMD 5200+ Gentoo machine which needed to to the upgrade to gcc and some spectre-fixes.
So I followed the gentoo gcc upgrade guide and took the long road by emerge -e world as I use llvm, mesa and many qt/kde packages.
I even did it two times as emerge -e system didn't work due to dependency problems (okay, that took some time but I love this machine).
After that sddm, or startx didn't load anymore.
/var/log/Xorg.0.log:
Code:
[    40.407] (II) LoadModule: "nouveau"
[    40.479] (II) Loading /usr/lib64/xorg/modules/drivers/nouveau_drv.so
[    40.526] (EE) Failed to load /usr/lib64/xorg/modules/drivers/nouveau_drv.so: /usr/lib64/xorg/modules/drivers/nouveau_drv.so: undefined symbol: exaDriverAlloc
[    40.526] (II) UnloadModule: "nouveau"
[    40.526] (II) Unloading nouveau
[    40.526] (EE) Failed to load module "nouveau" (loader failed, 7)
[    40.526] (II) LoadModule: "nv"
[    40.527] (WW) Warning, couldn't open module nv
[    40.527] (II) UnloadModule: "nv"
[    40.527] (II) Unloading nv
[    40.527] (EE) Failed to load module "nv" (module does not exist, 0)
The important line is "nouveau_drv.so: undefined symbol: exaDriverAlloc"

That took me to an arch bug complaining about unsafe compiler flags for nouveau.
Okay, my spectre fixes, lets take a look into my /etc/make.conf:
Code:
CFLAGS="-march=k8-sse3 -O2 -pipe -fno-plt -mindirect-branch=thunk -mfunction-return=thunk"

Seems I have overdone it. So just make a file just for the nouveau in your portage-config with safe flags and X will work again.
/etc/portage/env/x11-drivers/xf86-video-nouveau:
Code:
CFLAGS="-march=k8-sse3 -O2 -pipe -mindirect-branch=thunk -mfunction-return=thunk"
CXXFLAGS="${CFLAGS}

(just tried it's the -fno-plt flag)
_________________
With nice greetings
Vrenn
Back to top
View user's profile Send private message
Anon-E-moose
Advocate
Advocate


Joined: 23 May 2008
Posts: 3695
Location: Dallas area

PostPosted: Fri Aug 24, 2018 6:11 pm    Post subject: Reply with quote

Code:
-fno-plt

    Do not use the PLT for external function calls in position-independent code. Instead, load the callee address at call sites from the GOT and branch to it. This leads to more efficient code by eliminating PLT stubs and exposing GOT loads to optimizations. On architectures such as 32-bit x86 where PLT stubs expect the GOT pointer in a specific register, this gives more register allocation freedom to the compiler. Lazy binding requires use of the PLT; with -fno-plt all external symbols are resolved at load time.

    Alternatively, the function attribute noplt can be used to avoid calls through the PLT for specific external functions.

    In position-dependent code, a few targets also convert calls to functions that are marked to not use the PLT to use the GOT instead.

_________________
Asus m5a99fx, FX 8320 - nouveau & radeon, oss4
Acer laptop E5-575, i3-7100u - i965, alsa
---both---
4.14.62 kernel, profile 17.0 (no-pie) amd64-no-multilib
gcc 7.3.0, eudev, openrc, openbox, palemoon
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Desktop Environments All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum