un-cripple GCC4 in the official builds
|Reported by:||tidux||Owned by:||nobody|
|Has a Patch:||no||Platform:||x86|
It's time to relegate GCC 2.95 to the role of a secondary compiler. Hell, if all we're concerned about is parsing legacy binaries, we can just add old-style linking to one of the things the kernel detects and translates into modern link calls. The Linux kernel switched from a.out to ELF in the 1990s, but even modern kernels can parse those a.out binaries natively, without building the kernel with compilers best left to a museum.
We need to make GCC 4 the primary compiler for a simple reason: gcc2h builds discourage curiosity.
The official recommended way to build gcc4 applications is to use a gcc4(h) build. Anything written to C99 or newer standards will never compile with gcc2. This includes Qt, OpenJDK, and even most modern games written in SDL. Add it all together, and it's a huge, flaming middle finger to Free Software hackers that like to build their own binaries. Every other open source OS makes it easy to self-host modern application development. Even Android has Terminal IDE which lets you develop in Dalvik on a tablet. By making the official builds hard to build modern software for, it's saying to users "you're not important, let the developers use their gcc4 builds and you can beg them for table scraps." Alternatively, it's saying "forget the official build, might as well use the one that lets you build modern games from scratch without pulling your hair out in frustration."
I'm aware that BeOS R5 x86 binary compatibility is the stated reason for keeping gcc2 around, but it's clear even some package maintainers in Haiku hold disdain for that. Installing the beoscompatibility optional package prompts a warning that "this is going away soon, fix your applications!" Besides, how many binary-only BeOS applications are still in use? The only ones I can think of are Gobe Productive and the old Opera builds, both of which are laughably outdated compared to software available for Haiku. Even the old Firefox 2 build of bezillabrowser is better suited to the modern web.
Now, I could be wrong about all this. I don't know what the plans are for package management and virtual filesystems. That may allow painless development of gcc4 applications on a gcc2h build. If it doesn't, gcc4h should be given the stamp of approval as the official build, and the gcc2-as-primary builds should be kept only to make sure the base system still builds with the old version.
Happily, this ticket is x86 only, as all the other platforms like x86_64 and ARM are pure GCC4.