-
Notifications
You must be signed in to change notification settings - Fork 37
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
Mac 10.5 and PowerPC support #140
Comments
JIT ION for PPC is as specific TenFourFox feature. ArcticFox as welll as Firefox and others run interpreter on PPC, 32+64bit Linux PPC is supported, except in last 42.0 version, where it is very unstable. Debugging welcomed.... with bisection from 41 series. gcc 4.8 still works fine with ArcticFox, although newer gcc as well as clang are supported now, but beware with old MacOS SDK versions and newer compilers. Major show-stopper is support for MacOS 10.5, since it is the last released PPC OS. So, I see quite some work to get ArcticFox on MacOS PPC. I tried myself several times, no success yet. |
@rmottola Thank you for a detailed reply. Do you have a branch with your work on 10.5 support? That perhaps will be helpful. PPC JIT seems to have been ported from TFF to AF, but I have no idea if it gonna work for the current versions. New GCCs support Darwin PPC fine (in upstream), I am currently using 12.3.0. There is an issue which pops up time to time with malloc errors due to a duplicate |
I pushed my current 10.5 work in a separate branch. Some patches are a work-around, some could be considered definitive. Please check |
@rmottola Thank you very much! I will give it a go. Did you try starting it via GDB, is there some meaningful error? Or a crash log in Library/Logs/CrashReporter (or something similar, writing from memory now). |
Never been able to get a useful stacktrace with GDB in AF. |
@rmottola I just looked into 10.5 branch, it is behind master by some number of commits, but does not have anything extra. Was everything merged? Which mozcfg did you use with it? |
I just did a master pull-up, it was up-to-date for 42.1 release when I published, don't worry. No significant MacOS changed. I didn't publish the mozconfig, it is derived from the 10.6 one. Will share that too. |
@barracuda156 10.5 branch was updated to current master. except a small glitch common to 10.6 support, it builds. But it has the same crash on startup issue. |
@rmottola Thank you! I will try that. Sorry for a delay, too much stuff to handle in parallel. |
@rmottola Seems that by now it is quite lagging. But let me give it a go. P. S. On a side-note, referring to https://github.com/rmottola/Arctic-Fox/wiki/libc---for-MacOS-10.6 – there is a very experimental port of |
@rmottola Also, do you build against external ICU, nss etc. or not? Apparently TenFourFox only been setting |
I have set whatever noticed to Looks like in order to make it work for PowerPC (by work I mean build, to begin with, whether it gonna actually work is left to be determined), a number of fix-ups are to be ported from TenFourFox master. I borrowed some, and will see how it goes. Hopefully only Cocoa stuff is broken and needs to be fixed. |
@rmottola Oh wow, I bumped into ICE:
|
Actually the issues are more on Mac and Apple Headers needing warning relaxation to compile. On Linux and BSD I can compile with modern GCCs up to gcc 12 as well as clang 7. I can compile with Clang 7.0 also on Mac 10.11 So you may play. |
I usually do not build with external dependencies on Mac, but it works. ICU, harfbuzz, nss can be externalized from system |
For that I don't know, it could be a PPC specific issue. I suppose clang is still unusable on PPC. |
Got it, thanks. I have built Palemoon now with gcc13, so yeah, it should work (I guess the codebase is pretty close). (The biggest issue with GCC is a lack of support for ObjC stuff, but here perhaps no changes until gcc 15 or who knows.) |
No news from the GCC side for a while, I fear, nobody interested in enhancing their objc-2 support. However, TenFourFox hacked most of the stuff to be gcc 4.8 compatible. So we know where to look. |
@barracuda156 I did some extra work to bring in 10.4 code which should also apply to 10.5 regarding fonts stuff using ATS. |
@rmottola Palemoon compiles with the new gcc, so there are fixes for that too, in a sense. It still needs to have some parts of code fixed though, since at the moment the app starts and hangs. There are gdb logs pointing to the issue here: dbsoft/White-Star#2 Given how much stuff has been fixed in GCC after gcc10 (including specifically for PowerPC), I think it is a non-viable approach to stick to archaic versions and waste time on hacking the code to adapt to gcc bugs which are fixed in the current versions. gcc7 is not supported with upstream, so nothing gets backported, and I think neither Iain nor Macports bothers with that either. We should really switch to gcc11+ for everything. Edit: I should in fact rebuild my gcc13 soonish to pick the latest fix for ObjC from Iain. |
Great! Yes, I will give it a try in a couple of days. Still stuck with fixing P. S. And it looks like both browsers suffer from the same issue. |
MacPorts currently goes with gcc7 on Leopard and so do I, on Intel and PPC. On Intel however there is more recent Clang, so this is a relief. |
It goes with gcc7 by default, yes, but gcc10+ works better. I have been using gcc13 for quite a while. |
I updated the 10.5 tree... it builds on intel 64bit, but crashes on startup, as always :) |
@barracuda156 updated 10.5 tree to latest dev code. Still aborts before opening first window. It spits out some JS stuff before... if I were better with gdb and gecko, maybe at least a ballpark of what is aborting could be determined |
@rmottola Two quick questions:
|
@barracuda156 I did not try to build with GTK, I htink it would be a mess and an extra layer of stuff, especially then having gtk3 on 10.5... but if you want to try, go. TenFourFox goes native Mac and so does PaleMoon and Firefox, why should we change? also it works on 10.6 quite well! |
No doubt a native build is preferable. I am just not sure if it will work eventually. GTK-based browser would be still better than none at all :) But hopefully, of course, native one gets fixed.
Perhaps I misunderstood a mention in the README, sorry. |
If you wish, you can try and report how it goes.
27.x was starting point of code, sure, but we had like 35000 commits since then, getting patches from Mozilla and TenFourFox. The code definitely evolved, CSS and JS compatibility increased, but also porting becomes harder, since we tap into patches from Mozilla where 10.5 & 10.6 had long been deprecated. |
@rmottola From a quick look into the code it seems nothing much is gonna break PowerPC build – my concern was assembler in JIT, but apparently it is not implemented for PPC at all: https://github.com/rmottola/Arctic-Fox/tree/master/js/src/jit
Assuming Linux ppc32 does work as it is claimed, there is some arch-agnostic fallback?
Flags in
mozcfg
for it largely overlap with those which TenFourFox uses for Darwin ppc32:https://github.com/rmottola/Arctic-Fox/blob/master/mozcfg-ppc32linux
vs
https://github.com/classilla/tenfourfox/blob/master/G5.mozcfg
TFF relies on 10.4 SDK though and archaic gcc 4.8. We do not need to be restricted by those for PPC. While 10.6 PPC SDK has certain limitations and does not match 10.6 x86 exactly, usually such incompatibilities are fixable. (Say, if GDC is used somewhere, a fallback with mach semaphores will be needed.)
Rust – which is broken on PPC – and some fancy options are disabled for 10.6 target anyway, as it is for x86.
Could you say, if there is anything apparent that may turn to be a major stopper?
The text was updated successfully, but these errors were encountered: