C
Chad Brewbaker
Trying to cross-compile a compute node binary of Ruby1.9.
First, the configure.in file is still broken from Ruby1.8.6. You need to
comment out these lines so the configure script doesn't break:
/configure.in:706:#AC_FUNC_GETPGRP
/configure.in:707:#AC_FUNC_SETPGRP
You also need to hack the resulting configure file so it won't exit
complaining you are trying to cross compile.
I used the following configure options:
export CC=blrts_xlc
export F77=blrts_xlf
export FFLAGS=" -O2"
export CFLAGS=" -O2"
#Make sure to link the lmsglayer,lrts,ldevices before and after
everything in the makefile.
export LDFLAGS=" -qarch=440d -qtune=440 \
-lc -lnss_files -lnss_dns -lresolv \
-L/bgl/BlueLight/ppcfloor/bglsys/lb -lmpich.rts -lmsglayer.rts
-lrts.rts -ldevices.rts"
echo "Configuring"
export EXTLIBS="-lc -lnss_files -lnss_dns -lresolv" \
/configure -build powerpc-aix -host ppc-linux-gnu \
--includedir=/home/crb002/include --oldincludedir=/home/crb002/include
--prefix=/home/crb002/
Now for the make:
class `Module' (NameError)
from ./lib/fileutils.rb:1532
from ./lib/fileutils.rb:1531:in `each'
from ./lib/fileutils.rb:1531
from ./mkconfig.rb:10:in `require'
from ./mkconfig.rb:10
make: *** [.rbconfig.time] Error 1
-timestamp=.rbconfig.time \
-install_name=ruby \
-so_name=ruby rbconfig.rb
ruby -I/MY_FANCY_PATH/ruby -rfake -I. -rrbconfig
/tool/compile_prelude.rb ./prelude.rb ./gem_prelude.rb prelude.c
blrts_xlc -O5 -qarch=440d -qtune=440 -I. -I.ext/include/powerpc-linux
-I./include -I. -DRUBY_EXPORT -D_GNU_SOURCE=1 -c prelude.c
make: *** No rule to make target `thread_.h', needed by `error.o'.
Stop.
Any sugestions?
First, the configure.in file is still broken from Ruby1.8.6. You need to
comment out these lines so the configure script doesn't break:
/configure.in:706:#AC_FUNC_GETPGRP
/configure.in:707:#AC_FUNC_SETPGRP
You also need to hack the resulting configure file so it won't exit
complaining you are trying to cross compile.
I used the following configure options:
export CC=blrts_xlc
export F77=blrts_xlf
export FFLAGS=" -O2"
export CFLAGS=" -O2"
#Make sure to link the lmsglayer,lrts,ldevices before and after
everything in the makefile.
export LDFLAGS=" -qarch=440d -qtune=440 \
-lc -lnss_files -lnss_dns -lresolv \
-L/bgl/BlueLight/ppcfloor/bglsys/lb -lmpich.rts -lmsglayer.rts
-lrts.rts -ldevices.rts"
echo "Configuring"
export EXTLIBS="-lc -lnss_files -lnss_dns -lresolv" \
/configure -build powerpc-aix -host ppc-linux-gnu \
--includedir=/home/crb002/include --oldincludedir=/home/crb002/include
--prefix=/home/crb002/
Now for the make:
/lib/fileutils.rb:1532:in `public': undefined method `commands' formake
class `Module' (NameError)
from ./lib/fileutils.rb:1532
from ./lib/fileutils.rb:1531:in `each'
from ./lib/fileutils.rb:1531
from ./mkconfig.rb:10:in `require'
from ./mkconfig.rb:10
make: *** [.rbconfig.time] Error 1
ruby -I/MY_FANCY_PATH/ruby -rfake ./mkconfig.rbmake -n
-timestamp=.rbconfig.time \
-install_name=ruby \
-so_name=ruby rbconfig.rb
ruby -I/MY_FANCY_PATH/ruby -rfake -I. -rrbconfig
/tool/compile_prelude.rb ./prelude.rb ./gem_prelude.rb prelude.c
blrts_xlc -O5 -qarch=440d -qtune=440 -I. -I.ext/include/powerpc-linux
-I./include -I. -DRUBY_EXPORT -D_GNU_SOURCE=1 -c prelude.c
make: *** No rule to make target `thread_.h', needed by `error.o'.
Stop.
Any sugestions?