From: hengist podd Date: 2007-09-06T06:44:55+09:00 Subject: [rubyosx] can't build extensions as universal binaries Hi all, I recently installed Ruby 1.8.6 on my PPC and i386 Macs using the Ruby One-Click Installer for OSX (http://rubyosx.rubyforge.org/), replacing my previous manually built architecture-specific Ruby 1.8.5 installations with rubyosx's universal binary Ruby 1.8.6. However, when I try to install appscript (http://rb-appscript.rubyforge.org), appscript's ae.bundle extension appears to build as i386-only on both platforms. Here's what gcc says on the PPC system: % make gcc -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -Isrc -fno-common -g -O2 -fno-common -pipe -fno-common -Wall -arch i386 -c src/rbae.c gcc -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -Isrc -fno-common -g -O2 -fno-common -pipe -fno-common -Wall -arch i386 -c src/SendThreadSafe.c cc -dynamic -bundle -undefined suppress -flat_namespace -framework Carbon -arch i386 -L"/usr/local/lib" -o ae.bundle rbae.o SendThreadSafe.o -lruby -lpthread -ldl -lobjc /usr/bin/ld: warning /System/Library/Frameworks/Carbon.framework/Carbon cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded) /usr/bin/ld: warning fat file: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libpthread.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored) /usr/bin/ld: warning fat file: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libdl.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored) /usr/bin/ld: warning /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libobjc.dylib cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded) /usr/bin/ld: warning fat file: /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libSystem.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored) /usr/bin/ld: warning fat file: /usr/lib/libSystem.B.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored) On i386 it seems to build and work ok (though it's not universal, as I say), although I do get the following warning: has% make gcc -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -Isrc -fno-common -g -O2 -fno-common -pipe -fno-common -Wall -arch i386 -c src/rbae.c gcc -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -Isrc -fno-common -g -O2 -fno-common -pipe -fno-common -Wall -arch i386 -c src/SendThreadSafe.c cc -dynamic -bundle -undefined suppress -flat_namespace -framework Carbon -arch i386 -L"/usr/local/lib" -o ae.bundle rbae.o SendThreadSafe.o -lruby -lpthread -ldl -lobjc /usr/bin/ld: warning multiple definitions of symbol _setregid /usr/local/lib/libruby.dylib(process.o) definition of _setregid /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libpthread.dylib(setregid.So) definition of _setregid /usr/bin/ld: warning multiple definitions of symbol _setreuid /usr/local/lib/libruby.dylib(process.o) definition of _setreuid /usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libpthread.dylib(setreuid.So) definition of _setreuid I'd really appreciate any advice or suggestions anyone might have. As you can imagine, it's a tad embarrassing not being able to use my own software on my own machines :p, although at this point I don't know if the problem lies with appscript, rubyosx, or some combination of the two. Many thanks, has -- http://appscript.sourceforge.net http://rb-appscript.rubyforge.org -- Posted via http://www.ruby-forum.com/.