Re: Problem with sableVM on AIX Platforms
David Bélanger <[email protected]>
| Newsgroups | gmane.comp.java.vm.sablevm.general |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Dec 20, 2004 at 07:56:42PM +0530, Manish.Sood wrote:
> Hi
>
> I am trying to build SableVM 1.1.7 on AIX 5.1 running on an AIX box as follows:
>
> Processor Type: PowerPC_POWER3 or PowerPC_POWER4
> Model Architecture: chrp
>
Hi,
Thank you for trying out SableVM on that platform. There is also
someone else trying to get it to run on that platform though I don't
think that person succeeded yet.
> * The default AIX Find does not support -regex option and thus the configure script does not work well. As a resolution, I had taken the GNU findutils for AIX.
>
Is this the SableVM or the SableVM-Classpath configure script? Some of
the building process needs GNU tools. I don't remember having to
install GNU find on some other systems but thing might have changed.
>
> * 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
---
David Bélanger
Web page: http://www.cs.mcgill.ca/~dbelan2/
Public key: http://www.cs.mcgill.ca/~dbelan2/public_key.txt