Re: Problem with sableVM on AIX Platforms

Peter Lovell <[email protected]>
Newsgroups gmane.comp.java.vm.sablevm.general
Message-ID <[email protected]>
Hello David,
I have been able to build and run sabvlevm+classpath quite 
successfully(*) on Mac OS X, using PowerPC CPU. It may be that there 
are  differences between PowerPC and POWER(AIX) instruction sets but I 
think (hope) those would be relatively minor. But perhaps not.

When you have the opportunity, can you point me to the specific bug 
about assembly code?

Thanks.....Peter


  * there's one minor patch required related to definition of socklen_t, 
which was mentioned on the list recently and for which I'm working on a 
patch.


On Dec 20, 2004, at 2:27 PM, David Bélanger wrote:

>
>>
>> *	Secondly, the code does not recognize the Endianess of the machine 
>> and throws an error in the native/fdlibm/ieeefp.h file stating 
>> "Endianess not declared!!" error. As a resolution I had added the 
>> following lines of code in the header file:
>>
>> 		#if (defined(_AIX) && _AIX)
>> 		#define __IEEE_BIG_ENDIAN
>> 		#endif
>>
>
> I had similar problems with OS X.  I see:
>
> #if defined (__PPC__) || defined (__ppc__)
> #if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) \
>     || defined (__APPLE__)
> #define __IEEE_BIG_ENDIAN
> #else
> #if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__)
>  && __sun__)
>  || (defined(__WIN32__) && __WIN32__)
> #define __IEEE_LITTLE_ENDIAN
> #endif
> #endif
> #endif
>
> So I guess __PPC__ or __ppc__ not defined.  Am not not quite sure what
> would actually be the correct way to fix it.
>
>> Though I am able to successfully build the libraries using the 
>> following configure command, can anyone confirm that this will not 
>> lead to problems as it seems the sableVM code does not support the 
>> AIX platforms.
>>
>> ./configure --prefix=/opt/seclient1                 \
>>              --enable-java                          \
>>              --with-jikes                           \
>>              --enable-jni                           \
>>              --disable-gtk-peer                     \
>>              --with-find=/usr/linux/bin/find        \
>>                CPPFLAGS=-I/opt/seclient1/include    \
>>                LDFLAGS=-L/opt/seclient1/lib  2>&1 | tee ../conf.out
>>
>> Moreover the sableVM code also does not recognise the IBM 
>> architecture and gives problems with the Assembly code.
>>
>
> There is a bug report about the assembly code issue:
> http://sablevm.org/bugs  (SableVM website seems down currently...)
>
> Either problems with assembly syntax or instructions used unsupported 
> by
> that CPU.  I don't think any of the current SableVM developer have
> access to a AIX machine.  There are a few lines of assembly code for 
> two
> task:
> 1) compare and swap implementation (synchronization primitive)
> 2) flushing/invalidating the the instruction cache
> These should be all located in file:
> src/libsablevm/system.c (and/or .h)
>
>
> David
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.