[Development] qtchooser (was: Re: Adding new third party component three.js to Qt?)

Thiago Macieira thiago.macieira at intel.com
Sun Jan 18 05:30:39 CET 2015


On Sunday 18 January 2015 04:37:50 Kevin Kofler wrote:
> > Moreover, the config files are text, they don't belong in /usr/lib.
> 
> .pc files are text too. They belong into /usr/lib* because they depend on
> the architecture and thus need to be multilibbed, and /usr/lib* is the only
> multilibbed subdirectory of /usr.

And yet they pose problems of the other sort. You solved some problems by 
creating others. For example:

$ pkg-config --cflags dbus-1
-I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include 

There are two problems in this line if I am trying to build a 32-bit program. 
The first is the obvious /usr/lib64. This isn't the common scenario, but there 
are other .pc that may have something arch-dependent in them.

The second and non-obvious one is that it didn't tell me that 
/usr/lib/libdbus-1.so is not present.

So pkg-config should be extended with an "-m32" switch that made it look for 
its sources in /usr/lib/pkgconfig, not in /usr/lib64/pkgconfig. The only way 
around it is to set PKGCONFIG_LIBDIR, as if we were cross-compiling. But if 
we're going to pretend as if we were cross-compiling, bring on the full thing 
and treat it as cross-compilation and skip multilib devel files.

> It would also mean yet one less use case for qtchooser. :-)

Right. That would reduce from 4 to 2 targets you need to support. Since it's 
more than 1, the use-case remains.

> > Until it's complete, using the 64-bit headers for a 32-bit build is also
> > unsupported. Help from distros would be appreciated.
> 
> For headers, we use the "qconfig-multilib.h" hack:
> http://pkgs.fedoraproject.org/cgit/qt5-qtbase.git/tree/qconfig-multilib.h
[snip]

I know.

My complaint is that distros deploy this hack, but none have felt the need to 
upstream a proper solution.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list