[MacPorts] #64932: libcxx for PowerPC
MacPorts
noreply at macports.org
Sun Apr 3 18:15:13 UTC 2022
#64932: libcxx for PowerPC
---------------------------+-------------------------------------
Reporter: barracuda156 | Owner: jeremyhu
Type: enhancement | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.7.2
Resolution: | Keywords: powerpc, leopard, ppc64
Port: libcxx |
---------------------------+-------------------------------------
Comment (by kencu):
Replying to [comment:5 barracuda156]:
> This is off-topic, but I was wondering, what ''exactly'' prevents Qt5
from building on Darwin PPC (given it builds on Linux PPC, as you notice)?
On MacOS, the qt team has decided, rightfully, to have as modern a GUI
implementation as possible. Marketing, etc. If they don't do that, someone
else will come along and scoop all their hard-won users. So, to have as
modern a GUI as possible, they track the latest MacOS offerings, using the
latest (usually) MacOS SDK and feature set.
They follow what Apple follows, which is support for the last three
systems, for the most part. Everything else is dumped. We can sometimes
make the newer qt versions work on older systems with some effort that
upstream is unwilling to do as -- why would they?
So, qt5 won't build on darwin PPC. Now I did get qt5.4 to build on 10.6,
with moderate efforts, but it was not overly useful because by the time I
did that, not much software would still build against qt5.4 anyway. But
some did.
To allow qt5 (and qt6) to build on older MacOS versions, you'd have to use
the unix pathways, like sdl2 or gtk3 or something like that. In fact, gtk3
runs pretty good on old Darwin systems, so that could work.
However, the upstream qt code does not support building at gtk3 on Apple
systems directly, and sprinkled in 1000 places throughout the qt5 and qt6
code are {{{#ifdef __APPLE___}}} blocks that then take you into MacOS SDK
sections.
You would have to find a way to change all of these in some what to use
the APPLE sections when needed but not when not needed.
Oh, it's 100% possible to do it. A team of five or six people, who know
what they are doing, working for six months to a year, could do it. That
is about $1.5 to $2 million in the current salary environment. And then it
is unmaintainable, as you'd need to track upstream and keep that ball
rolling.
For smaller things, like FireFox on PPC, Cameron actually did do that as a
"labour-of-love" for a few years, ergo TenFourFox. And I made that work on
10.4 Intel and up, with Riccardo, for the same reason. But then the
codebase there flipped and it became too much work. So it was abandoned.
Which is exactly what will happen, probably, if anyone puts in the effort
to make qt5.15 build as gtk3 on older darwin systems. Once everything
requires qt6 (soon enough) that effort is wasted.
In addition to the SDK issues, there is a certain amount of assembly here
and there in the qt code -- I haven't looked lately at just how much, but
this was an issue at one point. That would also have to be translated into
darwin PPC assembly. There are very few people who can do that any longer,
as it is a dead skill.
So -- realistically -- there will never be qt5.15 or qt6 on darwin PPC,
save a superhuman effort from someone or some group of very bored
geniuses.
--
Ticket URL: <https://trac.macports.org/ticket/64932#comment:10>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list