this is more a question on the RJB forum, not buildr.


anyways, the way RJB is built is that the file ext/load.c has precompiler conditions based on predefined variables that define ARCH and JVM_TYPE, based on that, RJB knows where to load libjvm.so from.


this is not a very good solution (look in the rjb forum for a post i made there detailing why), you have two options:

1. modify ext/load.c to include another #elsif for PPC, then create a gem and install it

2. i can send you a modified version of rjb that i have that uses an environment variable JVM_LIB to tell it where to load the library from. this means that you'll have to export it before running buildr


please note that in even if it finds the library, it doesn't mean it will be able to load it (i wasn't able to load it on hpux 11.11). it's a tricky business.


ittay


Antoine Toulme wrote:

Hi everybody, I hit an error while trying to install buildr on a Linux
machine.

The setup of the machine is a bit particular. I have no sudo rights. I
installed ruby and rubygems from source, and tied them to the path.

uname -a returns:
Linux build 2.6.16.60-0.27-ppc64 #1 SMP Mon Jul 28 12:44:10 UTC 2008 ppc64
ppc64 ppc64 GNU/Linux

The JVM installed on this machine are IBM JVMs.

I have the nested error presented below while trying to install buildr,
which in turn tries to install rjb.

If you are into Eclipse, you can visit
https://bugs.eclipse.org/bugs/show_bug.cgi?id=258404 for more information.

$>env JAVA_HOME=$JAVA_HOME gem install buildr
Building native extensions.  This could take a while...
ERROR:  Error installing buildr:
ERROR: Failed to build gem native extension.

/shared/common/ruby-1.8.7/bin/ruby extconf.rb install buildr
checking for jni.h... yes
checking for dl.h... yes
checking for locale_charset() in iconv.h... no
checking for nl_langinfo() in langinfo.h... yes
checking for setlocale() in locale.h... yes
checking for getenv()... yes
creating extconf.h
creating Makefile

make
gcc -I. -I. -I/shared/common/ruby-1.8.7/lib/ruby/1.8/powerpc64-linux -I.
-I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include
-DRUBY_EXTCONF_H=\"extconf.h\"  -D_FILE_OFFSET_BITS=64  -fPIC -g -O2
 -I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include  -c rjb.c
rjb.c: In function 'r2barray':
rjb.c:849: warning: passing argument 5 of '(*jenv)->SetByteArrayRegion'
discards qualifiers from pointer target type
gcc -I. -I. -I/shared/common/ruby-1.8.7/lib/ruby/1.8/powerpc64-linux -I.
-I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include
-DRUBY_EXTCONF_H=\"extconf.h\"  -D_FILE_OFFSET_BITS=64  -fPIC -g -O2
 -I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include  -c
rjbexception.c
gcc -I. -I. -I/shared/common/ruby-1.8.7/lib/ruby/1.8/powerpc64-linux -I.
-I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include
-DRUBY_EXTCONF_H=\"extconf.h\"  -D_FILE_OFFSET_BITS=64  -fPIC -g -O2
 -I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include  -c riconv.c
gcc -I. -I. -I/shared/common/ruby-1.8.7/lib/ruby/1.8/powerpc64-linux -I.
-I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include
-DRUBY_EXTCONF_H=\"extconf.h\"  -D_FILE_OFFSET_BITS=64  -fPIC -g -O2
 -I/shared/stp/apps/ibm-java2-sdk-5.0-6.0-linux-ppc/include  -c load.c
load.c:70:30: error: sys/systeminfo.h: No such file or directory
load.c: In function 'load_jvm':
load.c:144: error: 'ARCH' undeclared (first use in this function)
load.c:144: error: (Each undeclared identifier is reported only once
load.c:144: error: for each function it appears in.)
make: *** [load.o] Error 1


Gem files will remain installed in
/shared/common/ruby-1.8.7/lib/ruby/gems/1.8/gems/rjb-1.1.6 for inspection.
Results logged to
/opt/public/common/ruby-1.8.7/lib/ruby/gems/1.8/gems/rjb-1.1.6/ext/gem_make.out

Does this ring a bell for anyone ?

Thanks,

Antoine


--
Ittay Dror <[EMAIL PROTECTED]>
Tikal <http://www.tikalk.com>
Tikal Project <http://tikal.sourceforge.net>

Reply via email to