-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bring back support of PowerPC for Darwin: specific steps? #11216
Comments
UPD. Okay, I know the reason of a duplicate symbol. In the last (?) version which had This is the version compatible with Darwin: https://github.com/digitalocean/ocaml/blob/do/trusty/asmrun/power-rhapsody.S |
If this is just an experiment on your side, more power to you. But given the tag "feature request" I assume that you would like upstream to re-integrate this support. This begs the question: why? I suppose it was removed because Apple does not use PowerPC anymore, so the user base was shrinking fast and not justifying the maintenance burden. Can you explain why you think we should take on new maintenance work for PowerPC+Darwin now? |
@gasche Thank you for replying! I don’t really ask or even assume someone else gonna fix stuff for me, though I find it upsetting when PPC Darwin is pro-actively removed while users exist (this happened with So I rather ask for opinions from those who know If I will make it work on my end, I can open PR, and if upstream won’t be interested nevertheless, I will at least make it available via patches in Macports. (I am sorta volunteering to fix ports for PPC as long as I have some time and motivation – I got G5 Quad, so building is relatively fast.) |
For OCaml 4.14, my guess would be the same as yours, it's probably not too hard to restore support for another PPC variant. If there is no sign of new use-cases, it's probably not going to be integrated and maintained upstream, but indeed asking for help to prepare patches in downstream distributions makes perfect sense. For the in-development OCaml 5.0 however, things will be more difficult for now because the runtime has changed significantly due to the merge of the Multicore runtime. Only a few backends are available on 5.0, significantly fewer than for the 4.x series. There is no PowerPC backend for now, with no clear date for when a backend would be available. (I don't know if anyone is working on it, my understanding is that very few active OCaml users care about PowerPC anymore.) And it's more work to implement/maintain a 5.0 backend due to multicore / memory-model questions. |
Thank you. I guess fixing 4.14 or whichever will be there of 4.x series will be good enough. I will look into it in more detail and return here if cannot figure something out or – hopefully – with some evidence of success. |
@gasche I got quite a bit further with the build after fixing duplicate symbol definition, but now it failed on the following:
|
Apparently the problem is ages old and never had been addressed for PPC. |
The last macOS version that supports PPC is Leopard, released in 2007 and last updated in 2009. I find it upsetting when someone insists on using a system that hasn't received any security update for 13 years. Connecting such a system to the Internet should be prohibited by law. Apple effectively killed the PPC/macOS platform in 2009. We don't support dead platforms, and neither do GHC, Ruby, LLVM, nor most software project with a bit of common sense. You're free to try to port newer OCaml versions to a dead platform, but support will not be reintegrated in OCaml, and there's no need to record your progress here. |
@xavierleroy Well, I don’t really get why my question caused that much of a discomfort – I did not ask anything from you personally, but after all this is not my business. For the record, your statement re PPC support is factually wrong: PPC code builds and fully works in 10.6.8 (Snow Leopard), and there are versions of 10.6 that can be used on PPC natively. |
@gasche This is my concluding comment in this thread, I just wanted to thank you for encouragement and inform that I got it built for PPC: macports/macports-ports#14691 (probably it will still require some fixes here and there, but at least it builds now). |
I want to bring back support for
powerpc-apple-darwin
&powerpc64-apple-darwin
intoocaml
. A quick look into the source code revealed that some sections of the current @4.14.0 still contain support for Darwin PPC (somewhat oddly denoting it as Rhapsody), while one necessary file has been removed –power-rhapsody.S
: now runtime has onlypower.S
– which should be in factpower-elf.S
(like it was before). Restoring the file itself is trivial, since nothing changed with G4/G5 since then. Another necessary change is to bring back register definitions etc intoasmcomp/power/proc.ml
.After patching configure to allow for
powerpc-apple-darwin
, replacingpower.S
with Rhapsody file and fixingproc.ml
andarch.ml
, compilation ofocaml
ran on 10.6 PPC for quite a while, eventually failing withld
complaint about duplicate_caml_callback_exn
symbol inpower_libasmrunpic.o
andcallback.npic.o
. I have not yet tried to figure out why that occurred. Anyway, so far it looks promising, unless I miss something out.Any suggestions and hints are very much welcomed :)
The text was updated successfully, but these errors were encountered: