summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-03 15:39:15 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-01-03 15:39:15 +0000
commit6efba755da0c9d1ff6fc53767d4770d6ca507d19 (patch)
tree3bff5a7c507b049b6cc2180a0869249ba292059d
parent0626021e13c6aaf9db1bf34a10e8186867e30901 (diff)
Fix failures on btest for NativeClient.
* bootstraptest/runner.rb (nacl?): New method to distinguish NaCl corss build. * bootstraptest/test_io.rb: Skip unsupported operations. * bootstraptest/test_literal.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rwxr-xr-xbootstraptest/runner.rb6
-rw-r--r--bootstraptest/test_io.rb4
-rw-r--r--bootstraptest/test_literal.rb6
-rw-r--r--configure.in7
-rw-r--r--nacl/README.nacl2
6 files changed, 29 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 3ad3af7..438a806 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Fri Jan 4 00:35:11 2013 Yuki Yugui Sonoda <yugui@yugui.jp>
+
+ Fix failures on btest for NativeClient.
+ * bootstraptest/runner.rb (nacl?): New method to distinguish NaCl
+ corss build.
+
+ * bootstraptest/test_io.rb: Skip unsupported operations.
+
+ * bootstraptest/test_literal.rb: ditto.
+
Fri Jan 4 00:29:40 2013 Yuki Yugui Sonoda <yugui@yugui.jp>
* io.c (rb_cloexec_fcntl_dupfd): Fix failures in
diff --git a/bootstraptest/runner.rb b/bootstraptest/runner.rb
index 0dd1e35..08c335a 100755
--- a/bootstraptest/runner.rb
+++ b/bootstraptest/runner.rb
@@ -229,6 +229,12 @@ rescue Exception => err
error err.message, message
end
+# NativeClient is special. The binary is cross-compiled. But runs on the build environment.
+# So RUBY_PLATFORM in this process is not useful to detect it.
+def nacl?
+ @ruby and File.basename(@ruby.split(/\s/).first)['sel_ldr']
+end
+
def assert_check(testsrc, message = '', opt = '')
show_progress(message) {
result = get_result_string(testsrc, opt)
diff --git a/bootstraptest/test_io.rb b/bootstraptest/test_io.rb
index 7304aeb..ff858b6 100644
--- a/bootstraptest/test_io.rb
+++ b/bootstraptest/test_io.rb
@@ -53,7 +53,7 @@ assert_equal 'ok', %q{
STDIN.reopen(rw)
STDIN.reopen(save)
rw.close
- File.unlink(tmpname)
+ File.unlink(tmpname) unless RUBY_PLATFORM['nacl']
:ok
}
@@ -70,7 +70,7 @@ assert_equal 'ok', %q{
STDIN.print "a"
STDIN.reopen(save)
rw.close
- File.unlink(tmpname)
+ File.unlink(tmpname) unless RUBY_PLATFORM['nacl']
:ok
}
diff --git a/bootstraptest/test_literal.rb b/bootstraptest/test_literal.rb
index 19200c1..5a9497c 100644
--- a/bootstraptest/test_literal.rb
+++ b/bootstraptest/test_literal.rb
@@ -65,8 +65,10 @@ assert_equal ':a3c', ':"a#{1+2}c".inspect'
assert_equal 'Symbol', ':"a#{1+2}c".class'
# xstring
-assert_equal "foo\n", %q(`echo foo`)
-assert_equal "foo\n", %q(s = "foo"; `echo #{s}`)
+unless nacl?
+ assert_equal "foo\n", %q(`echo foo`)
+ assert_equal "foo\n", %q(s = "foo"; `echo #{s}`)
+end
# regexp
assert_equal '', '//.source'
diff --git a/configure.in b/configure.in
index af0e564..f6b0b57 100644
--- a/configure.in
+++ b/configure.in
@@ -1294,9 +1294,10 @@ $POSTLINK"
[superux*], [ ac_cv_func_setitimer=no
],
[nacl], [
- LIBS="-lm -lnosys $LIBS"
+ LIBS="-lm $LIBS"
if test "${nacl_cv_build_variant}" = "newlib"; then
RUBY_APPEND_OPTION(CPPFLAGS, -DNACL_NEWLIB)
+ RUBY_APPEND_OPTION(LIBS, '-lnosys')
else
RUBY_APPEND_OPTION(XCFLAGS, -fPIC)
fi
@@ -2707,6 +2708,10 @@ AS_CASE("$enable_shared", [yes], [
[haiku], [
# gcc supports PIE, but doesn't work correctly in Haiku
pie=no
+ ],
+ [nacl], [
+ # -pie implies -shared for NaCl.
+ pie=no
])
if test "$GCC" = yes -a -z "$EXTSTATIC" -a "x$pie" != xno; then
RUBY_TRY_CFLAGS(-fPIE, [pie=yes], [pie=no])
diff --git a/nacl/README.nacl b/nacl/README.nacl
index 0db9971..e70f272 100644
--- a/nacl/README.nacl
+++ b/nacl/README.nacl
@@ -6,7 +6,7 @@
You need to install the following things before building NaCl port of Ruby.
* Ruby 1.9.3 or later
* Python 2.6 or later
-* NativeClient SDK pepper 18 or later
+* NativeClient SDK pepper 22 or later
* GNU make
== Steps