[前][次][番号順一覧][スレッド一覧]

ruby-changes:17101

From: kanemoto <ko1@a...>
Date: Thu, 26 Aug 2010 10:17:54 +0900 (JST)
Subject: [ruby-changes:17101] Ruby:r29101 (trunk): Creating dummy library for dl/fiddle tests on AIX.

kanemoto	2010-08-26 10:16:53 +0900 (Thu, 26 Aug 2010)

  New Revision: 29101

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=29101

  Log:
    Creating dummy library for dl/fiddle tests on AIX.

  Modified files:
    trunk/ChangeLog
    trunk/test/dl/test_base.rb
    trunk/test/fiddle/helper.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29100)
+++ ChangeLog	(revision 29101)
@@ -1,3 +1,9 @@
+Thu Aug 26 10:38:11 2010  Yutaka Kanemoto  <kanemoto@r...>
+
+	* test/dl/test_base.rb: AIX does not have dynamically loadable lib[cm].
+
+	* test/fiddle/helper.rb: AIX does not have dynamically loadable lib[cm].
+
 Thu Aug 26 09:49:50 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (rb_ary_shuffle_bang): check number of argument.
Index: test/fiddle/helper.rb
===================================================================
--- test/fiddle/helper.rb	(revision 29100)
+++ test/fiddle/helper.rb	(revision 29101)
@@ -38,6 +38,34 @@
 when /bsd|dragonfly/
   libc_so = "/usr/lib/libc.so"
   libm_so = "/usr/lib/libm.so"
+when /aix/
+  pwd=Dir.pwd
+  libc_so = libm_so = "#{pwd}/libaixdltest.so"
+  unless File.exist? libc_so
+    cobjs=%w!strcpy.o!
+    mobjs=%w!floats.o sin.o!
+    funcs=%w!sin sinf strcpy strncpy!
+    expfile='dltest.exp'
+    require 'tmpdir'
+    Dir.mktmpdir do |dir|
+      begin
+        Dir.chdir dir
+        %x!/usr/bin/ar x /usr/lib/libc.a #{cobjs.join(' ')}!
+        %x!/usr/bin/ar x /usr/lib/libm.a #{mobjs.join(' ')}!
+        %x!echo "#{funcs.join("\n")}\n" > #{expfile}!
+        require 'rbconfig'
+        if RbConfig::CONFIG["GCC"] = 'yes'
+          lflag='-Wl,'
+        else
+          lflag=''
+        end
+        flags="#{lflag}-bE:#{expfile} #{lflag}-bnoentry -lm"
+        %x!#{RbConfig::CONFIG["LDSHARED"]} -o #{libc_so} #{(cobjs+mobjs).join(' ')} #{flags}!
+      ensure
+        Dir.chdir pwd
+      end
+    end
+  end
 else
   libc_so = ARGV[0] if ARGV[0] && ARGV[0][0] == ?/
   libm_so = ARGV[1] if ARGV[1] && ARGV[1][0] == ?/
Index: test/dl/test_base.rb
===================================================================
--- test/dl/test_base.rb	(revision 29100)
+++ test/dl/test_base.rb	(revision 29101)
@@ -47,6 +47,34 @@
   end
   libc_so = File.join(libdir, "libc.so.6")
   libm_so = File.join(libdir, "libm.so.6")
+when /aix/
+  pwd=Dir.pwd
+  libc_so = libm_so = "#{pwd}/libaixdltest.so"
+  unless File.exist? libc_so
+    cobjs=%w!strcpy.o!
+    mobjs=%w!floats.o sin.o!
+    funcs=%w!sin sinf strcpy strncpy!
+    expfile='dltest.exp'
+    require 'tmpdir'
+    Dir.mktmpdir do |dir|
+      begin
+        Dir.chdir dir
+        %x!/usr/bin/ar x /usr/lib/libc.a #{cobjs.join(' ')}!
+        %x!/usr/bin/ar x /usr/lib/libm.a #{mobjs.join(' ')}!
+        %x!echo "#{funcs.join("\n")}\n" > #{expfile}!
+        require 'rbconfig'
+        if RbConfig::CONFIG["GCC"] = 'yes'
+          lflag='-Wl,'
+        else
+          lflag=''
+        end
+        flags="#{lflag}-bE:#{expfile} #{lflag}-bnoentry -lm"
+        %x!#{RbConfig::CONFIG["LDSHARED"]} -o #{libc_so} #{(cobjs+mobjs).join(' ')} #{flags}!
+      ensure
+        Dir.chdir pwd
+      end
+    end
+  end
 else
   libc_so = ARGV[0] if ARGV[0] && ARGV[0][0] == ?/
   libm_so = ARGV[1] if ARGV[1] && ARGV[1][0] == ?/

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]