Frank Heckenbach wrote:
Adriaan van Os wrote:
(1) trampolines crash (I have a patch to fix it)
(2) longjumps crash (I have a patch to fix it also)
(3) non-local goto's don't work, e.g.
These are all fixed in GCC 3.3.
Well, not quite. Longjump crashes and non-local goto crashes have been fixed, but trampoline crashes not. The gcc-3.2.x trampoline patch can be applied to gcc-3.3 and it fixes most trampoline crashes, but .....
I'm getting somewhat tired of this. Time and time again it's suggested to change to new gcc versions for these reasons (among others, of course), at least since gcc-2.8.1, and when it's done, it turns out the problems are still not really fixed (sometimes they're fixed on some platforms, sometimes they (re-)emerge on other platforms) ... :-(
Yeah, they fix a few problems here and there and give us some fresh bugs in return to keep us busy. I hope it is not too discouraging.
BTW, are the bugs reproducible in C code?
I haven't checked so far, but found this (for gcc-3.3 with patched trampoline support):
1. without --longjmp-all-nonlocal-labels, fproc.pas runs "forever" until a shortage of virtual memory makes an end to it (and to Mac OS X as well). This explains the observations in my previous email.
2a. with --longjmp-all-nonlocal-labels, only fproc.pas and nlgpp2.pas fail: the assembler "can't emit reloc".
2b. this can be worked around by specifying -O2 instead of default -O3.
So, at least there is a work-around.
Regards,
Adriaan van Os