I'd like to build the recently released Ruby 1.9.1 as a universal binary on OS X. I'm on an Intel 10.5, but want the ruby to be runnable on 10.4 or 10.5, Intel or PPC.
At Fri, 6 Feb 2009 05:34:27 +0900,
Alex Fenton wrote in [ruby-talk:327034]:
I'd like to build the recently released Ruby 1.9.1 as a universal binary
on OS X. I'm on an Intel 10.5, but want the ruby to be runnable on 10.4
or 10.5, Intel or PPC.
Universal binary support was very incomplete and has been dropped.
Not only it'd confused autoconf and fallen into disaster, x86 and ppc
platforms behave differently in some points.
More importantly, what's the output of these commands?
$ file ~/bleed/bin/ruby
$ file ~/bleed/lib/libruby.1.9.1.dylib
Abaddon:ruby-1.9.1-p0 alex$ file ~/bleed/bin/ruby
/Users/alex/bleed/bin/ruby: Mach-O universal binary with 2 architectures
/Users/alex/bleed/bin/ruby (for architecture i386): Mach-O executable
i386
/Users/alex/bleed/bin/ruby (for architecture ppc): Mach-O executable
ppc
Abaddon:ruby-1.9.1-p0 alex$ file ~/bleed/lib/libruby-static.a
/Users/alex/bleed/lib/libruby-static.a: Mach-O universal binary with 2
architectures
/Users/alex/bleed/lib/libruby-static.a (for architecture i386): current
ar archive random library
/Users/alex/bleed/lib/libruby-static.a (for architecture ppc): current
ar archive random library
alex
Sorry, it took me so long to respond to this. If the 'file' command
reports that it's a Mach-O universal binary with 2 architectures, then
you *did* build ruby as universal. Whether it works or not is an open
question, but it's a universal binary either way. The ruby version
string (in particular, the 'i386-darwin9.0' bit) is just an
informational text string stored in rbconfig.rb, generated at some point
during the build process. You could open rbconfig.rb and change the
platform string to 'my-little-pony' and it probably wouldn't change a
thing (until you try to run a script that checks that value to determine
what platform-specific code to run, I guess).