[Development] Multi-subarch update

Thiago Macieira thiago.macieira at intel.com
Thu Dec 1 17:29:41 CET 2022

Hello all

A few of us have just had a call to discuss what we're going to do for the 
functionality I proposed for 6.5. Here are our conclusions and proposals.

First, we're going to postpone this to 6.6, on account of feature freeze being 
too close. While I think the risk is minimal for non-Linux architectures, I 
might have broken things I don't know about. And there's also a risk for Linux 
where we accidentally and silently mis-compile something and it only fails at 
runtime. So this requires more eyes and more time.

Second, the code I developed is ugly. And it's fragile, leading to the 
potential issues mentioned above. Instead, Alexandru had a different idea on 
how to do this, which matches what we're doing for the Android Multi-ABI 
support, which could then be extended to the macOS universal builds. Details 
on this on a separate email. But we'd like to try this alternate solution 
instead and see if it is more resilient than what I did. For this alone, we 
need more time.

Third, there's the question of compile time and whether it's worth the cost 
for all libraries (cost in time to build as well as installed size). I did 
this for every single Qt module library, but my intention was to add an option 
so a few libraries' CMakeLists.txt files could opt in, leaving it disabled for 
everything else, which further reduces the risk by reducing the problem 
surface. To make a choice, we'll need a metric, to be determined. My 
guesstimate is that it will be worth for our three traditional core libraries 
(QtCore, QtGui, QtWidget), the two Qml core libraries (QtQml and QtQuick), and 
the Qt3D Core and Render libraries. It's not a coincidence that the five 
biggest libraries of our own code are also the first five I listed here; maybe 
#7 (QtQuick3DPhysics) could be there too.

Fourth, there's the Qt3D qmake code. I was surprised to find out that qt3d 6.x 
module was meant to compile with Qt 5's qmake. This is not tested in our CI, I 
believe. I don't think any Linux distributions know about this, either. So 
who's using it? We need a decision going forward whether this support shall 
remain, in particular as Qt 6.5 should be a Commercial LTS, so 6.6 is a good 
point for dropping some compatibility.

Jörg, Tor Arne, Alexandru, Kai, Alexey, anything I forgot?

Thiago Macieira - thiago.macieira (AT) intel.com
  Cloud Software Architect - Intel DCAI Cloud Engineering

More information about the Development mailing list