書き忘れたこと。
古いAIXの環境を考慮して、dlopenとか使わない方向にしてあります。というわけで現状の差異。なんと言ってもこれでやっとスタート地点。
Index: common.mk =================================================================== RCS file: /src/ruby/common.mk,v retrieving revision 1.13.2.6 diff -u -r1.13.2.6 common.mk --- common.mk 13 Feb 2006 14:22:56 -0000 1.13.2.6 +++ common.mk 6 Aug 2006 23:21:53 -0000 @@ -66,16 +66,16 @@ $(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP) -$(LIBRUBY_A): $(OBJS) $(DMYEXT) +$(LIBRUBY_A): $(OBJS) $(DMYEXT) $(ARCHFILE) -$(LIBRUBY_SO): $(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(ARCHFILE) +$(LIBRUBY_SO): $(OBJS) $(DLDOBJS) $(LIBRUBY_A) $(PREP) $(STATIC_RUBY)$(EXEEXT): $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A) @$(RM) $@ $(PURIFY) $(CC) $(MAINOBJ) $(DLDOBJS) $(EXTOBJS) $(LIBRUBY_A) $(MAINLIBS) $(EXTLIBS) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(XLDFLAGS) -ruby.imp: $(LIBRUBY_A) - @$(NM) -Pgp $(LIBRUBY_A) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@ +ruby.imp: $(OBJS) + @$(NM) -Pgp $(OBJS) | awk 'BEGIN{print "#!"}; $$2~/^[BD]$$/{print $$1}' | sort -u -o $@ install: install-nodoc $(RDOCTARGET) install-all: install-nodoc install-doc @@ -112,6 +112,8 @@ pre-install: pre-install-local pre-install-ext pre-install-local:: PHONY + $(RM) $(prefix)/lib/$(LIBRUBY) + $(RM) -r $(prefix)/lib/ruby/$(MAJOR).$(MINOR)/$(arch) pre-install-ext:: PHONY pre-install-doc:: PHONY Index: configure.in =================================================================== RCS file: /src/ruby/configure.in,v retrieving revision 1.212.2.58 diff -u -r1.212.2.58 configure.in --- configure.in 26 Jul 2006 13:28:17 -0000 1.212.2.58 +++ configure.in 6 Aug 2006 23:21:53 -0000 @@ -993,16 +993,20 @@ : ${LDFLAGS=""} : ${LIBPATHENV=DYLD_LIBRARY_PATH} rb_cv_dlopen=yes ;; - aix*) : ${LDSHARED='/usr/ccs/bin/ld'} - XLDFLAGS="$XLDFLAGS -Wl,-bE:ruby.imp" - DLDFLAGS='-brtl -eInit_$(TARGET) -bI:$(topdir)/ruby.imp -bM:SRE -T512 -H512 '"$DLDFLAGS" - LDFLAGS="-brtl $LDFLAGS" - : ${ARCHFILE="ruby.imp"} - TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS) $(CFLAGS)' - TRY_LINK="$TRY_LINK"' $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)' - : ${LIBPATHENV=SHLIB_PATH} - rb_cv_dlopen=yes ;; - + aix*) if test "$GCC" = yes; then + : ${LDSHARED='gcc -shared'} + DLDFLAGS='-Wl,-G -eInit_$(TARGET)' + LDFLAGS='-Wl,-brtl -Wl,-bE:ruby.imp' + else + : ${LDSHARED='/usr/ccs/bin/ld'} + DLDFLAGS='-G -eInit_$(TARGET)' + LDFLAGS="-brtl -bE:ruby.imp" + fi + : ${ARCHFILE="ruby.imp"} + TRY_LINK='$(CC) $(LDFLAGS) -oconftest $(INCFLAGS) -I$(hdrdir) $(CPPFLAGS)' + TRY_LINK="$TRY_LINK"' $(CFLAGS) $(src) $(LIBPATH) $(LOCAL_LIBS) $(LIBS)' + : ${LIBPATHENV=SHLIB_PATH} + rb_cv_dlopen=yes ;; human*) : ${DLDFLAGS=''} : ${LDSHARED=''} : ${LDFLAGS=''} @@ -1305,12 +1309,12 @@ aix*) if test "$GCC" = yes; then LIBRUBY_LDSHARED='$(CC) -shared' - LIBRUBY_DLDFLAGS='-Wl,-bE:ruby.imp' + LIBRUBY_DLDFLAGS='-Wl,-G -Wl,-bE:ruby.imp -Wl,-bnoentry' else LIBRUBY_LDSHARED='/usr/ccs/bin/ld' - LIBRUBY_DLDFLAGS='-bE:ruby.imp -bM:SRE -bnoentry' + LIBRUBY_DLDFLAGS='-G -bE:ruby.imp -bnoentry' fi - LIBRUBYARG_SHARED='-L${libdir} -Wl,lib$(RUBY_SO_NAME).so' + LIBRUBYARG_SHARED='-L${libdir} -lruby' SOLIBS='-lm -lc' ;; beos*) Index: dln.c =================================================================== RCS file: /src/ruby/dln.c,v retrieving revision 1.59.2.9 diff -u -r1.59.2.9 dln.c --- dln.c 25 Jan 2006 13:30:10 -0000 1.59.2.9 +++ dln.c 6 Aug 2006 23:21:53 -0000 @@ -27,10 +27,6 @@ char *dln_argv0; #endif -#ifdef _AIX -#pragma alloca -#endif - #if defined(HAVE_ALLOCA_H) #include <alloca.h> #endif Index: eval.c =================================================================== RCS file: /src/ruby/eval.c,v retrieving revision 1.616.2.189 diff -u -r1.616.2.189 eval.c --- eval.c 1 Aug 2006 03:25:14 -0000 1.616.2.189 +++ eval.c 6 Aug 2006 23:21:53 -0000 @@ -53,9 +53,7 @@ # ifdef HAVE_ALLOCA_H # include <alloca.h> # else -# ifdef _AIX - #pragma alloca -# else +# ifndef _AIX # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (); # endif Index: gc.c =================================================================== RCS file: /src/ruby/gc.c,v retrieving revision 1.168.2.43 diff -u -r1.168.2.43 gc.c --- gc.c 14 Jul 2006 17:12:47 -0000 1.168.2.43 +++ gc.c 6 Aug 2006 23:21:53 -0000 @@ -66,9 +66,7 @@ # ifdef HAVE_ALLOCA_H # include <alloca.h> # else -# ifdef _AIX - #pragma alloca -# else +# ifndef _AIX # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (); # endif Index: regex.c =================================================================== RCS file: /src/ruby/Attic/regex.c,v retrieving revision 1.96.2.8 diff -u -r1.96.2.8 regex.c --- regex.c 24 Apr 2006 15:15:21 -0000 1.96.2.8 +++ regex.c 6 Aug 2006 23:21:53 -0000 @@ -84,16 +84,19 @@ # endif # endif /* atarist */ #else -# if defined(HAVE_ALLOCA_H) +# ifdef HAVE_ALLOCA_H # include <alloca.h> -# elif !defined(alloca) -char *alloca(); -# endif -#endif /* __GNUC__ */ +# else +# ifdef _AIX + #pragma alloca +# else +# ifndef alloca /* predefined by HP cc +Olibcalls */ +void *alloca (); +# endif +# endif /* AIX */ +# endif /* HAVE_ALLOCA_H */ -#ifdef _AIX -#pragma alloca -#endif +#endif /* __GNUC__ */ #ifdef HAVE_STRING_H # include <string.h> Index: ruby.h =================================================================== RCS file: /src/ruby/ruby.h,v retrieving revision 1.97.2.20 diff -u -r1.97.2.20 ruby.h --- ruby.h 31 Jul 2006 06:34:10 -0000 1.97.2.20 +++ ruby.h 6 Aug 2006 23:21:53 -0000 @@ -65,10 +65,10 @@ #if defined(HAVE_ALLOCA_H) #include <alloca.h> -#endif - -#ifdef _AIX +#else +# ifdef _AIX #pragma alloca +# endif #endif #if defined(__VMS) Index: ext/bigdecimal/bigdecimal.c =================================================================== RCS file: /src/ruby/ext/bigdecimal/bigdecimal.c,v retrieving revision 1.41.2.8 diff -u -r1.41.2.8 bigdecimal.c --- ext/bigdecimal/bigdecimal.c 13 Jul 2006 15:42:59 -0000 1.41.2.8 +++ ext/bigdecimal/bigdecimal.c 6 Aug 2006 23:21:53 -0000 @@ -13,6 +13,7 @@ * */ +#include "ruby.h" #include <ctype.h> #include <stdio.h> #include <stdlib.h> @@ -20,7 +21,6 @@ #include <errno.h> #include <float.h> #include <math.h> -#include "ruby.h" #include "math.h" #include "version.h" Index: ext/digest/rmd160/rmd160ossl.c =================================================================== RCS file: /src/ruby/ext/digest/rmd160/rmd160ossl.c,v retrieving revision 1.1 diff -u -r1.1 rmd160ossl.c --- ext/digest/rmd160/rmd160ossl.c 26 Sep 2002 17:26:46 -0000 1.1 +++ ext/digest/rmd160/rmd160ossl.c 6 Aug 2006 23:21:53 -0000 @@ -1,7 +1,7 @@ /* $Id: rmd160ossl.c,v 1.1 2002/09/26 17:26:46 knu Exp $ */ -#include "rmd160ossl.h" #include "defs.h" +#include "rmd160ossl.h" #include <assert.h> #include <stdlib.h> Index: ext/digest/sha1/sha1ossl.c =================================================================== RCS file: /src/ruby/ext/digest/sha1/sha1ossl.c,v retrieving revision 1.1 diff -u -r1.1 sha1ossl.c --- ext/digest/sha1/sha1ossl.c 26 Sep 2002 17:44:33 -0000 1.1 +++ ext/digest/sha1/sha1ossl.c 6 Aug 2006 23:21:53 -0000 @@ -1,7 +1,7 @@ /* $Id: sha1ossl.c,v 1.1 2002/09/26 17:44:33 knu Exp $ */ -#include "sha1ossl.h" #include "defs.h" +#include "sha1ossl.h" #include <assert.h> #include <stdlib.h> Index: ext/readline/readline.c =================================================================== RCS file: /src/ruby/ext/readline/readline.c,v retrieving revision 1.16.2.9 diff -u -r1.16.2.9 readline.c --- ext/readline/readline.c 24 Jul 2006 06:55:26 -0000 1.16.2.9 +++ ext/readline/readline.c 6 Aug 2006 23:21:53 -0000 @@ -1,6 +1,7 @@ /* readline.c -- GNU Readline module Copyright (C) 1997-2001 Shugo Maeda */ +#include "config.h" #include <errno.h> #include <stdio.h> #include <ctype.h> Index: ext/socket/socket.c =================================================================== RCS file: /src/ruby/ext/socket/socket.c,v retrieving revision 1.108.2.52 diff -u -r1.108.2.52 socket.c --- ext/socket/socket.c 21 Jun 2006 20:19:07 -0000 1.108.2.52 +++ ext/socket/socket.c 6 Aug 2006 23:21:54 -0000 @@ -195,6 +195,12 @@ } #undef getaddrinfo #define getaddrinfo(node,serv,hints,res) ruby_getaddrinfo__aix((node),(serv),(hints),(res)) +#ifndef CMSG_SPACE +# define CMSG_SPACE(len) (_CMSG_ALIGN(sizeof(struct cmsghdr)) + _CMSG_ALIGN(len)) +#endif +#ifndef CMSG_LEN +# define CMSG_LEN(len) (_CMSG_ALIGN(sizeof(struct cmsghdr)) + (len)) +#endif #endif #ifdef HAVE_CLOSESOCKET