IA-64 port

Gwenole Beauchesne kaffe@rufus.w3.org
Thu, 13 Dec 2001 15:53:21 +0100 (CET)


On Tue, 11 Dec 2001, John R. Daily wrote:

> The Mandrake patches work great for the latest CVS version, but
> don't seem to help for 1.0.6.

By "latest CVS version", do you mean the latest released snapshot
(2001/08/19) or the latest cvs update you made from kaffe ? Actually, on
ix86, with the latest changes from December (or earlier), I get the
following while compiling classes:

java.lang.VerifyError: at pc 5 sp 7 not in range [4, 6]
	at java.io.PushbackReader.<init>(PushbackReader.java:32)
	[...]

When I started toying with the ia64 port, I tried 1.0.6 too but since
64-bit pointers issues were resolved in the latest public snapshot and
that contained many bug fixes, I had a preferance for the latter.

BTW, I chose to build Kaffe with gcc3 because gcc-"2.96" would generate
bad code at some occasions and though the build succeeds and so do small
test programs (HellowWorld et al.), awt tests would fail.

Note that the patches I sent earlier have SGI's variant for
setjmp()/longjmp(). I don't use them since Kaffe would crash with either
gcc3 or gcc-"2.96". However, the -10mdk release did use those
implementations but only in the J-Threads implementation. i.e.
"exceptions" were handled through standard setjmp/longjmp. In other words,
I defined extra macros (JTHREAD_CTX_SAVE/RESTORE) expanding to
IA64_context_save/restore to implement threads and left JTHREAD_SETJMP for
the rest.

The JIT is still lacking. I had hopes from
<http://www.cs.pdx.edu/~sanseri/kaffe/> but I haven't heard of any news
since, nor did the guy reply to my queries. Since Kaffe/ia32 with JIT
under emulation on ia64 is faster than native ia64 with an interpretive
engine, I decided to leave the user the possibility to use it. Therefore,
two directories hold kaffe libs and binaries: /usr/lib/kaffe/{i586,ia64}.
One use the ia32 version by adding "-ia32" to the command line options.

Bye,
Gwenolé.