Utilizing the idea of fat binaries?

Considering that while the x86 version of Haiku is the main concentration at this point in time, it may be advantageous to plan for the distribution of applications with multiple system architectures. I am thinking of mainly, (of course, inspired as an osx user), ppc and x86. Of course, this differs from the way Apple considers their “fat binary” system: as a hand outstretched from the future to the past.

The idea is that there is possibly a market for Haiku to appeal to: old ppc systems which logically are going to be increasingly neglected by Apple and its OS, which will now focus on their new Intel Architecture. They stand to gain from all of the performance and the small footprint of Haiku, and to the older PPC users it may remind them of the best parts of the experience of OS 9 (I used it, and BeOS to me always evinced just that).

So, lets make it easy for those of us on different sides of the architecture fence to walk forward together, and lets make it easy to collaborate together. Having a common set of tools is essential to doing that, and that naturally extends beyond the standard tools that ship with the OS itself. We ought to encourage cross-compatability from as early on as possible, so as to ensure that the haiku user base will not be divided between platforms.

Even if we cannot make this for R1 (I have to admit as of late I am unsure of the exact status of the PPC port), this will be a good feature to keep in mind if Haiku decides to support two or more platforms.

I also think that this is a good idea. Not only to allow binaries to work on different processors, but it would also help greatly in the 32-bit to 64-bit switch that the x86 architecture is making. Having one binary for both 32-bit and (a theoretical) 64-bit version of Haiku would save a lot of confusion.

it would be nice if the T2 SDE ( http://www.t2-project.org/releases/ ) guys and haiku could get together on this i know they are interested as it says on thier site that they want to support haiku in the T2 source distribution

Well, i’m not sure it is such a good idea if your goal is to have Haiku run on older PPC platforms. You end up basically with binaries twice as big as they actually need to be, and on he old PPC machines from apple, hard disks tends to be pretty small…
Plus it increases the size of the download with useless data.
If you want to improve compatibility over various platforms, i think the first step il providing a compiler for each of them in the developpr package, so anyone can compile easily for all the targets at once.
I don’t want to spend my hard drive space for code i’ll never ever use… Apple choosen this system as a transition, as you said, and it will not last for so long. If you start doing that with haiku, you start with x86 and PPC, then you add x64, then, i know there is a 68k port in work, and I hope more other ports will come… I don’t think we can add code for all of them to the same binary, or we will end up with a huge thing… you can also add a binary for gcc2 and another one for gcc4, and so on…
Let’s just have two download links at bebits for ppc and x86, i think everyone is fine with that instead of losing half the space on hard disks :wink:

Having given it some thought, I think you’re right with regards supporting multiple processors in a fat binary. If Haiku goes on to support many platforms then you could end up with some very large binaries, which would be mostly wasted space.

Perhaps it would be better to only support 32 & 64 bit binaries within one package (with different packages for different processors). If Haiku is to be as easy to use as possible, then expecting end users to know if they have a 32-bit or 64-bit install may be asking a little too much.

I may sound as that I’m a bit over excited about this topic, but it’s just because I was forced to switch from 32-bit Windows to 64-bit Windows on a machine the other day, just because of a memory upgrade. It kind of struck home that the 64-bit era was finally upon us.