aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 3ad3af7602..438a806949 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 0dd1e35a88..08c335ae42 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 7304aebc26..ff858b67fb 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 19200c1ee7..5a9497c642 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 af0e564fcd..f6b0b57851 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 0db9971797..e70f272715 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