Incorporation of GCC 4.4
|Reported by:||jprostko||Owned by:||jprostko|
The purpose of this ticket is to allow Haiku to utilize the current release series of GCC, which is GCC 4.4. The current release version in this series is 4.4.1.
I am only going to address this topic within a limited scope, leaving out details such as inclusion of the Graphite loop optimization framework, native versus cross-building, etc. This would need more patches and further discussion/details, which I think would be too much all at once.
Thanks to korli and stippi, most of the patches needed to get Haiku building with GCC 4.4 have already been committed. Currently two files need patched, however. A patch fixing those issues is attached as gcc-4.4-compatibility.diff.
With regards to the patch to GCC itself, it is very similar to what is in our repository now for GCC 4.3.3, but with some fixes/cleanup. I also put in some code to prevent a native build from failing upon bootstrap comparison. The patch is to be applied to the GCC 4.4.1 core and g++ packages that can be obtained from the GCC FTP (GCC 4.4.0 will work as well). This will make it easy to work on if a vendor branch for GCC 4.4.1 was introduced, for instance.
In addition to the steps above, MPFR in the buildtool repository will need updated to version 2.3.2 or higher as required by GCC 4.4.
As mentioned on the development mailing list previously, there is still an issue where GCC 4.4.1 miscompiles the Tracker on certain specific revisions. The latest revision of Haiku (hrev32211 as of this ticket) doesn't have this problem, but some previous ones certainly did. I am not sure if it will ever creep up again, but I have all of the details documented so I can investigate further, and have also filed a bug with the GCC folks so it is at least documented on their end.
I would like to state that I'd be willing to work on the latest GCC (and its dependencies, as well as updated binutils) in a branch if desired, since I have a pretty good working knowledge of building GCC by now, both in a native and cross-compiled environment. I can also provide an optional package if/when desired, with or without Graphite included.
I know the Haiku alpha is around the corner and this may be put on the backburner, but I felt it was important to at least get this enhancement in place to show current progress.
Also, just for reference, GCC 4.3.4 came out recently, so if we want to hold off on GCC 4.4 for some time, perhaps we can at least upgrade to that in the near future.