[kaffe] 1.1.0 on mips-linux - new JIT memory problem?

Dalibor Topic robilad at yahoo.com
Tue Jun 10 10:32:01 PDT 2003

--- "Kevin D. Kissell" <kevink at mips.com> wrote:
> With ./configure --with-engine=intrp, we get
> ====================
> All 137 tests passed
> ====================
> With the default configuration, which is jit3, however,
> HelloWorldApp.class.save and CatchLimits.class.save
> passe the "make check", but the local compilation of
> almost all the regression tests results in a systematic series
> of java/lang/OutOfMemoryError failures, e.g.
> error compiling:
> Internal error: caught an unexpected exception.
> Please check your CLASSPATH and your installation.
> java/lang/OutOfMemoryError
>         at java.util.HashMap.rehash(HashMap.java:236)
>         at java.util.HashMap.put(HashMap.java:136)
>         at java.util.Hashtable.put(Hashtable.java:109)
>         at java.lang.System.initProperties(System.java:native)
>         at java.lang.System.<clinit>(System.java:43)
>         at java.lang.ClassLoader.<init>(ClassLoader.java:114)
>         at java.security.SecureClassLoader.<init>(SecureClassLoader.java:20)
>         at kaffe.lang.AppClassLoader.<init>(AppClassLoader.java:238)
>         at kaffe.lang.AppClassLoader.<clinit>(AppClassLoader.java:37)
> TestScript: line -43: 12762 Aborted                 (core dumped)
> /home/kevink/Java/kaffe/kaffe-1.1.0/kaffe/kaffe/kaffe-bin
> at.dms.kjc.Main -classpath
> ".:.::.:/home/kevink/Java/kaffe/kaffe-1.1.0/libraries/javalib/kjc.jar" -d .
> ./HelloWorldApp.java
> FAIL: HelloWorldApp.java

could you do a 

kaffe -verbosegc -verbosemem at.dms.kjc.Main HelloWorldApp.java

and put the memory stats up somewhere? It'd be interesting to see where the
leaks are coming from.

how does jit behave? does it have the same problems like jit3?

> improve things.  Maybe they would all run on a platform
> with infinite memory, but this problem never existed in any
> of the 1.0.7-based source trees I've used.  I hadn't noticed


> Is there some easy way to rig it so that the default engine
> is platform-dependent, and mips gets intrp by default, but
> jit3 if one specifically requests it in ./configure?

The configure.in script says:

dnl -------------------------------------------------------------------------
dnl Check for JIT support and add in the necessary configuration files
dnl -------------------------------------------------------------------------

dnl If the engine is fully supported, run SUP_CMDS.
dnl If it needs updating, run UPDATE_CMDS.
dnl If it is not supported at all, run UNSUP_CMDS.
  if test x"$1" = x"intrp"; then
    if test -f "$srcdir/config/$Khost_cpu/$1-$Khost_cpu.def" && test -f
"$srcdir/config/$Khost_cpu/$Khost_os/$1-md.h"; then
      if sed 1q < "$srcdir/config/$Khost_cpu/$Khost_os/$1-md.h" |
	 fgrep "Needs update, do not use" > /dev/null; then

I assume it would work by putting a 'Needs update, do not use' in the
associated jit3-md.h file, could you give it a try?

> checking asm/signal.h presence... yes
> configure: WARNING: asm/signal.h: present but cannot be compiled
> configure: WARNING: asm/signal.h: check for missing prerequisite headers?
> configure: WARNING: asm/signal.h: proceeding with the preprocessor's result
> configure: WARNING:     ## ------------------------------------ ##
> configure: WARNING:     ## Report this to bug-autoconf at gnu.org. ##
> configure: WARNING:     ## ------------------------------------ ##
> checking for asm/signal.h... yes
> There's nothing obviously wrong with signal.h that either I nor gcc can see.

see this mail: http://www.kaffe.org/pipermail/kaffe/2003-May/042205.html

dalibor topic

Do you Yahoo!?
Yahoo! Calendar - Free online calendar with sync to Outlook(TM).

More information about the kaffe mailing list