From: xtkoba+ruby@... Date: 2021-04-10T19:56:57+00:00 Subject: [ruby-core:103380] [Ruby master Bug#17792] make notes and make test fail with Ruby3.0.1p64 RaspberryPI 4B Ubuntu 20.10 ARM64 Issue #17792 has been updated by xtkoba (Tee KOBAYASHI). The test code at [bootstraptest/test_io.rb:87](https://github.com/ruby/ruby/blob/0fb782ee38ea37fd5fe8b1f775f8ad866a82a3f0/bootstraptest/test_io.rb#L87) is as follows. Try running it separately and see what happens. ```ruby at_exit { p :foo } megacontent = "abc" * 12345678 #File.open("megasrc", "w") {|f| f << megacontent } t0 = Thread.main Thread.new { sleep 0.001 until t0.stop?; Process.kill(:INT, $$) } r1, w1 = IO.pipe r2, w2 = IO.pipe t1 = Thread.new { w1 << megacontent; w1.close } t2 = Thread.new { r2.read; r2.close } IO.copy_stream(r1, w2) rescue nil w2.close r1.close t1.join t2.join ``` Timeout does not tell whether the code execution just takes longer than expected or hangs up forever. ---------------------------------------- Bug #17792: make notes and make test fail with Ruby3.0.1p64 RaspberryPI 4B Ubuntu 20.10 ARM64 https://bugs.ruby-lang.org/issues/17792#change-91473 * Author: hanlyusarang (Hanlyu Sarang) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [aarch64-linux] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- I am building Ruby 3.01 from sources on a RaspberryPI 4B running Ubuntu 20.10 ARM64. This is my first day using this PI4B + Ubuntu 20.10 ARM64, and this is the first time I have attempted to build Ruby on it. I received a few notes during compilation and one failure during testing. Note that on the previous day, I built the same Ruby sources on the same machine running RaspberryPI OS (32-bit Debian), no problems. FYI, you can use either a 32-bit or a 64-bit OS on the RasberryPI 4B. Anyway, here are the details of what I experienced on the PI4B using Ubuntu 20.10 ARM64: During the make, I get a few notes: compiling parse.c parse.y: In function ���node_assign���: parse.y:11265:1: note: parameter passing for argument of type ���struct lex_context��� changed in GCC 9.1 11265 | node_assign(struct parser_params *p, NODE *lhs, NODE *rhs, struct lex_context ctxt, const YYLTYPE *loc) | ^~~~~~~~~~~ parse.y: In function ���new_const_op_assign���: parse.y:12283:1: note: parameter passing for argument of type ���struct lex_context��� changed in GCC 9.1 12283 | new_const_op_assign(struct parser_params *p, NODE *lhs, ID op, NODE *rhs, struct lex_context ctxt, const YYLTYPE *loc) | ^~~~~~~~~~~~~~~~~~~ parse.y: In function ���new_op_assign���: parse.y:12196:1: note: parameter passing for argument of type ���struct lex_context��� changed in GCC 9.1 12196 | new_op_assign(struct parser_params *p, NODE *lhs, ID op, NODE *rhs, struct lex_context ctxt, const YYLTYPE *loc) | ^~~~~~~~~~~~~ compiling proc.c The build is successful, but when I run make test, I get one failure /home/pi/builds/ruby-3.0.1# make test BASERUBY = /usr/bin/ruby --disable=gems CC = gcc LD = ld LDSHARED = gcc -shared CFLAGS = -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -std=gnu99 XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/aarch64-linux -I./include -I. -I./enc/unicode/12.1.0 CPPFLAGS = DLDFLAGS = -Wl,--compress-debug-sections=zlib -fstack-protector-strong -pie SOLIBS = -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm LANG = en_US.UTF-8 LC_ALL = LC_CTYPE = MFLAGS = gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ./revision.h unchanged #655 test_io.rb:87:in `block in ': at_exit { p :foo } megacontent = "abc" * 12345678 #File.open("megasrc", "w") {|f| f << megacontent } t0 = Thread.main Thread.new { sleep 0.001 until t0.stop?; Process.kill(:INT, $$) } r1, w1 = IO.pipe r2, w2 = IO.pipe t1 = Thread.new { w1 << megacontent; w1.close } t2 = Thread.new { r2.read; r2.close } IO.copy_stream(r1, w2) rescue nil w2.close r1.close t1.join t2.join #=> killed by SIGKILL (signal 9) (timeout) megacontent-copy_stream test_io.rb FAIL 1/9 Fiber count: 10000 (skipping) FAIL 1/1486 tests failed make: *** [uncommon.mk:766: yes-btest-ruby] Error 1 I went ahead and did the make install, which succeeded. I now have an installation of Ruby which I will be working with over the next few months to see if it works OK. If you need more info, please let me know. -- https://bugs.ruby-lang.org/ Unsubscribe: