[kaffe] Problems of Kaffe on mips-linux platform

Kevin D. Kissell kevink at mips.com
Mon Dec 30 01:16:04 PST 2002

First, an unmodifled Kaffe.1.0.7 release source tree 
will not give you a working MIPS version of Kaffe.
The necessary patches to the release sources should be in
The changes were also merged with the Kaffe.org
CVS repository, so if you're working from development
sources, you should have them - along with all the
fun problems that come with working from development

Assuming you've got the right Kaffe sources,
I see a couple more potential problems.  One is that you
are using unix-pthreads instead of the Kaffe internal
"jthread" multithreading scheme.  There have been
problems with Linux/UNIX pthreads for MIPS in many
versions of the kernel and gnu libraries, and I have
avoided pthreads in all my MIPS/Linux work, to
avoid confusing the issue.  I would recommend
dropping the --with-threads configure option and
letting the build default to jthreads.

The other potential problem is that most MIPS/Linux
kernel sources up until very recently had problems
with context management during some exceptional
signal conditions that happen to turn up in Kaffe.  
Most 2.4.17-level sources don't have the fixes, though
Monta Vista's just might.  If updating your
Kaffe sources and using jthreads doesn't fix things,  
I would encourage you to get more up-to-date kernel
sources, either from ftp://ftp.mips.com/pub/linux/mips/ 
or from the CVS archive at linux-mips.org (which is
another development tree, with all the fun associated, etc.).  
I actually rather doubt that this is your problem, since 
in general one  needs to be doing floating-point operations
to see the problems, but if you're going to use Kaffe,
you will ultimately need those fixes.

When you say that you are testing your Kaffe build,
is this to say that all of the "make check" regression
tests run?  It took me a while to get all those to work
(i.e. to generate the patch above), but once they did,
all the AWT stuff I tried worked fine.  But I did not try


            Kevin K.
  ----- Original Message ----- 
  From: Kim, Seong Beom 
  To: kaffe at kaffe.org 
  Sent: Monday, December 30, 2002 8:05 AM
  Subject: [kaffe] Problems of Kaffe on mips-linux platform

  Dear Kaffe experts.

  Because it is my first time to post message in this mailing list,
  let me introduce a little bit.

  Hello, my name is Seongbeom Kim, and I'm working for a digital television project
  that requires Java virtual machine. I've chosen Kaffe for our virtual machine 
  because it is one of few VM solutions for mips-linux platform.

  The specification of our system is...
  Kaffe version:                   Kaffe 1.0.7
  Reference board:            TeraLogic Cougar-L board
  CPU:                                MIPS
  OS:                                  Linux (kernel 2.4.17  monta vista linux RedHat 7.1)
  AWT:                                QTE (QTE 3.0.3)
  cross compiling with:       mips-linux-gcc (egcs-2.91.66)
  configure option:              --target=mips-pc-linux-gnu --host=mips-pc-linux-gnu --build=mips-pc-linux-gnu
                                          --with-engine=intrp --with-threads=unix-pthreads
                                          --with-includes=/usr/mips-linux/include --with-libraries=/usr/mips-linux/lib

  What I have done with this development is...
  1. Test build on i386-linux-QTE platform: it had no problem at all with virtual frame buffer feature in embedded QT.
  2. QTE test on mips-linux: I verified it with test programs.
  3. Cross compiling for mips-linux-qte platform: build done, test compile & running for simple text based application done successfully.

  The problems are...
  1. When I try to running simple AWT example, the main thread hangs in Toolkit.createNative() and does not proceed.
  The code in Toolkit.java>>>

  static void createNative ( Component c ) {
   WMEvent e = null;

   synchronized ( Toolkit.class ) {
    // even if this could be done in a central location, we defer this
    // as much as possible because it might involve polling (for non-threaded
    // AWTs), slowing down the startup time
    if ( eventThread == null ) {

  System.out.println( "startDispatch() done..." ); <<---------- does not print this message (hangs in startDispatch())

   // do we need some kind of a context switch ?

  2. After some modifications in Java codes such as inserting debugging messages, there happens strange errors.

  [root at target /root]# javac -v HelloWorld.java
  [ start compilation in verbose mode ]
  java.lang.VerifyError: In class java/io/PushbackReader$PushbackBuffer in method <init> with signature (Ljava/io/PushbackReader;Ljava/io/PushbackReader$1;I)V at pc 5: sp 7 not in range [4, 6]
          at java.io.PushbackReader.<init>(PushbackReader.java:27)
          at java.io.PushbackReader.<init>(PushbackReader.java:32)
          at at.dms.compiler.tools.antlr.extra.InputBuffer.<init>(InputBuffer.java:69)
          at at.dms.compiler.tools.antlr.extra.InputBuffer.<init>(InputBuffer.java:82)
          at at.dms.kjc.Main.parseFile(Main.java:325)
          at at.dms.kjc.Main.run(Main.java:147)
          at at.dms.kjc.Main.compile(Main.java:69)
          at at.dms.kjc.Main.main(Main.java:60)

  This error is only solved when I remove entire Kaffe tree, re-install source, re-configure and re-make it.
  'make distclean' cannot solve this problem.

  Does anyone know about these problems?
  Please help me, I'm in a really big trouble. :(

  Thanks in advance.

  Seong-beom Kim
  Research Engineer
  Marusys, Co. Ltd.
  Seoul, Korea
  +82-2-3445-3999 (117)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://kaffe.org/pipermail/kaffe/attachments/20021230/a7d6b86b/attachment-0010.htm 

More information about the kaffe mailing list