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
sources.
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
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
QT!
Regards,
Kevin K.
----- Original Message -----
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 )
{ startDispatch(); } }
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@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)
|