Gert Doering wrote:
$Management has now decided to have me working on "GPC on AIX 6" again, and I did some work with gcc-3.4.6 and gpc-20060325 today.
gcc-3.4.6 contains most of the patches contained in the mailing list posting quited above already, so the patch does not apply. It is not needed, though - all that remains is one small bit in config.gcc:
------------------- snip -------------------- diff -wur gcc-3.4.6.orig/gcc/config.gcc gcc-3.4.6/gcc/config.gcc --- gcc-3.4.6.orig/gcc/config.gcc 2005-07-19 23:08:48.000000000 +0200 +++ gcc-3.4.6/gcc/config.gcc 2009-12-08 14:51:51.000000000 +0100 @@ -1867,7 +1867,7 @@ thread_file='aix' extra_headers= ;; -rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) +rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].* | rs6000-ibm-aix ) tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h" tmake_file=rs6000/t-aix52 use_collect2=yes ------------------- snip --------------------
(for some weird reason, AIX 6 is detected by configure as "rs6000-ibm-aix", without any version number. But hey, the resulting pascal and C compiler work, so who am I to complain...)
There's two further hickups in building GPC itself, one is that "mk-t-inc" doesn't like AIX sed but works fine with GNU sed, the other one is that gpidump.pas references a few symbols that I couldn't find anywhere. So I commented them out...
------------------- snip -------------------- diff -u -w --recursive gpc-20060325.orig/p/utils/gpidump.pas gpc-20060325/p/utils/gpidump.pas --- gpc-20060325.orig/p/utils/gpidump.pas 2006-03-24 03:47:16.000000000 +0100 +++ gpc-20060325/p/utils/gpidump.pas 2009-12-08 15:18:22.000000000 +0100 @@ -746,7 +746,9 @@ OutputFlag ('method'); IsMethod := True end; +{ OPERATOR_DECL: OutputFlag ('also_built_in'); +}
mk-t-inc is supposed to create file declaring those symbols.
diff -u -w --recursive gpc-20060325.orig/p/utils/mk-t-inc gpc-20060325/p/utils/mk-t-inc --- gpc-20060325.orig/p/utils/mk-t-inc 2006-03-25 01:28:56.000000000 +0100 +++ gpc-20060325/p/utils/mk-t-inc 2009-12-08 15:09:23.000000000 +0100 @@ -44,7 +44,7 @@
GCCDIR="$1"
-version="`grep version_string "$GCCDIR/version.c" | sed -e 's/[^"]*"//;s/".*//'`" +version="`grep version_string "$GCCDIR/version.c" | gsed -e 's/[^"]*"//;s/".*//'`" if [ x"$version" = x ]; then exit 1 fi @@ -62,15 +62,15 @@ EOF
# Use result of GPC's config-lang.in -sed -ne 's,#define(.*),{$define\1},p' ../../gcc-version.h +gsed -ne 's,#define(.*),{$define\1},p' ../../gcc-version.h
As local fix for your installation this is fine.
The problem that remains now is the "collect2" bit that was discussed on this list a long while ago, but yet-unresolved...
gd@hilb31:/tmp> gpc -o hello hello.pas gd@hilb31:/tmp> gpc -fno-unit-path -o hello hello.pas cc1: warning: command line option "-fno-unit-path" is valid for Pascal but not for C
(this is just a warning, but upsets "make check")
Waldek, in last year's "GPC on AIX 6" thread you mentioned a new GPC version, gpc-20070904. I think it might be worthwile to start hacking on this (to get the option passing to collect2 fixed) before I work on the older version. Is gpc-20070904 the latest version? If yes, where can I find it? http://www.gnu-pascal.de only lists the 20060325 version.
As Maurice wrote it is on my gpc page:
http://www.math.uni.wroc.pl/~hebisch/gpc
Who is rolling GPC "alpha releases" these days anyway?
I am affraid currently nobody. I released the last five alphas, but currently my work on gpc is suspended -- I am busy with other projects.