Hi,
Has anyone out there managed to build gpc-19990813 with gcc-2.95 on solaris2.{6,7} and irix6.5 ?
I have managed to get past a few hurdles:
1) gpc/p/config-lang.in uses test unknown on solaris
[ -e $srcdir/p/Make-lang.in ]
must be replaced by
[ -r $srcdir/p/Make-lang.in ]
--- gpc.orig/p/config-lang.in Tue Aug 3 00:18:13 1999 +++ gpc/p/config-lang.in Wed Oct 27 15:32:44 1999 @@ -43,10 +43,10 @@ echo "#define EGCS" > gcc-version.h echo "#define EGCS92" >> gcc-version.h echo "#define EGCS95" >> gcc-version.h - if [ -e $srcdir/p/Make-lang.in ] \ + if [ -r $srcdir/p/Make-lang.in ] \ && cmp -s $srcdir/p/Make-lang-2.95.in $srcdir/p/Make-lang.in; then true; else cp $srcdir/p/Make-lang-2.95.in $srcdir/p/Make-lang.in; fi - if [ -e $srcdir/p/Makefile.in ] \ + if [ -r $srcdir/p/Makefile.in ] \ && cmp -s $srcdir/p/Makefile-2.95.in $srcdir/p/Makefile.in; then true; else cp $srcdir/p/Makefile-2.95.in $srcdir/p/Makefile.in; fi else @@ -58,10 +58,10 @@ else echo "/* empty */" > gcc-version.h fi - if [ -e $srcdir/p/Make-lang.in ] \ + if [ -r $srcdir/p/Make-lang.in ] \ && cmp -s $srcdir/p/Make-lang-old.in $srcdir/p/Make-lang.in; then true; else cp $srcdir/p/Make-lang-old.in $srcdir/p/Make-lang.in; fi - if [ -e $srcdir/p/Makefile.in ] \ + if [ -r $srcdir/p/Makefile.in ] \ && cmp -s $srcdir/p/Makefile-old.in $srcdir/p/Makefile.in; then true; else cp $srcdir/p/Makefile-old.in $srcdir/p/Makefile.in; fi fi
2) gpc/p/gpc-decl.c needs declaration of nonlocal_goto_handler_slot
--- gpc.orig/p/gpc-decl.c Wed Jul 28 03:31:23 1999 +++ gpc/p/gpc-decl.c Wed Oct 27 15:35:49 1999 @@ -54,6 +54,7 @@ #include <ctype.h>
extern rtx tail_recursion_reentry; /* in function.c */ +extern rtx nonlocal_goto_handler_slot; /* in function.c */
/* for language specific parts of the tree_node */ extern struct obstack permanent_obstack;
3) An ugly hack to make two object files available
[reported by Alexander Sokolov robocop@amur.rosnet.ru Fri, 20 Aug 1999 20:02:51 +1100 (VLAST) - if there was an answer, I missed it.]
# An ugly hack ... rm -f gcc/choose-temp.o; ln -s ../libiberty/choose-temp.o gcc rm -f gcc/pexecute.o; ln -s ../libiberty/pexecute.o gcc
4) Comes to a grinding halt:
The hacks&patches above get the build going, until
gcc -c -DIN_GCC -DGPC -g -O2 -I. -I.. -I. -I./.. -I./../config -I./../.. /include gpc-lang.c gpc-lang.c: In function `lang_decode_option': gpc-lang.c:50: argument `p' doesn't match prototype ../tree.h:2078: prototype declaration gpc-lang.c:50: number of arguments doesn't match prototype ../tree.h:2078: prototype declaration
where the symbol EGCS should be defined to get past this one, but if I do, then the next hurdle is:
gcc -c -DIN_GCC -DGPC -DEGCS -I. -I.. -I. -I./.. -I./../config -I./../../include gpc-lex.c In file included from gpc-lex.c:41: gbe.h:79: conflicting types for `fatal' ../system.h:394: previous declaration of `fatal' In file included from gpc-lex.c:46: util.h:174: conflicting types for `concat' ../../include/libiberty.h:48: previous declaration of `concat' gpc-lex.c: In function `yyerror': gpc-lex.c:1158: argument `string' doesn't match prototype ../c-lex.h:84: prototype declaration gmake[2]: *** [gpc-lex.o] Error 1
Anyone with some help & advice out there?
--- benedict