Bug #9665
closedRuby 2.1.1 fails to build on PowerPC darwin, due to __builtin_unreachable
Description
Ruby 2.1.1 (and possibly a few older versions) fails to build on PowerPC Darwin using Apple-provided GCCs. When linking miniruby, the build fails due to:
/usr/libexec/gcc/powerpc-apple-darwin8/4.2.1/ld: Undefined symbols:
___builtin_unreachable
This occurs with Apple GCC 4.0 and 4.2, on Mac OS X 10.4 and 10.5 PowerPC. The issue does not occur using newer FSF GCCs (for instance, 4.8.2) on the same OS X versions. While I'm unable to test on 10.5 Intel, I can confirm that newer Intel OS X versions work fine using Apple GCC 4.2.
Verbose build logs, from Mac OS X 10.4 with Apple GCC 4.2, are attached.
While I suspect this was possibly introduced by r34784, as removing the check from configure allows the build to succeed, that revision is 2 years old and I only noticed these build failures beginning relatively recently.
Files
        
          
          Updated by nobu (Nobuyoshi Nakada) over 11 years ago
          
          
        
        
      
      - Description updated (diff)
 - Target version set to 2.2.0
 - Backport set to 2.0.0: REQUIRED, 2.1: REQUIRED
 
With MacPorts apple-gcc42, __builtin_unreachable seems detected as no, successfully.
        
          
          Updated by nobu (Nobuyoshi Nakada) over 11 years ago
          
          
        
        
      
      - Status changed from Open to Closed
 - % Done changed from 0 to 100
 
Applied in changeset r45716.
configure.in: refine __builtin_unreachable check
- 
configure.in(rb_cv_func___builtin_unreachable): try with an
external variable not only by a warning, which might not be
shown due to the optimization. [ruby-core:61647] [Bug #9665] 
        
          
          Updated by usa (Usaku NAKAMURA) over 11 years ago
          
          
        
        
      
      - Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED to 2.0.0: DONE, 2.1: REQUIRED
 
backported into ruby_2_0_0 at r46201.
        
          
          Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago
          
          
        
        
      
      - Backport changed from 2.0.0: DONE, 2.1: REQUIRED to 2.0.0: DONE, 2.1: DONE
 
r45716 was backported into ruby_2_1 branch at r46215.