harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Hindess <mark.hind...@googlemail.com>
Subject Re: [general] harmony launch failed on AMD Geode LX
Date Thu, 31 Jan 2008 22:30:22 GMT

On 31 January 2008 at 22:00, Mark Hindess <mark.hindess@googlemail.com> wrote:
> 
> On 22 January 2008 at 20:37, Gregory Shimansky <gshimansky@apache.org> wrote:
> > SeongCheon, Kang said the following on 22.01.2008 20:29:
> > > I Installed Apache-harmony-jre-603435 on AMD Geode LX based system board
> > > (PC Engines ALIX.1C) that is installed xubuntu 7.10.
> > > 
> > > I executed Equinox OSGi service platform and harmony just prints out
> > > 'illegal instruction' after 10 seconds. But, 'hello world' works well. :-
> )
> > > 
> > > And, I installed Sun JRE 5. Equinox OSGi service platform works well on i
> t.
> > > 
> > > What's the problem? Anyone has tested on AMD Geode LX or/and xubuntu 7?
> > 
> > I think it may be because it doesn't support SSE according to wikipedia.
> > To make sure that it is the case you can use gdb to print out the
> > failing instruction like
> > 
> > (gdb) x/1i $eip
> > 
> > and see what it shows and where this instruction appears (whether it is
> > in generated code or in Harmony compiled code).
> 
> > Also you can try to run the application in interpreter mode using -Xint
> > option for VM.
> 
> I recompiled classlib with -march=c3 rather than -march=pentium3.  But even
> with -Xint HelloWorld still dies with illegal instruction.  gdb says:
> 
> (gdb) bt
> #0  0xb76e49f3 in MemoryWriteBarrier ()
>    from drlvm/bin/default/libharmonyvm.so
> #1  0xb76e16f0 in String_Pool::lookup ()
>    from drlvm/bin/default/libharmonyvm.so
> #2  0xb76e17c4 in String_Pool::lookup ()
>    from drlvm/bin/default/libharmonyvm.so
> #3  0xb76d6a08 in Global_Env::Global_Env ()
>    from drlvm/bin/default/libharmonyvm.so
> #4  0xb77528a4 in JNI_CreateJavaVM ()
>    from drlvm/bin/default/libharmonyvm.so
> #5  0x08049a55 in invocation (portLibrary=0xbffff918, argc=5, argv=0xbffffd54
> , 
>     handle=134654592, version=65540, ignoreUnrecognized=1 '\001', 
>     mainClass=0xbffffe6a "HelloWorld", classArg=4, 
>     propertiesFileName=0x806aa00 "drlvm/bin/default/harmonyvm.properties", is
> StandaloneJar=0, vmdllsubdir=0xbffff842 "default") at ../shared/main.c:672
> #6  0x08049160 in gpProtectedMain (args=0xbffff8f8) at ../shared/main.c:393
> #7  0x0804b4a1 in main (argc=5, argv=0xbffffd54, envp=0xbffffd6c)
>     at ../shared/cmain.c:146
> (gdb) x/1i $eip
> 0xb76e49f3 <_Z18MemoryWriteBarrierv+3>: sfence 
> 
> Suggestions welcome.

Answering my own question... I'm going to try:

  lock; addl $0,0(%%esp)

in place of sfence in vm/vmcore/src/thread/linux/atomics.cpp.

-Mark.



Mime
View raw message