Project

General

Profile

Bug #18912

Updated by hsbt (Hiroshi SHIBATA) over 1 year ago

TL;DR: We fixed this issue at Ruby 2.7-3.1 and master branch. But the stable versions are not released yet. 

 * Option 1: We strongly recommend to not upgrade Xcode 14 and its toolchains for macOS users. If you already update Xcode 14, you remove them with `sudo rm -rf /Library/Developer/CommandLineTools` and install Xcode 13.x or toolchains from https://developer.apple.com/download/all 
 * Option 2: We should add `--without=+,bigdecimal --enable-shared` to the `configure` option. 

 ---- 

 Today, I tried to build ruby master with macOS 13 (Ventura) Beta. It breaks the build status caused by Xcode 14 beta changes. 

 TL;DR: We should add `--without=+,bigdecimal --enable-shared` to the `configure` option. 

 1. Build failed without `--enable-shared`. 

 I build ruby master without `--enable-shared` option. I got the following error. 

 ``` 
 (snip) 
 linking shared-object -test-/arith_seq/extract.bundle 
 Undefined symbols for architecture arm64: 
   "_rb_arithmetic_sequence_extract", referenced from: 
       _arith_seq_s_extract in extract.o 
   "_rb_ary_new_capa", referenced from: 
       _arith_seq_s_extract in extract.o 
   "_rb_ary_store", referenced from: 
       _arith_seq_s_extract in extract.o 
   "_rb_define_singleton_method", referenced from: 
       _Init_extract in extract.o 
   "_rb_path2class", referenced from: 
       _Init_extract in extract.o 
 ld: symbol(s) not found for architecture arm64 
 clang: error: linker command failed with exit code 1 (use -v to see invocation) 
 ``` 

 @katei says this error affects with `-undefined dynamic_lookup` flags. 

 2. Build error with bigdecimal 

 With `--enabled-shared` resolved the first error. But I got the another build failure. 

 ``` 
 compiling bigdecimal.c 
 In file included from bigdecimal.c:13: 
 In file included from ./bigdecimal.h:14: 
 ./missing.h:127:1: error: static declaration of 'rb_rational_num' follows non-static declaration 
 rb_rational_num(VALUE rat) 
 ^ 
 ../.././include/ruby/internal/intern/rational.h:128:7: note: previous declaration is here 
 VALUE rb_rational_num(VALUE rat); 
       ^ 
 In file included from bigdecimal.c:13: 
 In file included from ./bigdecimal.h:14: 
 (snip) 
 ``` 

 It's affected with `static inline` declaration in missing.h of bigdecimal. 

 3. test failure with mjit 

 I could build with `--with-out-ext=+,bigdecimal --enable-share` option. But I also got the test failure with mjit. 

 ``` 
 [215/402] TestMJIT#test_lambda_longjmp = 0.19 s 
 192) Failure: 
 TestMJIT#test_lambda_longjmp [/Users/hsbt/Documents/github.com/ruby/ruby/test/ruby/test_mjit.rb:1045]: 
 Expected 1 times of JIT success, but succeeded 0 times. 

 script: 
 """ 

 fib = lambda do |x| 
   return x if x == 0 || x == 1 
   fib.call(x-1) + fib.call(x-2) 
 end 
 print fib.call(5) 

 """ 


 stderr: 
 """ 
 Undefined symbols for architecture arm64: 
   "_mjit_call_p", referenced from: 
       __mjit0 in _ruby_mjit_p39885u0-643ab5.o 
       _vm_sendish in _ruby_mjit_p39885u0-643ab5.o 
 ``` 

 I already shared this to @k0kubun . 

 macOS 13 beta is still development status. I will track this until the official release date. 


Back