Project

General

Profile

Bug #11533

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

AIX6.1 - Ruby 2.2.3  

 The following follwing test fails (constantly): 

 ~~~ 
 ./miniruby -I./lib -I. -I.ext/common    ./tool/runruby.rb --extout=.ext    -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I.    -I.ext/common --extout=.ext    -- --disable-gems" -n TestMkmf::TestConvertible#test_typeof_builtin -v 

   1) Failure: 
 TestMkmf::TestConvertible#test_typeof_builtin [/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/test/mkmf/test_convertible.rb:8]: 
 convertible_int: checking for convertible type of short... -------------------- short 
 -------------------- 
 convertible_int: checking for convertible type of int... -------------------- int 
 -------------------- 
 convertible_int: checking for convertible type of long... -------------------- long 
 -------------------- 
 convertible_int: checking for convertible type of signed short... -------------------- **failed** 

 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 614.16: 1506-434 (I) The left-hand side of a bitwise right shift expression has a signed promoted type. 
 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 623.31: 1506-434 (I) The left-hand side of a bitwise right shift expression has a signed promoted type. 
 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 678.16: 1506-434 (I) The left-hand side of a bitwise right shift expression has a signed promoted type. 
 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 1303.9: 1506-434 (I) The left-hand side of a bitwise right shift expression has a signed promoted type. 
 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 1324.9: 1506-434 (I) The left-hand side of a bitwise right shift expression has a signed promoted type. 
 checked program was: 
 /* begin */ 
 1: #include "ruby.h" 
 2: 
 3: int main(int argc, char **argv) 
 4: { 
 5:     return 0; 
 6: } 
 /* end */ 

 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 614.16: .... 
 checked program was: 
 /* begin */ 
 1: #include "ruby.h" 
 2: 
 3: typedef signed short rbcv_typedef_; 
 4: 
 5: /*top*/ 
 6: int conftest_const[((rbcv_typedef_)-1 < 0) ? 1 : -1]; 
 /* end */ 

 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 614.16: ....... 
 "conftest.c", line 6.12: 1506-343 (S) Redeclaration of foo differs from previous declaration on line 5 of "conftest.c". 
 "conftest.c", line 6.12: 1506-050 (I) Return type "int" in redeclaration is not compatible with the previous return type "short". 
 checked program was: 
 /* begin */ 
 1: #include "ruby.h" 
 2: 
 3: typedef signed short rbcv_typedef_; 
 4: 
 5: extern rbcv_typedef_ foo(); 
 6: extern int foo(); 
 /* end */ 

 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 614.16: ......... 
 checked program was: 
 /* begin */ 
 1: #include "ruby.h" 
 2: 
 3: typedef signed short rbcv_typedef_; 
 4: 
 5: extern rbcv_typedef_ foo(); 
 6: extern short foo(); 
 /* end */ 

 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 614.16: .......... 
 "conftest.c", line 6.13: 1506-343 (S) Redeclaration of foo differs from previous declaration on line 5 of "conftest.c". 
 "conftest.c", line 6.13: 1506-050 (I) Return type "long" in redeclaration is not compatible with the previous return type "short". 
 checked program was: 
 /* begin */ 
 1: #include "ruby.h" 
 2: 
 3: typedef signed short rbcv_typedef_; 
 4: 
 5: extern rbcv_typedef_ foo(); 
 6: extern long foo(); 
 /* end */ 

 "/opt/freeware/src/packages/BUILD/ruby-2.2.3-xlc/include/ruby/ruby.h", line 614.16: ....... 
 "conftest.c", line 6.18: 1506-343 (S) Redeclaration of foo differs from previous declaration on line 5 of "conftest.c". 
 "conftest.c", line 6.18: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "short". 
 checked program was: 
 /* begin */ 
 1: #include "ruby.h" 
 2: 
 3: typedef signed short rbcv_typedef_; 
 4: 
 5: extern rbcv_typedef_ foo(); 
 6: extern long long foo(); 
 /* end */ 

 -------------------- 

 . 
 <"short"> expected but was 
 <nil>. 

 1 tests, 7 assertions, 1 failures, 0 errors, 0 skips 
 ~~~ 

 


 I'd like to have the temporary files (`Makefile`, `conftest.c`, (Makefile, conftest.c, etc) to be NOT removed, and I' like to print some traces for helping me to understand what's wrong. 
 However, I cannot find any hint on the Web about how to proceed. 
 I've started to look at files: `lib/mkmf.rb` lib/mkmf.rb    & `test/mkmf/test_convertible.rb` test/mkmf/test_convertible.rb , but I cannot find how to proceed for keeping temp files and for adding traces. 
 So, I'm lost about how I can analyze/debug this issue, and I need some help.

Back