Project

General

Profile

Actions

Bug #1914

closed

ruby-1.9.1-p243 failed to build from source on aix 5.3 with gcc 4.2.0

Added by rubisher (Joel Soete) over 14 years ago. Updated almost 13 years ago.

Status:
Closed
Target version:
ruby -v:
ruby-1.9.1-p243
Backport:
[ruby-dev:39052]

Description

=begin
Hello all,

I very fall in love of ruby programming language when I discover it some years ago (iirc it was release 1.6) and when in a few days, even thought I am not a programmer, I was able to rewrite in ruby a ksh script of mine about 10 time faster ;<)

Today I would like to use it on the platform Aix which I am now in charge to manage as system engineer.

I reach to compile release 1.8.7-p160 and later but without kernel pthread support, also would I like to test 1.9 if it better support those native pthread.

Unfortunately, it failed to build with this first issue:
/opt/freeware/bin/gcc -fno-strict-aliasing -gxcoff -fsigned-char -D_LINUX_SOURCE_COMPAT -D_REENTRANT -O2 -g -Wall -Wno-parentheses
-I. -I.ext/include/powerpc-aix5
.3.0.0 -I./include -I. -DRUBY_EXPORT -D_LINUX_SOURCE_COMPAT -o dmyext.o -c dmyext.c
/opt/freeware/bin/gcc -fno-strict-aliasing -gxcoff -fsigned-char -D_LINUX_SOURCE_COMPAT -D_REENTRANT -O2 -g -Wall -Wno-parentheses
-I. -I.ext/include/powerpc-aix5
.3.0.0 -I./include -I. -DRUBY_EXPORT -D_LINUX_SOURCE_COMPAT -o encoding.o -c encoding.c
make: Circular prelude.c <- .rbconfig.time dependency dropped.
make: Circular prelude.c <- miniruby dependency dropped.
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb -I. -rrbconfig ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb .
/gem_prelude.rb prelude.c
make: ./miniruby: Command not found
make: *** [prelude.c] Error 127

With Google I read this thread:
http://www.ruby-forum.com/topic/135197
well the patch aix.diff it contains and apply:

diff -Naur ruby-1.9.1-p243.orig/common.mk ruby-1.9.1-p243/common.mk
--- ruby-1.9.1-p243.orig/common.mk 2009-05-04 12:31:23.000000000 +0000
+++ ruby-1.9.1-p243/common.mk 2009-08-07 13:04:27.000000000 +0000
@@ -160,8 +160,8 @@
@$(RM) $@
$(PURIFY) $(CC) $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(XLDF
LAGS)

-ruby.imp: $(OBJS)

  •   @$(NM) -Pgp $(OBJS) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@
    

+ruby.imp: $(COMMONOBJS)

  •   @$(NM) -Pgp $(COMMONOBJS) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@
    

install: install-nodoc $(RDOCTARGET)
install-all: install-nodoc install-doc

which help me to go a bit ahead but finaly failed as follow:

make[1]: Entering directory `/lppdir/stage/ruby1.9/ruby-1.9.1-p243/ext/dl'
/opt/freeware/bin/gcc -I. -I../../.ext/include/powerpc-aix5.3.0.0 -I../.././include -I../.././ext/dl -DRUBY_EXTCONF_H="extconf.h"
-D_LINUX_SOURCE_COMPAT -D_LARGE_FILES=1 -fno-strict-aliasing -gxcoff -fsigned-char -D_LINUX_SOURCE_COMPAT -D_REENTRANT -O2 -g -Wa
ll -Wno-parentheses -fno-defer-pop -fno-omit-frame-pointer -o cfunc.o -c cfunc.c
generating callback.h
/lppdir/stage/ruby1.9/ruby-1.9.1-p243/.ext/powerpc-aix5.3.0.0/enc/encdb.so: [BUG] Segmentation fault
ruby 1.9.1p243 (2009-07-16 revision 24175) [powerpc-aix5.3.0.0]

-- control frame ----------
c:0003 p:-134605378 s:0006 b:0006 l:000005 d:000005 TOP
c:0002 p:-134599490 s:0004 b:0004 l:000003 d:000003 TOP
c:0001 p:0000 s:0002 b:0002 l:00265c d:00265c TOP

-- Ruby level backtrace information-----------------------------------------

[NOTE]
You may encounter a bug of Ruby interpreter. Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

make[1]: *** [callback.h] IOT/Abort trap (core dumped)
make[1]: Leaving directory `/lppdir/stage/ruby1.9/ruby-1.9.1-p243/ext/dl'
make: *** [mkmain.sh] Error 1

Well I also read this thread related also related to 1.9 but with xlC compiler:
http://www.ruby-forum.com/topic/180444

but as I am not a programmer, I am not familiar with any gdb or dbx and I doesn't understand how Graham reach to compile ruby1.9.

That said, I noticed another error in the make step:
/opt/freeware/bin/gcc -shared -Wl,-G -Wl,-bnoentry -Wl,-bE:ruby.imp -Wl,-brtl -Wl,-blibpath:/opt/mce-pware/lib:/usr/lib:/lib dln.
o encoding.o prelude.o array.o bi
gnum.o class.o compar.o complex.o dir.o enum.o enumerator.o error.o eval.o load.o proc.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 random.o range.o rational.o re.o regcomp.o regenc.o regerror.o regexec.o regparse.o regsyntax.o ruby.o safe.o sig
nal.o sprintf.o st.o strftime.o s
tring.o struct.o time.o transcode.o util.o variable.o version.o compile.o debug.o iseq.o vm.o vm_dump.o thread.o cont.o ascii.o us_
ascii.o unicode.o utf_8.o newline
.o flock.o strlcpy.o strlcat.o dmyext.o -lm -lc -o libruby.so.1.9.1
/usr/bin/w64: Not a recognized flag: L
Usage: /usr/bin/w64 [ -hlsuwX ] [ user ]
make: [libruby.so.1.9.1] Error 1 (ignored)

I was worry why 'w' was used here and see that it comes from Makefile:
Makefile
$(LIBRUBY_SO):
@-$(PRE_LIBRUBY_UPDATE)
$(LDSHARED) $(DLDFLAGS) $(OBJS) $(DLDOBJS) $(SOLIBS) $(OUTFLAG)$@
-$(OBJCOPY) -w -L 'Init_*' $@
@-$(MINIRUBY) -e 'ARGV.each{|link| File.delete link if File.exist? link;
File.symlink "$(LIBRUBY_SO)", link}'
$(LIBRUBY_ALIASES) || true

but I didn't install binutils (I read somewhere it wasn't recommended) so:

SET_LC_MESSAGES = env LC_MESSAGES=C
OBJDUMP =
OBJCOPY =
VCS = echo cannot
VCSUP = $(VCS)

But this error is 'ignored' so may be not related to the previous "[BUG] Segmentation fault" above, though?

That said, all comments, advise will be welcome.

Thanks in advance,
J.
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0