The version currently in portage is gpc-20051104 built with gcc-3.4.5 I have an ebuild to propose. Reproducible: Always
Created attachment 176258 [details] proposed ebuild for the version bump This ebuild compiles and runs successfully on my amd64 machine which uses profile 2008.0 and gcc-4.3.2. The following are the only changes from the present gpc-20051104 in portage: (1) Name change from gpc-20051104.ebuild to gpc-20070904.ebuild. (2) On line 12 change GCCVER="3.4.5" to GCCVER="4.1.2" (3) Addition of the line 9: replace-flags "-march=native" "" (This ensures compilation on computers which have "-march=native" in their /etc/make.conf. The problem is that this ebuild actually compiles it's own gcc and it is gcc-4.1.2. This version of gcc does not support "-march=native" and the compilation fails if that flag is in the build environment. Anyone whose system is using >=gcc-4.2 wil likely have "-march=native" in their /etc/make.conf.
Thanks for submitting your version bump, and a nice summary of what was changed! Assigning to maintainers.
Created attachment 176460 [details] time tests for various gpc built with various gcc Attached are some time tests run on my amd64 machine (profile 2008.0) using gpc-20051104 and gpcp-20070904 built with various versions of gcc, namely gcc-3.4.5, gcc-3.4.6 and gcc-4.1.2. (Note that the gpc build does not use the version of gcc installed on the host machine and chosen using gcc-config.) The test were of two kinds: (1) A simple loop involving only real arithmetic. in this case the performance differences between versions is insignificant. (2) A test involving a research program into the structure of certain finite 6 dimensional algebraic structures called quternionic algebras. This test uses no real arithmetic but does create and search through vast lists and trees of finite pascal structures. NB: The best result is with gpc version 20070904, based on gcc-3.4.6, NOT gpc version 20070904, based on gcc-4.1.2 which is about 50% slower. I am now recomending that the version bump be to gpc version 20070904, based on gcc-3.4.6 insted of being based on the newer gcc-4.1.2 for these two reasons: (a) Better time test performances in my "production environment." (b) gpc version 20070904 warns that building with gcc-4.1.2 is experimental and is not recomended for "production environments." To alter the proposed version bump gpc-20070904.ebuild so that it will build with gcc-3.4.6 simply change line 12 so that GCCVER="3.4.6"
Well, yea, gcc-4.1 was known for having a few performance regressions. 4.2, on the other hand, was supposed to be better (even than 3.4 I believe). Unfortunately there is no support for 4.2 in gpc, - it, in general, heavily lags behind.
Thanks Andrew for reporting the test results. I have just added a new 3.4 based version to the tree.