[kaffe] [PATCH] Classpath-AWT merge

Kero van Gelder kero at c86235.upc-c.chello.nl
Thu Jun 3 05:51:02 PDT 2004


> this should make Kaffe useable for hacking on Classpath's AWT and swing 
> implementations.

Great work, but I have to object to the statement itself :)

> You'll need a few things for classpath's AWT: a recent gtk installation, 
> libart, cairo, pango, ... the latter, the better. For Kaffe's AWT you'll 
> need Xlib and Qt (2/3/Embedded). You'll need developer's packages of 
> these, of course, for the headers (and pkg-config stuff) ;) chances are 
> that the '--without-*awt' options don't work yet, so please make sure 
> you've got all three(X, Qt, Gtk) installed for the build. This is a work 
> in progress, the final checkin will be better tested, and behave nicely, 
> and hopefully be synced up with the gcj gui branch :)
> Since Classpath's AWT only works with pthreads, you'll need to pass 
> --with-threads=unix-pthreads to configure script.

I used:

./configure --prefix=/tmp/kaffe-cp-awt --with-threads=unix-pthreads \
	--with-jikes --with-qtdir=/usr/lib/qt3 --enable-pure-java-math

> so, for example on debian unstable, once you've pulled your 
> libgtk2.0-dev, libcairo1-dev, libart-dev, libqt3-dev, and so on, you 
> should be able to build and install kaffe with the 3 AWT implementations 
> with a simple

You need libart-2.0-dev from debian 'experimental'.
libart(2)-dev from 'unstable' will generate an unclear warning about
pkg-config, which I had nicely installed, but wasn't familiar with.

libqt3-dev puts headers in /usr/include/qt3, not in $QTDIR /usr/lib/qt3/include
so ./configure breaks on it. A symlink solved the issue for the header
files, but I needed to edit ./configure itself after the symlink for
the libraries: there are some cheks on $QTDIR/lib/*.so and
$QTDIR/lib/*.a that are a bit too broad with the symlink in place, I
added 'qt' right before the '*' to make the check work. I consider
this a bug in (auto)conf(ig)ure/whereever, which I will *not* fix.

> If you install jikes, it should build the class libraries a little faster ;)

You bet :)  `apt-get install jikes`

But then:

Several appearances of UNUSED in implementations of functions conflict
with the definitions. The position and word is slightly
different: __UNUSED__ is outside the braces, UNUSED is inside. I
removed the word UNUSED and could continue.

I then found this:

In file included from /home/kero/Download/kaffe-awt/kaffe/kaffevm/systems/unix-pthreads/thread-impl.h:25,
                 from ../../../../kaffe/kaffevm/thread.h:67,
                 from toolkit.h:40,
                 from tlk.cc:23:
/home/kero/Download/kaffe-awt/kaffe/kaffevm/systems/unix-pthreads/thread-internal.h: In
   function `void jthread_relaxstack(int)':
/home/kero/Download/kaffe-awt/kaffe/kaffevm/systems/unix-pthreads/thread-internal.h:270: error: ISO
   C++ forbids cast to non-reference type used as lvalue

and three more of those immediately below. I agree with the compiler
here. C++ really invites you to do horrible things.

And then I quit trying (other things to do).


PS: I got gcj to compile my application, and its gtk-awt crashed on
it. Am I right in assuming that kaffe awt classpath will fail as well,
since it uses the same toolkit?

wanna keep developing software?

+--- Kero ----------------------- kero at chello.nl ---+
|  all the meaningless and empty words I spoke      |
|                      Promises -- The Cranberries  |
+--- M38c --- http://httpd.chello.nl/k.vangelder ---+

More information about the kaffe mailing list