From: "mame (Yusuke Endoh)" Date: 2012-12-09T21:14:14+09:00 Subject: [ruby-core:50710] [ruby-trunk - Feature #7532][Assigned] Hardcoded compiler location Issue #7532 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to nobu (Nobuyoshi Nakada) Target version set to next minor ---------------------------------------- Feature #7532: Hardcoded compiler location https://bugs.ruby-lang.org/issues/7532#change-34555 Author: mpapis (Michal Papis) Status: Assigned Priority: Low Assignee: nobu (Nobuyoshi Nakada) Category: Target version: next minor 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 https://bugs.ruby-lang.org/issues/5883 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 http://maglev.github.com/ -- http://bugs.ruby-lang.org/