GCC v4.3.x

Mainly due to the fact that GCC 3.3.5 (which is what is currently used by kLibc) is becoming too old to build the latest Mozilla trunk code, I started working on building a newer version of GCC.

I’ve started with v3.4.6 – as the thought was that the amount of changed between 3.3.5 and 3.4.6 would be comparatively small compared with aiming for the ‘latest’ GCC (currently 4.3.3).  I now have builds of 3.4.6, 4.0.4 and 4.3.3; The current binary of GCC 4.3.3 has been used to build several projects successfully – ie rsync, Apache2, MySQL, Firefox 3.0-cvs, Ghostscript, ffmpeg amongst others

 Known Issues with the current 4.3.3 release (2009-2-24)

– link warning when using -Zomf – emxomf will require updating to deal with the new stabs types, but according to Knut, these warnings can be safely ignored, and only affect debugging

Updates since original build – the date in brackets reflects the first build that contained the fix

  • – Added threading support (2008-10-11 build)
  • – fixed problem with stdcall (2008-10-12 build) 
  • – fixed (hopefully) ‘internal compiler error’ crashes when -fPIC is used (2008-10-12 build)
  • – Added support for precompiled headers based on cygwin code (untested) (2008-10-12b build) 
  • – Fixed ‘gcc conftest.c -lgcc’ produced -lgcc.exe (20081012b build) 
  • – Fixed problems with cdecl (20081014 build) 
  • – Fixed (hopefully) problems with fastcall (20081014 build) 
  • – Binutils 2.16.1 (minus ld.exe) included (20081025 build) 
  • – Fixed (hopefully) problem with recursive thread support in libstdc++ – thanks Yuri for the patch! (20081025 build) 
  • – Fixed a problem with dllexport and Seamonkey (20081031 build) 
  • – Fixed problem with c++ exceptions (20081105 build) 
  • – Enabled ‘-O3 -march=pentium -mtune=pentium4’ optimisation (20081105b build) 
  • – Fixed problem with missing ‘popcount*’ symbol when linking certain code (20081116 build) 
  • – Fixed problems with ‘vtable for xxx’ symbol missing for Seamonkey (20081116 build) 
  • – Fixed remaining ‘virtual method’ link errors with Seamonkey (20090116 build) 
  • – Updated to GCC v4.3.3 source code
  • – Updated emx.c, emx.h, emx-cxx.c based on latest Win32 code
  • – Added support for the GOMP multiprocessor library (untested) (20090224 build)
  • – Fixed problems compiling C++ SDL applications (20090224 build)
  • – Fixed c++ headers to allow basic wchar support (20090224 build)

– Removed binutils – this will be available separately (20090224 build)

Problems with this build can be reported using my bug tracker at http://mantis.smedley.info

Current binaries:

 GCC 4.3.4 2009-08-07 release