Project

General

Profile

Actions

Feature #7532

open

Hardcoded compiler location

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

Status:
Assigned
Target version:
-
[ruby-core:50655]

Description

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/

Updated by mpapis (Michal Papis) over 11 years ago

here is patch that archives this: https://github.com/tokaido/tokaido-build/blob/master/patches/darwin/1.9.3-p327/cc_env.patch - 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) over 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) about 6 years ago

  • Target version deleted (2.6)
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0