From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from ptx.hi.pengutronix.de ([2001:6f8:1178:2:5054:ff:fec0:8e10] ident=Debian-exim) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1WrNaV-0004Ns-4Y for ptxdist@pengutronix.de; Mon, 02 Jun 2014 10:27:23 +0200 Received: from mol by ptx.hi.pengutronix.de with local (Exim 4.80) (envelope-from ) id 1WrNae-0007KV-Dd for ptxdist@pengutronix.de; Mon, 02 Jun 2014 10:27:32 +0200 Date: Mon, 2 Jun 2014 10:27:32 +0200 From: Michael Olbrich Message-ID: <20140602082732.GL26228@pengutronix.de> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [ptxdist] Mesa DRI drivers path Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de On Mon, May 19, 2014 at 02:19:02PM +0200, Roger Karis wrote: > while building an i568-based linux distribution with PTXdist 2014.4 we > discovered a deployment problem involving mesalib and xorg-server. > > The xorg-server package uses pkg-config during the prepare phase to > determine the absolute path where DRI drivers are installed. The path > is stored in the variable 'dridriverdir' in dri.pc. > > In previous versions of mesalib (e.g. 8.0.3), this path variable was > fully expanded at package preparation time (for example to > /usr/lib/dri). In the current packaged version (10.1.0), this path is > not fully expanded but remains relative to the install prefix (which > is set to /usr at prepare). At install time the prefix is replaced by > ${pcfiledir}/../.. which makes the dridriverdir relative to the > sysroot-target folder. > > When starting the xorg-server on the target, this means that the > drivers will be loaded from an absolute path using > .../platform-foo/sysroot-target/.... Because the drivers are located > at /usr/lib/dri, this fails with a AIGLX dlopen() error. > > The workaround we currently employ is to explicitly specify the driver > directory (--with-dri-driverdir) during mesalib preparation, but of > course it would be much better if there was a proper solution to this > problem. I think setting --with-dri-driverdir explicitly is actually the only sane way to handle this. The problem ist that pkg-config cannot really handle sysroot/destdir. Take look at dri.pc there is 'includedir'. That will probably be uses as '-I$(includedir)' so it needs to bee '$(SYSROOT)/something'. On the other hand 'dridriverdir' probably used while installing: "... $(DESTDIR)$(dridriverdir) ..." so it must not contain '$(SYSROOT)' as you noticed. I've come across cases where such a variable is used both ways. This is usually where really ugly patches start to appear. Setting "--with-dri-driverdir" with an appropriate comment is a rather clean and simple fix in comparison. Michael -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- ptxdist mailing list ptxdist@pengutronix.de