[Development] 32bit linux build of qt5.10.0 w/ webengine

Christian Gagneraud chgans at gmail.com
Fri Jan 5 02:40:40 CET 2018


On 5 January 2018 at 12:22, Thiago Macieira <thiago.macieira at intel.com> wrote:
> On Thursday, 4 January 2018 20:52:40 -02 Christian Gagneraud wrote:
>> On 5 January 2018 at 03:16, Kevin Kofler <kevin.kofler at chello.at> wrote:
>> > Thiago Macieira wrote:
>> >> In particular: -no-sse2.
>> >>
>> >> If you use that option, that means you're optimising for Pentium III and
>> >> earlier, not Pentium 4. All Pentium 4 processors have SSE2.
>>
>> I was looking at LEDE (a fork/merge of OpenWRT) recently, and their
>> 'i386' build actually target Pentium 4, which is i686++
>> See https://lede-project.org/docs/instructionset/i386_pentium4
>
> I don't know what devices LEDE is targetting, but we can break down 32-bit x86
> into four segments:

It's not just about what hardware you target, in my case, i cannot
build the codebase in 64 bits, simply because the code is not 64-bits
ready (mainly due to legacy old/complicated components): Not only the
code base is full of 32 vs 64 issues, but it actually doesn't build at
all, and fixing it is not an easy job and not a priority (yet).
I wish too, i could target Linux-x86_64, but i cannot. This codebase
currently builds for WINTEL32 and Linux/ARM32, it used to be built for
a Geode or VIA proc, some time ago, with Qt-4.x

And thinking about that, why is it a pain to maintain Linux-x86_32
when you have to maintain Linux-<non-intel>_32 and <non-linux>-*_32?
>From http://doc.qt.io/qt-5/supported-platforms.html, Qt-5.10 supports
the following 32 bits platforms:
- Android-armv7
- WatchOS-armv7
- Windows-{7,8.1,10}-x86_32
- Windows-UWP-{x86_32,armv7}
- Boot2Qt-{armv7,x86_32}
- Qnx-{armv7,x86_32}

Please note the Boot2Qt-x86_32, which is a weird case as it is an
"Embedded Linux" for x86_32 (Yocto).
The only reason for supporting "Embedded Linux" for x86_32 and not
"Desktop Linux" for x86_32 is, I guess, CI workload.

> Obviously, my employer would like nothing better than we start targetting 2
> and 3. Those billions of transistors you have in your processor for AVX should
> get used to improve performance, not just produce heat.

Neatpick: AVX itself doesn't require billions of transistors, the
first intel proc to require more than a billion transistor are 4 and 6
cores i7.
https://en.wikipedia.org/wiki/Transistor_count

This slides are interesting as well,
https://www.inf.ethz.ch/personal/markusp/teaching/263-2300-ETH-spring12/slides/class03.pdf.
L2/L3 cache is what takes the most space.

>> I have been fighting with x86_32 build of Qt too, I never managed to
>> build Qt in 32 bits on a 64 bits OS, I always ended up hacking badly
>> the host distro (OpenSuse and Ubuntu). I'm now using 32bits OS in a
>> docker container.
>
> I've never had a problem, but I confess I don't try to build all of Qt. I
> build all[*] of Qt with GCC and Clang on Linux, but that's 64-bit. The 32-bit
> build is only for qtbase, once every couple of months. For example, I still
> need to do the benchmarking for the new qHash function in 32-bit, which I find
> to be a poor use of my time so I haven't done yet.
> [*] not including qtwebengine. I've never built that.

You told me so a few month ago, and I switched to OpenSuse since then,
but i still had issues, and the only way to get around was to break
the host distro (force-install some dev packages, 'ln -sf' SO here and
there, ...)
Please share your script if you have some.

>
>> You're not (and I'm not either) the first one to report problems with
>> building Qt on x86_32 Linux recently.
>> Linux32 is officially not supported any more, and I think it is a mistake.
>
> Yes, it is. Please report issues so we can fix them.

I might do it once i'm back on my 32 bits build task.
But the difficulty is to create a "good" ticket. If I do it right now,
the issue would look like:
"I followed https://wiki.qt.io/Building_Qt_5_from_Git and i cannot
build Qt-5.6 for x86_32 on a "common" Linux distro (x86_32/64)"

With all due respect to Wiki contributors,
https://wiki.qt.io/Building_Qt_5_from_Git looks like a giant mess,
with the usual 200 Linux distro specifics, outdated and unorganised
information, ...


>> Claiming that nobody needs Linux-x86_32 nowadays is plainly wrong.
>
> Agreed. There are people who need it. Very few, but they exist.

What do you base your "very few" on?
I would be interested to see the download stats of Qt-5.5 for Linux-32.

>> And dropping opensource/commercial Linux-x86_32 support just before Qt-5.6
>> (LTS) was not a user/client friendly move either.
>
> Since it wasn't dropped, the point is moot.

Linux-Desktop-x86_32 was dropped with Qt-5.6. The last Qt version to
support it was Qt-5.5, and Qt-5.5 has now disappear from
http://download.qt.io/official_releases/qt/ ...

Or maybe we're not talking about the same thing. I'm not even sure
what the Qt Company means by "Supported until Mar. 16, 2019" on
http://doc.qt.io/qt-5.6/supported-platforms.html (that's Qt-5.6).
What I'm sure of, is that i cannot download Qt-5.6 binaries for
Linux-x86_32 (commercial or opensource).


Chris



More information about the Development mailing list