Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
During the past year much has been done in Macports for PowerPC systems. We got gcc10-bootstrap (credit to @catap and @iains) compiler that builds with just Xcode tools and is able to then build the latest GCC – gcc12 12.2.0 confirmed on 10.5.8, 10.6 PPC (10A190) and 10.6.8 Rosetta (10.4.11 may work too, needs some testing).
Many ports were fixed for PPC, including some forever-broken compilers like nhc98, hugs98 and OpenCoarrays.
Most of essential ports were fixed for Rosetta (some work is still in progress) and some progress is there with fixing ppc64 on 10.5.8 (this is not easy in many cases, unfortunately).
I hope to finish fixing Boost and Ruby for PPC soon and bring those fixes into Macports.
10.6 PPC is not officially supported (and will not be as long as I am the only contributor using it in practice), however a large chunk of Rosetta and generic PPC fixes apply to 10.6 PPC case. Situation now has substantially improved since 2021, and I think only a handful of ports gonna need out-of-tree fixes for 10.6 PPC. Dedicated updates will be here: https://forums.macrumors.com/thread...0-6-powerpc-10a190-and-10-6-8-rosetta.2332711

However to move further we need cooperative effort – there are too few people with PPC hardware, sufficient free time and motivation to work on PPC development in Macports (there are several, but resources are scarce).

(Of course, development does not have to be restricted to Macports, and in fact it is always preferable to bring fixes to upstream – unfortunately, the latter is not always possible, while in Macports it is easier, as long as we deal with official releases of MacOS.)

Anyone interested to contribute to PPC development, please join in. Especially those with relevant expertise (not necessarily PPC-specific), but also any enthusiasts.

What specifically is of interest:

1. There are several “big” ports which are broken for PPC or never had implementation to begin with:

Go
v8 and NodeJS
GHC
SBCL – UPD. Fixed for PPC, in Macports.
Nim
LLVM and friends (Libcxx, Libomp)
Julia
Qt5
Java 8+
OCaml (native compiler part)

2. There are some software which is lacking in Macports or outdated by years (for all archs), and it is desirable to have those implemented:

TFF – UPD. Added: https://ports.macports.org/port/tenfourfox and https://ports.macports.org/port/tenfourfox-devel
RStudio
Stan – UPD. Implemented via Rstan: https://ports.macports.org/port/R-rstan
Adium
Amule – UPD. https://ports.macports.org/port/amule
Keka

3. There are some ports working on ppc32 but lacking ppc64 implementation (or the latter being completely untested).
 
Last edited:

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
Let me briefly describe what is needed in regard of some ports of interest which I am/have been actually working on.

Ruby 31
Status: builds and kinda works on 10.6 (with my patches, not in master yet), broken on 10.5. Test suite on 10.6 passes to a point and freezes.
What is needed: check coroutine implementation (save/restore), check compatibility with BE, fix tests.
WIP: https://github.com/barracuda156/ruby31-ppc/tree/ruby31-ppc-upd2 (much behind master, I will deal with it soon)

NodeJS 12
Status: I have adapted patches from AIX branch and fixed the build system for Darwin PPC, but the build errs out on some static asserts.
What is needed: make it work :)
WIP: https://github.com/barracuda156/node-ppc/tree/nodejs12-ppc-darwin

Boost (context package)
Status: older version builds and seems to work (not in Macports), but likely lacks features. Newer one needs some work.
What is needed: check assembler, fix for Darwin ppc/ppc64 where needed.
WIP: https://github.com/barracuda156/context/tree/darwin-ppc
Older version of context: https://github.com/twlostow/libcontext (should merge my PR there)

Nim
Status: csources fixed, Nim itself fails on static asserts.
What is needed: fix the build.
WIP: https://github.com/nim-lang/csources_v1/pull/7

Openmp
Status: build is almost fixed, but fails on linking due to undefined atomics. Not sure why, -latomic is passed etc.
What is needed: either do magic with libatomic linking or possibly fix compiler-rt for PPC.
Discussion: https://github.com/iains/darwin-toolchains-start-here/discussions/30

OpenCoarrays
Status: build fixed and appears functional (already in Macports master), but tests freeze on Rosetta and seemingly PPC.
What is needed: IEEE_arithmetic for Gfortran; fix tests.
Discussion: https://github.com/iains/darwin-toolchains-start-here/discussions/40

OCaml
Status: bytecode compiler fixed and working fine; native is broken.
What is needed: fix assembler implementation for Darwin.
WIP: https://github.com/barracuda156/macports-ports/tree/ocaml-ppc (outdated, gonna return to it)

SBCL
Status: 2.0.9 builds but without threads, later versions fail. From 2.2.3 no PPC support.
What is needed: fix threads, restore PPC support, fix the build.
WIP: https://trac.macports.org/ticket/65188
 

gorignak

macrumors newbie
Sep 28, 2022
1
1
I recently got my Dual 2.0GHz G5 running and I was very happy to see that Macports still had PPC support. I really appreciate all the work people have done keeping the support for older systems alive. OCaml and SBCL are two of the things I was interested in getting running so I'll take a look and see if I can make any progress.
 
  • Like
Reactions: barracuda156

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
I recently got my Dual 2.0GHz G5 running and I was very happy to see that Macports still had PPC support. I really appreciate all the work people have done keeping the support for older systems alive. OCaml and SBCL are two of the things I was interested in getting running so I'll take a look and see if I can make any progress.

OCaml works on PPC as bytecode, though many packages may not have been adjusted yet (please report if you discover such cases – in effect, ocamlopt should not be invoked on PPC, usually that is determined by a target and fixed accordingly).
Whether native compiler can be fixed is an open question. I have made some progress with that, but it still does not work LOL.
@pmetzger said that OCaml 5 may not be compatible with PPC for native compiler at all – and thus we gonna be stuck with bytecode. I did not look into the code of v. 5 myself, but if it is too painful to fix native compiler, bytecode is good enough, just slower. Native compiler of OCaml 4 should be fixable for PPC.

SBCL is likely fixable, though PPC support has to be restored into the source (preferable into upstream). However, as of now, we were unable to build anything never than 2.0.9. If you could join in here, that gonna be great. (Check tickets I referred to above, there are two implementations how to build 2.0.9 for PPC.)
 
  • Like
Reactions: NODEraser

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
I have fixed R-app (R GUI) for 10.5 and 10.6: https://github.com/macports/macports-ports/pull/16371
UPD. Merged into master.

Disclaimer: tested on 10.5.8 with gcc11 for ppc32. May or may not work with other configs. 10.6 PPC should work, but at the moment I get an error with Vignettes.xib (possibly there is some issue with my Xcode installation, since it complains about missing pdfKit plugin, despite it exists in fact).
 
Last edited:

tensixturtle

macrumors 6502
Sep 30, 2021
297
145
Kepler 22b
@barracuda156 I am of course interested to help but highly doubt I can be very useful. If you can't get something working I am sure I can't either. I thought I might ask, out of curiosity, what kind of skill set is required/do you use to work on the Macports projects?
Thanks
 

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
I recently got my Dual 2.0GHz G5 running and I was very happy to see that Macports still had PPC support. I really appreciate all the work people have done keeping the support for older systems alive. OCaml and SBCL are two of the things I was interested in getting running so I'll take a look and see if I can make any progress.

By the way, I have restored PPC support into another two Lisp compilers:

CCL: https://github.com/macports/macports-ports/pull/16417

NewLisp: https://github.com/macports/macports-ports/pull/16424

P. S. Until merged, use portfiles with patches from PRs.
 

SecretSquirrel

macrumors regular
Jan 21, 2013
127
195
U.K.
I’m afraid I don’t have the skill set to help (more of a hardware geek) but just wanted to say a huge THANK YOU to you @barracuda156 and the others who are involved with this work. PPC enthusiasts will be depending on it and the brave volunteers who give up their time to work on it for years to come!
 
  • Like
Reactions: NODEraser

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
@barracuda156 I am of course interested to help but highly doubt I can be very useful. If you can't get something working I am sure I can't either. I thought I might ask, out of curiosity, what kind of skill set is required/do you use to work on the Macports projects?
Thanks

Motivation :) And some time, obviously. If you start from 0, it takes quite a while to get used to.
 
  • Like
Reactions: tensixturtle

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
ruby.jpg


Latest Ruby on PowerPC

UPD: merged into master.
 
Last edited:

sasho648

macrumors member
Feb 19, 2020
82
38
I may need to fix LLVM to (if not run) generate powerpc macho binaries at some point - if you are interested - I would at least attempt it.

(I did try once in the past and - honestly there was a bunch of blockers - I think the biggest one is doing relocations - but there is also already the foundation so it's not entirely a ground up)

I need to do it since it would be easier to compile the game I'm decompiling on darwin directly since there are some Mac OS specific calls (which could very well be rewritten for linux but it would be a lot easier if I can directly run it on os x) and my compiler generates llvm - even so modern one (because there are some attempts but they are from 2014 latest).

And btw before anyone asks yes - the 23GBs of RAM works on OS X too (not like I need them there though).

I just started doing that and having debug symbols seriously slow down load times on the Quad even abovementioned RAM size and running on SSD.

Like just starting gdb takes a solid minute or two.

On further inspection it turns out that ld possibly? could link elf files into macho if we disable full lto (link time optimisation) - just by looking at the code.

But I can't understand how to work with ports - like how do I do a temp dev directory of a port where I can thinker around - I hate this.:mad: (I tried gdb to hack the prebuilt binary:mad: - because why would apple make it easy building from source -or MacPorts)

(It's not your fault of-course but I'm just expressing my anger)

Nvm I was building the wrong version - I just used the archive from apple with xcode (of ld64) and it build)
 
Last edited:

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
I may need to fix LLVM to (if not run) generate powerpc macho binaries at some point - if you are interested - I would at least attempt it.

(I did try once in the past and - honestly there was a bunch of blockers - I think the biggest one is doing relocations - but there is also already the foundation so it's not entirely a ground up)

I need to do it since it would be easier to compile the game I'm decompiling on darwin directly since there are some Mac OS specific calls (which could very well be rewritten for linux but it would be a lot easier if I can directly run it on os x) and my compiler generates llvm - even so modern one (because there are some attempts but they are from 2014 latest).

And btw before anyone asks yes - the 23GBs of RAM works on OS X too (not like I need them there though).

I just started doing that and having debug symbols seriously slow down load times on the Quad even abovementioned RAM size and running on SSD.

Like just starting gdb takes a solid minute or two.

On further inspection it turns out that ld possibly? could link elf files into macho if we disable full lto (link time optimisation) - just by looking at the code.

But I can't understand how to work with ports - like how do I do a temp dev directory of a port where I can thinker around - I hate this.:mad: (I tried gdb to hack the prebuilt binary:mad: - because why would apple make it easy building from source -or MacPorts)

(It's not your fault of-course but I'm just expressing my anger)

Nvm I was building the wrong version - I just used the archive from apple with xcode (of ld64) and it build)
I will reply later in some more detail, but for LLVM you may want to look at Iain’s repo: https://github.com/iains/LLVM-7-branch

He said he is planning to release fixes to LLVM-11 for PPC in some, hopefully near, future.

Building the whole of LLVM-11 and Clang-11 with GCC is fixed now, but at the moment for Intel only. See: https://github.com/catap/llvm-project
 
  • Like
Reactions: sasho648

doctor_dog

macrumors member
Dec 19, 2022
94
103
First time poster here! And first things first, a massive thank you to this forum and all the major contributors. I'm hesitant to name names because I don't want to leave anyone out (I'm still new), but I think you know who you are. I've been lurking since October; amazing work. I'll get around to posting my setup and the enviable 17" Club post sooner or later...

"Get to the point, already," I hear you saying. Very well:
  • Disclaimer: I am not a professional developer, I am an enthusiast with basic coding experience in interpreted languages. Until recently, I hadn't tried to compile software from source since the days of Mandrake and Slackware (dating myself a bit? oh well). I wasn't very good at it then, for the record, but did have limited success on Caldera OpenLinux.
  • I want to volunteer the use of my PPCs and early Intel machines for testbeds or build boxes if that helps at all. I have the following available:
    • Powerbook G4 A1107 - 10.5.8; Lubuntu Remix 16.04 (thx wixnick)
    • iBook G4 A1055 - 10.4.11
    • Macbook Pro A1226 - 10.6.8 (I believe...the PSU died and I just ordered another one, will confirm when it arrives)
  • I'm not married to the OS versions on the iBook or the Macbook, I'm happy to try things on Sorbet Leopard or experimental PPC Leopard or whatever you want if it is helpful.
  • The Powerbook is my main machine as it is the "nicest" cosmetically with very minimal wear and tear, so I do want to keep it on 10.5.8. My PPC daily driver, if you will. As such, I have compiled and built a lot of Macports packages (thanks to YOU) with it.
    • However, I'm a little confused as to why binaries aren't available from Macports. If it was a licensing issue, I'd think the *nix equivalent packages wouldn't be distributed as binaries either. Am I missing something?
    • All that to say, I'm happy to provide binaries to the community if its permissible and you want them. I'm sure I have less than the devs here, but offering nonetheless.
  • My personal goals:
    • I, too, would love to see Go on PPC OSX. If there are folks that might be available to answer a few Qs when I inevitably run into a brick wall, I might have a shot at it. I've been trying to get 1.4 to build so I can bootstrap subsequent versions, but obviously this isn't a trivial task.
      • Where is the best place to start this conversation? Is there a PPC Discord or is Github/Macports the appropriate channel? Or this thread/forum perhaps?
    • RStudio is also interesting, although my R projects are few and far between these days.
    • Take a stab at cross compiling from my modern Intel MBP. I haven't seen any threads about this though, so I suspect it isn't feasible. I've been building everything natively on the target machine, and it obviously can take a long time (I mean over a day for newer LLVM/Clang, fun times). I might go the VM route in the future, TBD.
    • I'm trying to build openal-soft, smfl, and opencl-sdk currently. Slowly working through it, plenty of issues.
      • libdispatch is another one I'd like to have to help with the above, though I'm not sure the 10.5 kernel has the necessary extensions to use it. I've tried just including the header files from the Apple open source repo when building projects that require GCD, but I don't think it is gonna work. Is this a fools errand?
TL;DR: Y'all are awesome and thank you so much for keeping these old machines relevant. I'd like to help, but I'm a lackluster developer at best and a n00bish enthusiast at worst. If my machines can help build and test, they are available. If I can help debug and share my own patches and binaries, I'm all for it.
 

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
First time poster here! And first things first, a massive thank you to this forum and all the major contributors. I'm hesitant to name names because I don't want to leave anyone out (I'm still new), but I think you know who you are. I've been lurking since October; amazing work. I'll get around to posting my setup and the enviable 17" Club post sooner or later...

"Get to the point, already," I hear you saying. Very well:
  • Disclaimer: I am not a professional developer, I am an enthusiast with basic coding experience in interpreted languages. Until recently, I hadn't tried to compile software from source since the days of Mandrake and Slackware (dating myself a bit? oh well). I wasn't very good at it then, for the record, but did have limited success on Caldera OpenLinux.
  • I want to volunteer the use of my PPCs and early Intel machines for testbeds or build boxes if that helps at all. I have the following available:
    • Powerbook G4 A1107 - 10.5.8; Lubuntu Remix 16.04 (thx wixnick)
    • iBook G4 A1055 - 10.4.11
    • Macbook Pro A1226 - 10.6.8 (I believe...the PSU died and I just ordered another one, will confirm when it arrives)
  • I'm not married to the OS versions on the iBook or the Macbook, I'm happy to try things on Sorbet Leopard or experimental PPC Leopard or whatever you want if it is helpful.
  • The Powerbook is my main machine as it is the "nicest" cosmetically with very minimal wear and tear, so I do want to keep it on 10.5.8. My PPC daily driver, if you will. As such, I have compiled and built a lot of Macports packages (thanks to YOU) with it.
    • However, I'm a little confused as to why binaries aren't available from Macports. If it was a licensing issue, I'd think the *nix equivalent packages wouldn't be distributed as binaries either. Am I missing something?
    • All that to say, I'm happy to provide binaries to the community if its permissible and you want them. I'm sure I have less than the devs here, but offering nonetheless.
  • My personal goals:
    • I, too, would love to see Go on PPC OSX. If there are folks that might be available to answer a few Qs when I inevitably run into a brick wall, I might have a shot at it. I've been trying to get 1.4 to build so I can bootstrap subsequent versions, but obviously this isn't a trivial task.
      • Where is the best place to start this conversation? Is there a PPC Discord or is Github/Macports the appropriate channel? Or this thread/forum perhaps?
    • RStudio is also interesting, although my R projects are few and far between these days.
    • Take a stab at cross compiling from my modern Intel MBP. I haven't seen any threads about this though, so I suspect it isn't feasible. I've been building everything natively on the target machine, and it obviously can take a long time (I mean over a day for newer LLVM/Clang, fun times). I might go the VM route in the future, TBD.
    • I'm trying to build openal-soft, smfl, and opencl-sdk currently. Slowly working through it, plenty of issues.
      • libdispatch is another one I'd like to have to help with the above, though I'm not sure the 10.5 kernel has the necessary extensions to use it. I've tried just including the header files from the Apple open source repo when building projects that require GCD, but I don't think it is gonna work. Is this a fools errand?
TL;DR: Y'all are awesome and thank you so much for keeping these old machines relevant. I'd like to help, but I'm a lackluster developer at best and a n00bish enthusiast at worst. If my machines can help build and test, they are available. If I can help debug and share my own patches and binaries, I'm all for it.

Thank you for responding. On some points here:

> However, I'm a little confused as to why binaries aren't available from Macports. If it was a licensing issue, I'd think the *nix equivalent packages wouldn't be distributed as binaries either. Am I missing something?

They are, for systems with active build bots. Unfortunately, this does not cover PPC systems, though some plans are there, see: https://trac.macports.org/ticket/66288

> I, too, would love to see Go on PPC OSX. If there are folks that might be available to answer a few Qs when I inevitably run into a brick wall, I might have a shot at it. I've been trying to get 1.4 to build so I can bootstrap subsequent versions, but obviously this isn't a trivial task.

There are two options for Go.
1. gccgo, which is broken for Darwin in general, but should be fixable. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46986
And: https://github.com/golang/go/issues/22885
2. Go as such, which gonna require writing C sources for Go 1.4 and then using the latter to build Go 1.9 (or whatever works). This may be a thing to work with, likely gonna require some efforts to build it for Darwin ppc: https://github.com/glaubitz/go/tree/power5

> Take a stab at cross compiling from my modern Intel MBP. I haven't seen any threads about this though, so I suspect it isn't feasible.

You can build natively in Rosetta. The topic is here: https://forums.macrumors.com/thread...0-6-powerpc-10a190-and-10-6-8-rosetta.2332711
Cross-compiling in general may not be needed, I suspect. However it is necessary for fixing GHC and possibly some other exotic cases.
 

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
Anyone interested in R and Stan, this should work: https://github.com/macports/macports-ports/pull/16916
(I am pretty sure it gonna work on ppc32 systems, since that is what I tested; Intel might have minor issues with a few ports due to Clang selection error still to be fixed.)

No idea how soon this gonna be merged, but PR version should be fully functional. I should add however that I consider rewriting R PortGroup to some extent, so this is not finalized.
 

doctor_dog

macrumors member
Dec 19, 2022
94
103
Thank you for the detailed information, this has helped me understand more of this ecosystem and community. I'm a little late to the PowerPC game (maybe like 18 years late?) but it's great! A few follow ups:

Thank you for responding. On some points here:

> However, I'm a little confused as to why binaries aren't available from Macports. If it was a licensing issue, I'd think the *nix equivalent packages wouldn't be distributed as binaries either. Am I missing something?

They are, for systems with active build bots. Unfortunately, this does not cover PPC systems, though some plans are there, see: https://trac.macports.org/ticket/66288

I am glad to see the MP ticket is fairly recent, that would be a game changer for sure. I have my own thoughts about a stop-gap for hosting 10.5 PPC binaries via an "unofficial" bin archive repo; I will start a separate thread for that. Thanks for the info.

As for Go, I did get gccgo to work on Ubuntu, but obviously not gonna help us w/Darwin. I have been trying to replicate some of the work done here (https://github.com/pepaslabs/go-ppc) but haven't had success yet.

Some other random updates:

Gegl 0.4 - This continues to fail as something in the code seems to require OpenCL, even though the project itself states OpenCL isn’t required, and I can’t figure out a good way to disable it. The build will complain that it can’t find the OpenCL framework whenever I try to build it. I removed all the references I could find to ‘-framework OpenCL’ in the respective subdirectories’ meson.build files, which no longer produces “ld: framewok not found” errors but instead yields a slew of unfound symbols errors. It is for this reason I keep trying to build the OpenCL SDK and POCL in hopes that one of these two will satisfy the requirements for Gegl and let me build it (I’ve had success with neither thus far). The only other thing I can think to do is make a 'fake' Framework.OpenCL folder and try to manually place files in it. Stay tuned.

I will post back with an update on POCL and OpenCL-SDK if I make any progress.

Unrelated to the above task is trying to get sfml to work, which depends on openal-soft, which has a requirement for GCD. So naturally, now I’m trying to get libdispatch to build for 10.5 PPC (either the Apple Open Source (swift-core-libs) version or the BSD libdispatch). I still can’t ascertain if the userland support this would provide is enough to get the job done or if there would need to be kexts involved. I am not a kernel guy, this is all speculative for me. Which brings us to...

libdispatch (Apple’s swift-core-lib, not the BSD version...yet) – I can get this to pass the configure stage, but make errors out almost immediately. I will have to work through the errors and see what might be up. If anyone wants to team up on this one, please let me know.

Will post updates on progress as it is made. Thanks again for all the information.
 

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
Gegl 0.4 - This continues to fail as something in the code seems to require OpenCL, even though the project itself states OpenCL isn’t required, and I can’t figure out a good way to disable it. The build will complain that it can’t find the OpenCL framework whenever I try to build it. I removed all the references I could find to ‘-framework OpenCL’ in the respective subdirectories’ meson.build files, which no longer produces “ld: framewok not found” errors but instead yields a slew of unfound symbols errors. It is for this reason I keep trying to build the OpenCL SDK and POCL in hopes that one of these two will satisfy the requirements for Gegl and let me build it (I’ve had success with neither thus far). The only other thing I can think to do is make a 'fake' Framework.OpenCL folder and try to manually place files in it. Stay tuned.

I will post back with an update on POCL and OpenCL-SDK if I make any progress.

Unrelated to the above task is trying to get sfml to work, which depends on openal-soft, which has a requirement for GCD. So naturally, now I’m trying to get libdispatch to build for 10.5 PPC (either the Apple Open Source (swift-core-libs) version or the BSD libdispatch). I still can’t ascertain if the userland support this would provide is enough to get the job done or if there would need to be kexts involved. I am not a kernel guy, this is all speculative for me. Which brings us to...

libdispatch (Apple’s swift-core-lib, not the BSD version...yet) – I can get this to pass the configure stage, but make errors out almost immediately. I will have to work through the errors and see what might be up. If anyone wants to team up on this one, please let me know.

Will post updates on progress as it is made. Thanks again for all the information.

1. gegl – I have had the previous version built on PPC, but the current does fail. Should be easy to fix, I reckon, but I did not have yet time to try. It may be needed to disable some functions which rely on missing framework, with usual #if MAC_OS_X_VERSION_MIN_REQUIRED or alike. If the function is not supported only on PPC, then #if defined(__APPLE__) && defined(__POWERPC__).

2. libdispatch – there are three approaches here: build the version from 10.6.8, build current open-source one from Apple and build Linux port, fixing it for Mac. There are two at least:
https://github.com/mlba-team/xdispatch
https://github.com/nickhutchinson/libdispatch
The problem is that Apple one needs blocks, which are not supported with GCC, and Clang is broken for PPC. Linux ones needs a couple of dependencies to be added into Macports and fixed for Mac.
Discussion: https://trac.macports.org/ticket/65988
 

doctor_dog

macrumors member
Dec 19, 2022
94
103
The problem is that Apple one needs blocks, which are not supported with GCC, and Clang is broken for PPC. Linux ones needs a couple of dependencies to be added into Macports and fixed for Mac.
Discussion: https://trac.macports.org/ticket/65988

Thanks again for the great info. Your ticket re:libdispatch has some good nuggets in there, I will start taking a look.

Looking at your ticket (unless I'm misunderstanding and there is more to "needs blocks" than the runtime), I was also getting errors thrown about it. I was able to get the libblocksruntime built inside MP on 10.5 and it seems to work w/MP GCC 11 (and thank you, btw, for getting GCC11/12 sorted out!). I will have to go dig to see what modifications I made to get it to build.

At any rate, at least the errors about missing blocks runtime are gone, I do not know a good way to test if it's actually working or not. I guess I could do a reverse dependency lookup and see what other ports require it, but if that's not what you're referring to or if I'm completely misunderstanding, please disregard =)
 
Last edited:

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
I was able to get the libblocksruntime built inside MP on 10.5 and it seems to work w/MP GCC 11

libblocksruntime (one from Macports) builds fine on PPC, and AFAIR does not require special fixes. I have no idea if it works though, and linking to it failed for libdispatch (well, TBH, I did not spend much time on that, it certainly should be fixable).

It is likely possible to build a newer blocksruntime from compiler-rt. I have some WIP, but it does not build yet, and I have not touched it for a while (the reason being that Iain said he gonna make a release for llvm-11 with PPC support, and I decided it makes no sense to do the same work twice – and also Iain gonna do it incomparably better than me).
https://github.com/barracuda156/llvm-project (default llvm11-ppc branch)
https://github.com/macports/macports-ports/commit/3c89899338ad88785ec599a07441ada012e248f1 (use at your own risk, LOL)

compiler-rt-related discussion here: https://github.com/iains/darwin-toolchains-start-here/discussions/30
Blocks-related ticket: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78352
 
  • Like
Reactions: doctor_dog

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
Gegl 0.4 - This continues to fail as something in the code seems to require OpenCL, even though the project itself states OpenCL isn’t required, and I can’t figure out a good way to disable it. The build will complain that it can’t find the OpenCL framework whenever I try to build it. I removed all the references I could find to ‘-framework OpenCL’ in the respective subdirectories’ meson.build files, which no longer produces “ld: framewok not found” errors but instead yields a slew of unfound symbols errors. It is for this reason I keep trying to build the OpenCL SDK and POCL in hopes that one of these two will satisfy the requirements for Gegl and let me build it (I’ve had success with neither thus far). The only other thing I can think to do is make a 'fake' Framework.OpenCL folder and try to manually place files in it. Stay tuned.

Should build from here:
 
  • Like
Reactions: doctor_dog

originaldotexe

macrumors regular
Jun 12, 2020
239
406
Kentucky
is there any way to set up a cross compile/distributed build server for macports? i am currently using my 12" ibook but i sat there trying to build gcc11 for 48 hours before finally deciding it would take too long and giving up lol. i would like to set up my g5 quad or g4 mdd as a build server if i can
 

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
is there any way to set up a cross compile/distributed build server for macports? i am currently using my 12" ibook but i sat there trying to build gcc11 for 48 hours before finally deciding it would take too long and giving up lol. i would like to set up my g5 quad or g4 mdd as a build server if i can

Why do you need cross-compile? Build it on the Quad, install to iBook. See: https://trac.macports.org/wiki/howto/ShareArchives2
 

doctor_dog

macrumors member
Dec 19, 2022
94
103
Should build from here:
Ah, brilliant! I wasn't entirely sure how to proceed with your suggestion regarding "#if MAC_OS_X_VERSION_MIN_REQUIRED" to be honest, however your linked patch files are a helpful example indeed; thank you. It looks like I wasn't too far off the correct path removing the OpenCL dependency, I was missing your changes to gegl-cl-init.c.

Can confirm this built for me on my Powerbook using gcc7, now I can stop beating my head against the wall trying to get some form of OpenCL SDK/POCL/etc built on PPC (although it still might be a worthy goal?). With your gegl fix, I'll start plugging away at getting the latest GIMP to build.

I went ahead and added gegl 0.4 to the unofficial MP repo, thank you!
 
  • Like
Reactions: barracuda156

barracuda156

macrumors 68000
Original poster
Sep 3, 2021
1,620
1,212
Some news on Macports development. My PRs on R and Fortran are merged, now Macports allows to build R and FPM packages. There are two new PortGroups for that, R and fortran.
Respective ports can be found by tags:

Many more will come to R (I have everything ready for Rstan to work), some will be added into Fortran.
Everything of these confirmed to build for PPC.

I have also added some new ports in math and lang categories. Like:
Among many others.

As usual, please report whatever you find to broken on any standard version of macOS on Trac. Anything broken on 10.6 PPC (10A190) please report here or on my Github page: https://github.com/barracuda156/macports-ports/discussions
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.