[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