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/