From: Justin Johnson Date: 2006-06-21T23:16:36+09:00 Subject: Building on AIX 5.3 Hello, I'm having a difficult time building Ruby on AIX 5.3. I'm installing it on a separate file system (/svn) to avoid the need for root access. First I uncompress the following prebuilt binaries to /svn. I downloaded these binaries from http://aixpdslib.seas.ucla.edu/. autoconf.2.59.tar.Z gcc.4.1.0.tar.Z libtool.1.5.22.tar.Z m4.1.4.4.tar.Z make.3.80.tar.Z zlib.1.2.3.tar.Z Note that I didn't install binutils (ld and company) because it was causing some problems for some of the other packages I am building. So I'm using the version of ld that comes with the OS. Then I attempt to build Ruby, first unzipping and configuring it with the following commands. cd $build_dir gunzip $src_dir/ruby-1.8.4.tar.gz tar xvf $src_dir/ruby-1.8.4.tar cd ruby-1.8.4 ./configure --prefix=/svn This completes successfully. Then I run make, which ends with an error. svnadm /svn/build/ruby-1.8.4>make gcc -g -O2 -DRUBY_EXPORT -I. -I. -c array.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c bignum.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c class.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c compar.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c dir.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c dln.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c enum.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c error.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c eval.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c file.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c gc.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c hash.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c inits.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c io.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c marshal.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c math.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c numeric.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c object.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c pack.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c parse.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c process.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c prec.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c random.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c range.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c re.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c regex.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c ruby.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c signal.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c sprintf.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c st.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c string.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c struct.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c time.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c util.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c variable.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c version.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c ./missing/flock.c gcc -g -O2 -DRUBY_EXPORT -I. -I. -c dmyext.c ar rcu libruby-static.a array.o bignum.o class.o compar.o dir.o dln.o enum.o error.o eval.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o prec.o random.o range.o re.o regex.o ruby.o signal.o sprintf.o st.o string.o struct.o time.o util.o variable.o version.o flock.o dmyext.o gcc -g -O2 -DRUBY_EXPORT -I. -I. -c main.c gcc main.o libruby-static.a -ldl -lcrypt -lm -o miniruby -g -O2 -DRUBY_EXPORT -brtl gcc: unrecognized option '-brtl' rbconfig.rb updated compiling Win32API compiling bigdecimal make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/bigdecimal' mkdir -p ../../.ext/powerpc-aix5.3.0.0 gcc -g -O2 -I. -I../.. -I../../. -I../.././ext/bigdecimal -c bigdecimal.c In file included from ../../ruby.h:24, from bigdecimal.c:23: ../../config.h:8:1: warning: "_ALL_SOURCE" redefined In file included from /svn/usr/local/bin/../lib/gcc/powerpc-ibm-aix5.3.0.0/4.1.0/include/ctype.h:46, from bigdecimal.c:16: /usr/include/standards.h:130:1: warning: this is the location of the previous definition /usr/ccs/bin/ld -brtl -eInit_bigdecimal -bI:../../ruby.imp -bM:SRE -T512 -H512 -L"../.." -o ../../.ext/powerpc-aix5.3.0.0/bigdecimal.so bigdecimal.o -ldl -lcrypt -lm -lc ld: 0706-003 Cannot find or read import file: ../../ruby.imp ld:accessx(): A file or directory in the path name does not exist. make[1]: *** [../../.ext/powerpc-aix5.3.0.0/bigdecimal.so] Error 255 make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/bigdecimal' make: *** [all] Error 1 svnadm /svn/build/ruby-1.8.4> As an attempt to get around this error I tried making ruby.imp and then running make again. This got me a little further. svnadm /svn/build/ruby-1.8.4>make ruby.imp svnadm /svn/build/ruby-1.8.4>make compiling Win32API make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/Win32API' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/Win32API' compiling bigdecimal make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/bigdecimal' /usr/ccs/bin/ld -brtl -eInit_bigdecimal -bI:../../ruby.imp -bM:SRE -T512 -H512 -L"../.." -o ../../.ext/powerpc-aix5.3.0.0/bigdecimal.so bigdecimal.o -ldl -lcrypt -lm -lc mkdir -p ../../.ext/bigdecimal cp ../.././ext/bigdecimal/lib/bigdecimal/jacobian.rb ../../.ext/bigdecimal cp ../.././ext/bigdecimal/lib/bigdecimal/ludcmp.rb ../../.ext/bigdecimal cp ../.././ext/bigdecimal/lib/bigdecimal/math.rb ../../.ext/bigdecimal cp ../.././ext/bigdecimal/lib/bigdecimal/newton.rb ../../.ext/bigdecimal cp ../.././ext/bigdecimal/lib/bigdecimal/util.rb ../../.ext/bigdecimal make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/bigdecimal' compiling curses make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/curses' gcc -g -O2 -I. -I../.. -I../../. -I../.././ext/curses -DHAVE_CURSES_H -DHAVE_BEEP -DHAVE_BKGD -DHAVE_BKGDSET -DHAVE_CURS_SET -DHAVE_DELETELN -DHAVE_DOUPDATE -DHAVE_FLASH -DHAVE_GETBKGD -DHAVE_GETNSTR -DHAVE_ISENDWIN -DHAVE_KEYNAME -DHAVE_KEYPAD -DHAVE_SCRL -DHAVE_SETSCRREG -DHAVE_UNGETCH -DHAVE_WATTROFF -DHAVE_WATTRON -DHAVE_WATTRSET -DHAVE_WBKGD -DHAVE_WBKGDSET -DHAVE_WDELETELN -DHAVE_WGETNSTR -DHAVE_WSCRL -DHAVE_WSETSCRREG -DHAVE_DEF_PROG_MODE -DHAVE_RESET_PROG_MODE -DHAVE_TIMEOUT -DHAVE_WTIMEOUT -DHAVE_NODELAY -DHAVE_INIT_COLOR -DHAVE_WCOLOR_SET -c curses.c /usr/ccs/bin/ld -brtl -eInit_curses -bI:../../ruby.imp -bM:SRE -T512 -H512 -L"../.." -o ../../.ext/powerpc-aix5.3.0.0/curses.so curses.o -lcurses -ltermcap -ldl -lcrypt -lm -lc make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/curses' compiling dbm make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/dbm' gcc -g -O2 -DDBM_HDR="" -I. -I../.. -I../../. -I../.././ext/dbm -DHAVE_DBM_OPEN -DHAVE_NDBM_H -DHAVE_TYPE_DBM -DHAVE_SYS_CDEFS_H -DHAVE_DBM_OPEN -DHAVE_DBM_CLEARERR -c dbm.c /usr/ccs/bin/ld -brtl -eInit_dbm -bI:../../ruby.imp -bM:SRE -T512 -H512 -L"../.." -o ../../.ext/powerpc-aix5.3.0.0/dbm.so dbm.o -ldl -lcrypt -lm -lc make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/dbm' compiling digest make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/digest' gcc -g -O2 -I. -I../.. -I../../. -I../.././ext/digest -c digest.c /usr/ccs/bin/ld -brtl -eInit_digest -bI:../../ruby.imp -bM:SRE -T512 -H512 -L"../.." -o ../../.ext/powerpc-aix5.3.0.0/digest.so digest.o -ldl -lcrypt -lm -lc cp ../.././ext/digest/lib/md5.rb ../../.ext cp ../.././ext/digest/lib/sha1.rb ../../.ext make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/digest' compiling digest/md5 make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/digest/md5' mkdir -p ../../../.ext/powerpc-aix5.3.0.0/digest gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/md5/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/md5 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c md5init.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/md5/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/md5 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c md5.c /usr/ccs/bin/ld -brtl -eInit_md5 -bI:../../../ruby.imp -bM:SRE -T512 -H512 -L"../../.." -o ../../../.ext/powerpc-aix5.3.0.0/digest/md5.so md5init.o md5.o -ldl -lcrypt -lm -lc make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/digest/md5' compiling digest/rmd160 make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/digest/rmd160' gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/rmd160/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/rmd160 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c rmd160init.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/rmd160/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/rmd160 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c rmd160.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/rmd160/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/rmd160 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c rmd160hl.c /usr/ccs/bin/ld -brtl -eInit_rmd160 -bI:../../../ruby.imp -bM:SRE -T512 -H512 -L"../../.." -o ../../../.ext/powerpc-aix5.3.0.0/digest/rmd160.so rmd160init.o rmd160.o rmd160hl.o -ldl -lcrypt -lm -lc make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/digest/rmd160' compiling digest/sha1 make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/digest/sha1' gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/sha1/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/sha1 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c sha1init.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/sha1/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/sha1 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c sha1.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/sha1/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/sha1 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -c sha1hl.c /usr/ccs/bin/ld -brtl -eInit_sha1 -bI:../../../ruby.imp -bM:SRE -T512 -H512 -L"../../.." -o ../../../.ext/powerpc-aix5.3.0.0/digest/sha1.so sha1init.o sha1.o sha1hl.o -ldl -lcrypt -lm -lc make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/digest/sha1' compiling digest/sha2 make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/digest/sha2' gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/sha2/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/sha2 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -DHAVE_TYPE_UINT64_T -c sha2.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/sha2/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/sha2 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -DHAVE_TYPE_UINT64_T -c sha2hl.c gcc -g -O2 -DHAVE_CONFIG_H -I../../.././ext/digest/sha2/.. -I. -I../../.. -I../../../. -I../../.././ext/digest/sha2 -DHAVE_SYS_CDEFS_H -DHAVE_INTTYPES_H -DHAVE_UNISTD_H -DHAVE_TYPE_UINT64_T -c sha2init.c /usr/ccs/bin/ld -brtl -eInit_sha2 -bI:../../../ruby.imp -bM:SRE -T512 -H512 -L"../../.." -o ../../../.ext/powerpc-aix5.3.0.0/digest/sha2.so sha2.o sha2hl.o sha2init.o -ldl -lcrypt -lm -lc make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/digest/sha2' compiling dl make[1]: Entering directory `/svn/build/ruby-1.8.4/ext/dl' Generating callback.func /svn/lib/ruby/1.8/powerpc-aix5.3.0.0/etc.so: [BUG] Segmentation fault ruby 1.8.4 (2005-12-24) [powerpc-aix5.3.0.0] make[1]: *** [callback.func] IOT/Abort trap (core dumped) make[1]: *** Deleting file `callback.func' make[1]: Leaving directory `/svn/build/ruby-1.8.4/ext/dl' make: *** [all] Error 1 svnadm /svn/build/ruby-1.8.4> Does anyone know how to get around these problems, or what the problems are to begin with? Thanks, Justin