Forum: Ruby same compiler needed for C libraries?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Xavier N. (Guest)
on 2007-01-11 14:48
(Received via mailing list)
I've often heard that the same compiler should be used to compile
Ruby and C extensions. I've also heard the same restriction for Perl,
mod_perl, and Apache. Libraries distributed as binaries for Windows
have to be compiled with Microsoft the compiler as well, right?

Say, for example, you've got a Ruby in Solaris compiled with the Sun
compiler, and the suite is not installed, nor can you install it.
Would you try to tweak Makefiles to compile some library with gcc? Or
is that just a bad idea and it is better to compile Ruby by hand
bypassing the system Ruby and go on from there?

I am not very familiar with compilers and linkers, which is the
reason behind these constraints?

-- fxn
Nobuyoshi N. (Guest)
on 2007-01-11 16:21
(Received via mailing list)
Hi,

At Thu, 11 Jan 2007 21:47:47 +0900,
Xavier N. wrote in [ruby-talk:233538]:
> I've often heard that the same compiler should be used to compile
> Ruby and C extensions. I've also heard the same restriction for Perl,
> mod_perl, and Apache. Libraries distributed as binaries for Windows
> have to be compiled with Microsoft the compiler as well, right?

It is not accurate.  They have to be compiled with *same
version* of Microsoft compiler, or mingw and VC6.

> Say, for example, you've got a Ruby in Solaris compiled with the Sun
> compiler, and the suite is not installed, nor can you install it.
> Would you try to tweak Makefiles to compile some library with gcc? Or
> is that just a bad idea and it is better to compile Ruby by hand
> bypassing the system Ruby and go on from there?

In general, gcc generated code is compatible with system
compilers.
Xavier N. (Guest)
on 2007-01-19 17:31
(Received via mailing list)
On Jan 11, 2007, at 3:19 PM, Nobuyoshi N. wrote:

Thank you!

> At Thu, 11 Jan 2007 21:47:47 +0900,
> Xavier N. wrote in [ruby-talk:233538]:
>> I've often heard that the same compiler should be used to compile
>> Ruby and C extensions. I've also heard the same restriction for Perl,
>> mod_perl, and Apache. Libraries distributed as binaries for Windows
>> have to be compiled with Microsoft the compiler as well, right?
>
> It is not accurate.  They have to be compiled with *same
> version* of Microsoft compiler, or mingw and VC6.

You mean it is even stronger? Same compiler _and_ same version?

> In general, gcc generated code is compatible with system
> compilers.

Great, that's helpful to know. In that case I guess on Solaris I
could tweak the system-wide mkmf.rb to use gcc and it would work (I
think the compiler suite is downloadable for free, but in this thread
I just want to understand what works and what not).

-- fxn
This topic is locked and can not be replied to.