Feature #7532


Hardcoded compiler location

Added by mpapis (Michal Papis) almost 11 years ago. Updated almost 6 years ago.

Target version:


Currently RbConfig::CONFIG["CC"] is hardcoded during compilation, this is an issue when compiling ruby that can be run on other machines, ruby used for compilation might be not available on target system.

A good example is Apple OSX, there are multiple ways to get gcc-4.2 for it - considering GNU GCC is preferred over LLVM clang.

So assuming ruby is compiled on machine A with /usr/bin/gcc4.2 - and moved to machine B with /opt/local/bin/gcc - which both are the same version "i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)" - just compiled in different paths. Compiling gems with native extensions would fail in that case because of the recorded compiler path.

Please consider changing the line in rbconfig.rb to: CONFIG["CC"] = ENV["CC"] || "..."

It will allow changing compiler after moving ruby. As '--enable-load-relative' is a prerequisite for moving rubies it could be also used as a switch for adding that change as I can understand there might be a need for preserving compiler used for building ruby so the same is used for building gems.

This trick is used by default in MagLev

Updated by mpapis (Michal Papis) almost 11 years ago

here is patch that archives this: - it does not include the check for '--enable-load-relative', but in the project in question it should be added always.

Updated by mame (Yusuke Endoh) almost 11 years ago

  • Status changed from Open to Assigned
  • Assignee set to nobu (Nobuyoshi Nakada)
  • Target version set to 2.6
Actions #3

Updated by naruse (Yui NARUSE) almost 6 years ago

  • Target version deleted (2.6)

Also available in: Atom PDF