https://bugs.freedesktop.org/show_bug.cgi?id=108135

--- Comment #6 from Kenneth Graunke <kenn...@whitecape.org> ---
This does point out an even more serious issue though:

Megadrivers interacts very badly with drivers that have global C++
initializers.  When dlopen'ing a DRI driver, C++ global constructors will run
for ANY driver that is built in, even if that isn't the driver the user is
trying to use.

In other words, let's say you're on a Raspberry Pi and are trying to use the
vc4 driver.  If your distro happens to have built SWR, then you'll end up
running a bunch of SWR C++ constructors...when trying to dlopen
vc4_dri.so...because both live in the same .so file.

Such global initialization really ought to happen at driver screen init time,
not dlopen time.  IMO we should forbid C++ global objects in Mesa drivers.  (We
have a few in the compiler, but everybody uses the compiler.)  I don't know how
feasible that is, though.  If it isn't, maybe we need to exclude such drivers
from the megadrivers mechanism...

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to