getting kaffe to work on assabet (StrongARM)

kaffe@rufus.w3.org kaffe@rufus.w3.org
06 Jun 2001 12:14:28 -0700



[Crossposted to pocketlinux-devel, since PocketLinux porting issues are
 better suited to that list]

Duncan Palmer <duncan.palmer@s3group.com> writes:

> hi all
> 
> We're very interested in using kaffe and possibly pocketlinux for the
> project i'm working on at the moment, and i've been spending a bit of
> time lately evaluating both of these. I've had no problems with the
> stuff i've built from source for my desktop box, but when i build kaffe
> for my assabet (SA-1110 processor - pretty much the same as an iPAQ
> except for a different LCD), things get interesting...

Cool.

> I've attached the fgl.config, ipl.config and kaffe.config i've used -
> they are very nearly the same as those used for the ipaq. I've tried
> using the kaffe source from pocketlinux 1.0, as well as a checkout i got
> from the CVS repository last week with the same results: everything
> built, but didn't work ;( . I've been testing by telnetting in to my
> board, and trying to run 'hello world'
> 
> To get the version of kaffe that came with pocketlinux1.0 to build, i
> had to configure it to use pthreads, rather than jthreads, and fix some
> problems in the build scripts (leading me to wonder what sources the
> binary distro came from...)

I'd recommend building kaffe without any awt support to see if you can
get just a basic 'hello world' to work.  Make sure you're using the
transvirtual.com cvs, since that kaffe is quite different from the
kaffe.org one.  We've been using jthreads internally - the pthreads
stuff hasn't been tested that much with PocketLinux.  I notice that
Tim's been doing some major rework on kaffe lately, so maybe you just
checked it out at an inopportune moment.  If you check it out now, it
might work.

Also, for the iPaq, we used the handhelds.org toolchain.
 
> Different things went wrong with different versions of kaffe on my
> assabet:
> * when using the kaffe sources from pocketlinux1.0, the kernel logs
> indicated a bunch of unhandled page faults were occuring, and there were
> also misaligned memory accesses taking place

I'm not familiar with whether or not the iPaq build was tripping the
misaligned memory access trap handler.  We should probably peek into
the /proc filesystem to see if that's happening, or try compiling our
kernel without the trap handler.

> Running the VM under gdb indicates a segfault was occuring as a result
> of code on line 1156 of kaffevm/code-analyse2.c

I notice you're using --with-engine=intrp.  The interpreter is
deprecated, to say the least, and almost certainly doesn't work.  Try
--with-engine=jit3.

> Then, on an ipaq:
> * The pocketlinux 1.0 distro (using filesystem and kernel from
> pocketlinux ftp site) works no worries
> * The binary version of kaffe from pocketlinux 1.0 runs ok, but i don't
> get my 'hello world' on the console

Weird.

> * The version of kaffe i built from cvs chews up all the memory
> available to it, but dosen't do anything particularly useful...

Again, it definitely needs to be configured differently.

> * There are some problems with the cvs sources concerning the build
> process for the ipaq config which i haven't worked thru yet, so haven't
> tried that...
> 
> Could anyone give me some pointers as to how to get this working, or
> whether what i'm doing should work at all? has anyone else succesfully
> run kaffe on an assabet?, and have other people had problems building
> from the pocketlinux 1.0 sources?

We'll help you out on the pocketlinux-devel list.  ;-)

Cheers,

 - Jim


> Duncan Palmer                                    
> duncan.palmer@s3group.com
> Software Design Engineer                          Phone:    
> +353-1-2185542
> Silicon and Software Systems                      Fax:      
> +353-1-2185590

> --target=arm-linux 
> --with-cursor=no

> --with-kbd=tty
> --with-mou=sa11x 

> --with-engine=intrp
> --with-execute='/' 
> --with-awt=fgl
> --with-staticbinary
> --with-staticlib
> --without-x
> --without-png
> --without-tiff
> --without-verifier
> --with-jpeg
> --without-flash
> --with-rawjar=mmap
> --without-optimize-memory
> --with-threads=unix-jthreads
> --without-vmdebug
> --with-libraries=native,io,device,media,awt,net,zip
> --target=arm-assabet-linux
> --prefix=/project/itablet/nfsmounts/itablet00/pocketlinux/
> 
> #!/bin/sh
> # $Id: tvt-make.config,v 1.12 2001/03/23 00:39:21 samc Exp $
> # Target specific build options
> TARGET_INFO="Intel Assabet"
> GNUTARGET="arm-assabet-linux"
> AUTOBUILD="yes"
> XRES="320"
> YRES="240"
> 
> ##
> # Cross compiler options
> ##
> TOOLCHAIN="/opt/hardhat/devkit/arm/sa110_le/bin/"
> TOOLPREFIX="sa110_le-"
> 
> ##
> # Kernel build options
> ##
> KERNEL_SRC="/project/itablet/src/linux-2.4.0-test11-rmk1-np3/"
> #KERNEL_SRC="$HOME/local/handhelds/linux/kernel/"
> KERNEL_NAME="arch/arm/boot/zImage"
> KERNEL_TARGET="zImage"
> KERNEL_MODULAR="yes"