[#5903] Re: <<-END — WATANABE Hirofumi <watanabe@...>
わたなべです.
7 messages
1999/04/14
[#6537] Ruby 1.3.2-990402 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.2-990402 is out, check out:
6 messages
1999/04/02
[#6543] substring,subarray — ttate@...
立石です。
6 messages
1999/04/03
[#6565] Ruby 1.3.2-990408 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.2-990408 is out, check out:
8 messages
1999/04/08
[#6571] Re: Ruby 1.3.2-990405 — KIMURA Koichi <kbk@...>
5 messages
1999/04/09
[#6588] <<-END — Wakou Aoyama <wakou@...>
青山です。
6 messages
1999/04/13
[#6590] Ruby 1.3.2-990413 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.2-990413 is out, check out:
13 messages
1999/04/13
[#6625] Re: Ruby 1.3.2-990413
— Tadayoshi Funaba <tadf@...>
1999/04/16
ふなばです。
[#6616] ruby-1.3.2-990413 AIX patch — Katsuyuki Komatsu <komatsu@...>
はじめまして。
4 messages
1999/04/14
[#6617] Re: IPv6 ruby — Jun-ichiro itojun Hagino <itojun@...>
26 messages
1999/04/15
[#6672] Re: IPv6 ruby
— matz@... (Yukihiro Matsumoto)
1999/04/28
まつもと ゆきひろです
[#6673] Re: IPv6 ruby
— itojun@...
1999/04/28
[#6674] Re: IPv6 ruby
— matz@... (Yukihiro Matsumoto)
1999/04/28
まつもと ゆきひろです
[#6675] Re: IPv6 ruby
— itojun@...
1999/04/28
[#6676] Re: IPv6 ruby
— matz@... (Yukihiro Matsumoto)
1999/04/28
まつもと ゆきひろです
[#6677] Re: IPv6 ruby
— itojun@...
1999/04/28
[#6681] Re: IPv6 ruby
— matz@... (Yukihiro Matsumoto)
1999/04/30
まつもと ゆきひろです
[#6682] Re: IPv6 ruby
— itojun@...
1999/04/30
>ということで,いろいろ作業してみたのですが(configureは全部
[#6683] Re: IPv6 ruby
— matz@... (Yukihiro Matsumoto)
1999/04/30
まつもと ゆきひろです
[#6684] Re: IPv6 ruby
— itojun@...
1999/04/30
[#6686] Re: IPv6 ruby
— matz@... (Yukihiro Matsumoto)
1999/04/30
まつもと ゆきひろです
[#6688] cvs repository
— itojun@...
1999/04/30
[#6690] Re: cvs repository
— matz@... (Yukihiro Matsumoto)
1999/04/30
まつもと ゆきひろです
[#6691] Re: cvs repository
— itojun@...
1999/04/30
[#6645] [PATCH] AIX CONFIG["LDSHARED"] and installation — Katsuyuki Komatsu <komatsu@...>
小松です。
8 messages
1999/04/22
[#6659] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation
— matz@... (Yukihiro Matsumoto)
1999/04/26
まつもと ゆきひろです
[#6660] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation
— Katsuyuki Komatsu <komatsu@...>
1999/04/26
小松です。
[#6664] Re: [PATCH] AIX CONFIG["LDSHARED"] and installation
— Katsuyuki Komatsu <komatsu@...>
1999/04/26
小松です。
[#6646] Re: -2**2 => 4 — Inaba Hiroto <inaba@...>
稲葉です
10 messages
1999/04/23
[#6654] Re: -2**2 => 4
— EGUCHI Osamu <eguchi@...>
1999/04/23
えぐち@エスアンドイー です。
[#6647] chomp, chop — WATANABE Hirofumi <watanabe@...>
わたなべです.
7 messages
1999/04/23
[#6678] RUBYLIB_PREFIX — WATANABE Hirofumi <eban@...>
わたなべです.
5 messages
1999/04/29
[#6689] Ruby 1.3.3-990430 — matz <matz@...>
Ruby 1.3.3-990430 is out, check out:
13 messages
1999/04/30
[ruby-dev:6616] ruby-1.3.2-990413 AIX patch
From:
Katsuyuki Komatsu <komatsu@...>
Date:
1999-04-14 13:28:52 UTC
List:
ruby-dev #6616
はじめまして。
AIXで拡張モジュールが使えないのは寂しいので、perlのソースを
みながらパッチを作成しました。
とりあえず動いてるみたいです。
現状では、ext/の下以外でモジュールを作成できませんが、
rbconfig.rbとaix_ld.rbをインストールした場合とソースの下で変える
ruby.impをインストールする
みたいなことをしないとならないので、どうしたらいいか……
% echo `uname -s; oslevel`
AIX 4.1.3.0
% cat sum.rb
require "md5"
puts MD5.new(open("sum.rb", "rb").read).digest.unpack("H*")
% ruby -v sum.rb
ruby 1.3.2 (1999-04-13) [rs6000-aix4.1.3.0]
4ce8302f09d7e4a4ada88f44025019e5
% ruby -r md5 -e 'puts MD5.new(open("sum.rb", "rb").read).digest.unpack("H*")'
4ce8302f09d7e4a4ada88f44025019e5
%
(ここでmd5.soを別な名前に変更)
% ruby -v sum.rb
ruby 1.3.2 (1999-04-13) [rs6000-aix4.1.3.0]
sum.rb:1:in `require': No such file to load -- md5 (LoadError)
from sum.rb:1
%
/ / /
diff -u Makefile.in.dist Makefile.in
--- Makefile.in.dist Tue Mar 30 14:58:13 1999
+++ Makefile.in Wed Apr 14 13:36:33 1999
@@ -18,6 +18,7 @@
LIBS = @LIBS@ $(EXTLIBS)
MISSING = @LIBOBJS@ @ALLOCA@
LDSHARED = @LDSHARED@
+CCDLDFLAGS = @CCDLDFLAGS@
DLDFLAGS = @DLDFLAGS@
SOLIBS = @SOLIBS@
@@ -89,7 +90,7 @@
$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(EXTOBJS)
@rm -f $@
- $(PURIFY) $(CC) $(LDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@
+ $(PURIFY) $(CC) $(LDFLAGS) $(CCDLDFLAGS) $(MAINOBJ) $(EXTOBJS) $(LIBRUBYARG) $(LIBS) -o $@
$(LIBRUBY_A): $(OBJS) dmyext.o
@AR@ rcu $@ $(OBJS) dmyext.o
diff -u configure.in.dist configure.in
--- configure.in.dist Tue Mar 30 16:32:56 1999
+++ configure.in Wed Apr 14 12:33:16 1999
@@ -346,6 +346,7 @@
fi;;
esac
+AC_SUBST(CCDLDFLAGS)dnl
AC_SUBST(DLDFLAGS)dnl
AC_SUBST(STATIC)dnl
@@ -434,6 +435,7 @@
DLDFLAGS="$ARCH_FLAG"
rb_cv_dlopen=yes ;;
aix*) LDSHARED='../../miniruby ../aix_ld.rb $(TARGET)'
+ CCDLDFLAGS="-Wl,-bE:ext/ruby.imp"
rb_cv_dlopen=yes ;;
human*) DLDFLAGS=''
LDSHARED=''
diff -u dln.c.dist dln.c
--- dln.c.dist Fri Apr 9 18:19:15 1999
+++ dln.c Wed Apr 14 13:14:35 1999
@@ -1155,6 +1155,35 @@
#if defined(_AIX)
+static void *
+aix_findmain()
+{
+ struct ld_info *lp;
+ char *buf;
+ int size = 4 * 1024;
+ int rc;
+ void *ret;
+
+ if ((buf = xmalloc(size)) == NULL) {
+ return NULL;
+ }
+ while ((rc = loadquery(L_GETINFO, buf, size)) == -1 && errno == ENOMEM) {
+ free(buf);
+ size += 4 * 1024;
+ if ((buf = xmalloc(size)) == NULL) {
+ return NULL;
+ }
+ }
+ if (rc == -1) {
+ free(buf);
+ return NULL;
+ }
+ lp = (struct ld_info *)buf;
+ ret = lp->ldinfo_dataorg;
+ free(buf);
+ return ret;
+}
+
static void
aix_loaderror(const char *pathname)
{
@@ -1310,10 +1339,19 @@
#if defined(_AIX)
#define DLN_DEFINED
{
+ static void *main_module = NULL;
void (*init_fct)();
- init_fct = (void(*)())load(file, 1, 0);
+ if (main_module == NULL) {
+ if ((main_module = aix_findmain()) == NULL) {
+ aix_loaderror(file);
+ }
+ }
+ init_fct = (void(*)())load((char*)file, 1, 0);
if (init_fct == NULL) {
+ aix_loaderror(file);
+ }
+ if (loadbind(0, main_module, init_fct) == -1) {
aix_loaderror(file);
}
(*init_fct)();
diff -u ext/aix_ld.rb.dist ext/aix_ld.rb
--- ext/aix_ld.rb.dist Wed Jan 20 13:59:32 1999
+++ ext/aix_ld.rb Wed Apr 14 09:00:41 1999
@@ -38,14 +38,15 @@
data = nm.readlines.collect{|line|
line = line.split
case line[1]
- when "B", "D", "T"
- line[2]
+ when "B", "D"
+ line[0]
else
next
end
}.compact!.sort!
uniq(data)
exp = open(out, "w")
+ exp.printf "#!\n"
for line in data
exp.printf "%s\n", line
end
@@ -53,21 +54,14 @@
nm.close
end
if older("../ruby.imp", "../../miniruby")
-# nm = open("|/usr/ccs/bin/nm -Bex ../../*.o")
-# nm = open("|/usr/ccs/bin/nm -Bex ../../*.o")
- nm = open("|nm ../../*.o")
+ nm = open("|/usr/ccs/bin/nm -p ../../*.o")
extract(nm, "../ruby.imp")
end
-objs = Dir["*.o"].join(" ")
-#nm = open("|/usr/ccs/bin/nm -Bex #{objs}")
-nm = open("|nm #{objs}")
-extract(nm, "#{base}.exp")
+#objs = Dir["*.o"].join(" ")
+#nm = open("|/usr/ccs/bin/nm -p #{objs}")
+#extract(nm, "#{base}.exp")
-#system format("/usr/ccs/bin/ld %s %s ",ldargs,ARGV.join(' '))
-#system "/bin/rm -f #{base}.exp"
-#system "chmod o-rwx ${base}.so"
-
-p format("/usr/ccs/bin/ld %s %s ",ldargs,ARGV.join(' '))
-p "/bin/rm -f #{base}.exp"
-p "chmod o-rwx ${base}.so"
+cmd = format("/usr/ccs/bin/ld %s %s ", ldargs, ARGV.join(' '))
+printf "\t%s\n", cmd
+system cmd
--
小松克行 (株)サリオンシステムズリサーチ ソフトウェア開発部
Katsuyuki Komatsu <komatsu@sarion.co.jp>