[haiku-bugs] [Haiku] #9870: un-cripple GCC4 in the official builds

  • From: "tidux" <trac@xxxxxxxxxxxx>
  • Date: Sat, 13 Jul 2013 14:18:56 -0000

#9870: un-cripple GCC4 in the official builds
--------------------+------------------------------
 Reporter:  tidux   |        Owner:  nobody
     Type:  bug     |       Status:  new
 Priority:  normal  |    Milestone:  R1
Component:  System  |      Version:  R1/Development
 Keywords:          |   Blocked By:
 Blocking:          |  Has a Patch:  0
 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.

--
Ticket URL: <http://dev.haiku-os.org/ticket/9870>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: