Compiling Kaffe 1.0.5 on Alpha running OSF

William Cohen cohen at ebs330.eb.uah.edu
Wed Dec 1 11:02:53 PST 1999


Godmar Back wrote:

> Edouard told me he thinks the SP_OFFSET is okay.
> Another chance maybe that you'll need FP_OFFSET as well.
> 
> The third, least attractive possibility is that the setjmp/longjmp
> based approach won't work at all on alpha/OSF, which means that
> you'll need a custom thread switching routine, similar to the one
> for sparc/linux.
> 
> Btw, Edouard did some work on trying to get the jit up and running
> again, but there's still some problems.  If you're interested in
> cooperating on that, you may want to contact him.
> 

-- Will

 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   William Cohen                                 cohen at ece.uah.edu
   Assistant Professor
   Electrical and Computer Engineering
   College of Engineering
   University of Alabama in Huntsville           voice: 256/890-6830
   Huntsville, AL 35899                          fax:   256/890-6803
   ECE Homepage: http://www.eb.uah.edu/ece/ecehome.html
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-------------- next part --------------
I have taken a closer look at the problem that we have observed
in the multithread  java programs in test/regression (ttest.java).

The threading appears to be working on the Alpha.  When I "-vmdebug
JTHREAD", I can see the processor switching between the threads.  I
also wrote some simple test cases code that showed that the child
threads were actually doing something.

The problem apprears to the the input/output code and no output is
being generated.  When I turned on the "-vmdebug JTHREAD", I got a
number of error messages:

F_SETOWN: Not a typewriter

The DEC unix does not like the way the some of the file handling is
being performed for multithreaded programs.  This error message is
coming from line 2020 of
kaffe/kaffevm/systems/unix-jthreads/jthread.c:

#elif defined(F_SETOWN)
        /* On some systems, this will flag an error if fd is not a socket */
        r = fcntl(fd, F_SETOWN, pid);
        if (r < 0) {
                DBG(JTHREAD, perror("F_SETOWN"); )
        }
#endif

I am not sure this is the root cause of why multithreaded programs
such as ttest do not produce any output.  However, it is a suspect.
Any suggestions?

-Will


More information about the kaffe mailing list