[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