I just sucessfuly build gpc-20030507 with gcc-3.3.1. Before the build I applied the following patch to gpc-20030507: --- gpc-20030507.orig/p/declarations.c Sat May 3 17:24:08 2003 +++ gpc-20030507/p/declarations.c Sun May 11 22:45:49 2003 @@ -404,7 +404,9 @@ if (block) TREE_USED (block) = 1;
+#ifndef GCC_3_3 free (level); +#endif
return block; } --- gpc-20030507.orig/p/predef.c Fri May 2 11:40:33 2003 +++ gpc-20030507/p/predef.c Fri May 16 11:13:05 2003 @@ -275,7 +275,7 @@ if (TYPE_NAME (type)) type = build_type_copy ((orig = type)); TYPE_NAME (type) = decl = build_decl (TYPE_DECL, id, type); - DECL_ORIGINAL_TYPE (decl) = orig; + DECL_ORIGINAL_TYPE (decl) = NULL_TREE; } } if (kind == bk_special_syntax || kind == bk_routine) --- gpc-20030507.orig/p/utils/mk-t-inc Sat May 17 14:27:28 2003 +++ gpc-20030507/p/utils/mk-t-inc Sat May 17 14:28:27 2003 @@ -82,6 +82,6 @@ cat "$GCCDIR/tree.def" echo 'DEFTREECODE (LAST_AND_UNUSED_C_TREE_CODE, "unused", "x", 0)' sed -e '/#else/,/#endif/d' "$GCCDIR/p/p-tree.def" -} | sed -ne '/^DEFTREECODE/{s,/*.**/,,;p;}' +} | sed -ne '/^DEFTREECODE/{s,/*.**/,,;s/["'"'"']x["'"'"'].*/"x", 0)/;p;}'
} > "$2" || { rm -f "$2"; false; }
Test results (from make pascal.check-long, passing tests omited and slightly edited to save space):
GPC-TEST-BEGIN ========================== TEST agettext2test.pas: SKIPPED: could not set locale `de_DE' TEST asmtest.pas: SKIPPED: only for IA32 TEST asmtest2.pas: SKIPPED: only for IA32 TEST asmtest3.pas: SKIPPED: only for IA32 TEST crttest.pas: SKIPPED: no curses library found TEST dario.pas: SKIPPED: only for IA32 TEST environo.pas: SKIPPED: setenv not present in libc TEST fay.pas: 1d0 < mprotect of trampoline code: Not enough space failed TEST fjf165a.pas: SKIPPED: German locale not installed TEST fjf480a.pas: SKIPPED: librx not installed TEST fjf480b.pas: SKIPPED: librx not installed TEST fjf512.pas: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/fjf512.pas: In main program: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/fjf512.pas:31: internal compiler error: Segmentation Fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. failed TEST fjf582.pas: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/fjf582.pas: In main program: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/fjf582.pas:107: warning: statement with no effect <many identical lines snipped> failed TEST gmptest.pas: SKIPPED: libgmp not installed TEST goto4.pas: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/goto4.pas: In main program: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/goto4.pas:15: internal compiler error: Segmentation Fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. failed TEST jj5.pas: SKIPPED: `attribute (stdcall)' not available TEST knuth1.pas: mprotect of trampoline code: Not enough space OK TEST knuth3.pas: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/knuth3.pas: In main program: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/knuth3.pas:14: internal compiler error: Segmentation Fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. failed TEST longr2.pas: SKIPPED: no LongReal math routines available TEST math.pas: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/math.pas: In main program: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/math.pas:102: internal compiler error: Segmentation Fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. failed TEST nonlocgoto.pas: /dom/n/k/hebisch/gcc/gpc-20030507/p/test/nonlocgoto.pas: In procedure `lvl1': /dom/n/k/hebisch/gcc/gpc-20030507/p/test/nonlocgoto.pas:20: internal compiler error: Segmentation Fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. failed TEST regextest.pas: SKIPPED: librx not installed
========================== GPC-TEST-END make[1]: Leaving directory `/dom/n/k/hebisch/gcc/gcc-sol/gcc/p/test'
Waldek Hebisch wrote:
I just sucessfuly build gpc-20030507 with gcc-3.3.1. Before the build I applied the following patch to gpc-20030507:
Test results (from make pascal.check-long, passing tests omited and slightly edited to save space):
Failures with trampolines and nonlocal gotos. What a surprise. :-(
Still taking bets which backend version will finally get them right ...
Frank
Frank Heckenbach wrote:
Waldek Hebisch wrote:
I just sucessfuly build gpc-20030507 with gcc-3.3.1. Before the build I applied the following patch to gpc-20030507:
Test results (from make pascal.check-long, passing tests omited and slightly edited to save space):
Failures with trampolines and nonlocal gotos. What a surprise. :-(
Still taking bets which backend version will finally get them right
Well, for the apple-powerpc-darwin target, gcc-3.1.1 indeed fixes trampolines (not yet non-local goto's). Still, Waldek could try to get things moving by reporting the Solaris backend problems to bugzilla http://gcc.gnu.org/bugzilla, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10900 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10901.
Regards,
Adriaan van Os
Frank Heckenbach wrote:
Waldek Hebisch wrote:
I just sucessfuly build gpc-20030507 with gcc-3.3.1. Before the build I applied the following patch to gpc-20030507:
Test results (from make pascal.check-long, passing tests omited and slightly edited to save space):
Failures with trampolines and nonlocal gotos. What a surprise. :-(
Still taking bets which backend version will finally get them right
Well, for the apple-powerpc-darwin target, gcc-3.1.1 indeed fixes trampolines (not yet non-local goto's). Still, Waldek could try to get things moving by reporting the Solaris backend problems to bugzilla http://gcc.gnu.org/bugzilla, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10900 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10901.
Well, first I would like to collect all data -- Frank's comment suggest that the bugs are known and already reported. I am going to test 3.2.3 on Solaris for comparison.
By the way, the gpc web page about known bugs only mentions 2.95 Sparc bug and some AIX bug. I would be nice I people using development versions reported test results. Matthias Klose few months ago did nice job, however many of problems he identified are now fixed. In fact I was somewhat surprised by Solaris results, as all Sparc problems Matthias found seem solved. Probably Solaris trampolines work differently the Linux trampolines. Also he probably did not use `-O3' optimisation (crashing tests work fine at `-O2').
Waldek Hebisch wrote:
Frank Heckenbach wrote:
Waldek Hebisch wrote:
I just sucessfuly build gpc-20030507 with gcc-3.3.1. Before the build I applied the following patch to gpc-20030507:
Test results (from make pascal.check-long, passing tests omited and slightly edited to save space):
Failures with trampolines and nonlocal gotos. What a surprise. :-(
Still taking bets which backend version will finally get them right
Well, for the apple-powerpc-darwin target, gcc-3.1.1 indeed fixes trampolines (not yet non-local goto's). Still, Waldek could try to get things moving by reporting the Solaris backend problems to bugzilla http://gcc.gnu.org/bugzilla, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10900 and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10901.
Well, first I would like to collect all data -- Frank's comment suggest that the bugs are known and already reported.
Problems with these two features are reported with basically each new gcc version, sometimes on different platforms, sometimes different symptoms. All in all, I don't think there's been any gcc version where they don't cause problems on some platforms (at least since 2.8.1 which, of course, doesn't support as many targets, and I've tested only a few of them, so I can't really tell).
By the way, the gpc web page about known bugs only mentions 2.95 Sparc bug and some AIX bug.
Yes, I haven't actually listed all the backend bugs we found there. I think it's better to have each bug in one place (which here would be the gcc bug database). (The other two ones are listed because we've implemented work-arounds in GPC -- for the AIX bug, by almost disabling ReturnAddress (still better than crashing), and for the other bug by optionally doing non-local gotos not into the main program via longjmp (like non-local gotos into the main program are always done). BTW, you could try that (`--longjmp-all-nonlocal-labels'). But if longjmp is also broken (it was on some version and some platform, I forgot which), it won't help.)
I would be nice I people using development versions reported test results.
Actually, many did. If you have enough time, you could get quite some such reports from the mailing list archive (since the time gcc-3 support started).
Just an idea: Would it seem useful to open another mailing list, say gpc-result(s)@gnu.de just for such results? Then people like you could find them collected (in the future), and readers who are not interested won't be bothered by the (often longish) logs, and those reporting could do so without "bad conscience" of disturbing other readers.
Probably Solaris trampolines work differently the Linux trampolines.
Quite likely, though the difference may rather be due to the processor than the OS.
Also he probably did not use `-O3' optimisation (crashing tests work fine at `-O2').
Not very surprising indeed.
Frank