Projects

Ticket #54 (closed defect: invalid)

Opened 2 years ago

Last modified 15 months ago

build on Leopard fails on readline

Reported by: edarocket@… Owned by: lsansonetti@…
Priority: blocker Milestone:
Component: MacRuby Keywords: readline
Cc:

Description

I am running Leopard 10.5.2. I have readline5.2 installed in /usr/local with patch #12 added to allow for Darwin9. I configured MacRuby0.1 with the following command:

./configure --enable-framework --enable-fat-binary --program-prefix=mac --prefix=/usr/local --with-readline-dir=/usr/local

I get the following error during make:

compiling readline gcc -I. -I../../.ext/include/universal-darwin9.0 -I..//.././include -I..//.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\" -I/usr/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -g -O2 -I/usr/include/libxml2 -g -O2 -arch ppc -arch i386 -fno-common -pipe -fno-common -arch ppc -arch i386 -o readline.o -c readline.c readline.c: In function ‘filename_completion_proc_call’: readline.c:669: error: ‘filename_completion_function’ undeclared (first use in this function) readline.c:669: error: (Each undeclared identifier is reported only once readline.c:669: error: for each function it appears in.) readline.c:669: warning: assignment makes pointer from integer without a cast readline.c: In function ‘username_completion_proc_call’: readline.c:694: error: ‘username_completion_function’ undeclared (first use in this function) readline.c:694: warning: assignment makes pointer from integer without a cast readline.c: In function ‘filename_completion_proc_call’: readline.c:669: error: ‘filename_completion_function’ undeclared (first use in this function) readline.c:669: error: (Each undeclared identifier is reported only once readline.c:669: error: for each function it appears in.) readline.c:669: warning: assignment makes pointer from integer without a cast readline.c: In function ‘username_completion_proc_call’: readline.c:694: error: ‘username_completion_function’ undeclared (first use in this function) readline.c:694: warning: assignment makes pointer from integer without a cast lipo: can't open input file: /var/folders/qi/qiRsmsrKFyGifWoVhWoCz++++TM/-Tmp-//ccyYzZ4h.out (No such file or directory) make[1]: *** [readline.o] Error 1 make: *** [all] Error 1

This is similar to Ticket #5, which was closed with a "wontfix" status. I tried this on several machines with a similar /usr/local set-up, several build attempts, and several Google searches. I'm running out of ideas.

Thanks,

RyanR>

Change History

  Changed 2 years ago by eloy.de.enige@…

This is most probably a problem that your readline isn't build as a fat binary and so you can't build fat binaries that link against it. These problems are always easily recognizable by:

lipo: can't open input file: /var/folders/qi/qiRsmsrKFyGifWoVhWoCz++++TM/-Tmp-//ccyYzZ4h.out (No such file or directory)

You can check this yourself with file. If I use it on the default readline:

% file /usr/lib/libreadline.dylib 
/usr/lib/libreadline.dylib: Mach-O universal binary with 4 architectures
/usr/lib/libreadline.dylib (for architecture ppc7400):	Mach-O dynamically linked shared library ppc
/usr/lib/libreadline.dylib (for architecture ppc64):	Mach-O 64-bit dynamically linked shared library ppc64
/usr/lib/libreadline.dylib (for architecture i386):	Mach-O dynamically linked shared library i386
/usr/lib/libreadline.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64

As you can see there's support for the archs ppc & i386 which are necessary to build macruby as a fat binary.

Long story short: Either recompile your readline as a fat binary OR don't use --enable-fat-binary and only build for your native arch.

  Changed 2 years ago by edarocket@…

That was most certainly it, Eloy! Thanks a ton.

I configured MacRuby without the --enable-fat-binary flag and pointed it to my single architecture readline build --with-readline-dir=/usr/local, and now I'm running MacRuby!

Now I just need to figure out where my project templates went...

Thanks again!

RyanR>

  Changed 2 years ago by lsansonetti@…

  • status changed from new to closed
  • resolution set to invalid

Okay, I assume this problem is fixed then. Thanks Eloy for the help!

  Changed 2 years ago by encytemedia@…

Just wanted to add a comment on this. I ran into the exact same issue. Compiling readline myself and specifying the directory didn't help. However, I just decided to go with the macports version. It turned out I needed to install readline and sqlite3 and configure:

sudo port -f uninstall readline
sudo port -f uninstall sqlite3
sudo port install readline
sudo port install sqlite3
autoconf
./configure --enable-framework --program-prefix=mac --with-readline-dir=/opt/local
sudo make install

follow-up: ↓ 6   Changed 2 years ago by edarocket@…

Now that MacRuby is built using Rake, I am not sure how to specify build options. Therefore, I am getting the exact same error that Eloy picked up on previously:

lipo: can't open input file: /var/folders/qi/qiRsmsrKFyGifWoVhWoCz++++TM/-Tmp-//ccNzT4hX.out (No such file or directory)

Rather than bother you immediately, I tried his initial suggestion, i.e. I tried to recompile readline-5.2 as a fat binary:

$ pwd
/usr/local/src/readline-5.2
$ make distclean
$ ./configure --prefix=/usr/local --enable-fat-binary

I then went back to MacRuby, ran 'rake clean' and 'rake', but still received the same error. So then I ran his check suggestion:

$ file /usr/local/lib/libreadline.dylib 
/usr/local/lib/libreadline.dylib: Mach-O dynamically linked shared library i386

So apparently I did not successfully rebuild readline as a fat binary. Can someone assist me with this problem?

in reply to: ↑ 5   Changed 22 months ago by lwu.two@…

Replying to edarocket@…:

Now that MacRuby is built using Rake, I am not sure how to specify build options. Therefore, I am getting the exact same error that Eloy picked up on previously: So apparently I did not successfully rebuild readline as a fat binary. Can someone assist me with this problem?

I had the same problem under Leopard & MacPorts.

Try patching line 346 of Rakefile to be

  CONFIG["CFLAGS"] = "-fno-common -pipe $(cflags) -disable-fat-binary"

  Changed 22 months ago by lsansonetti@…

  • status changed from closed to reopened
  • resolution invalid deleted

Looks like the problem is not fixed after all, reopening... #132 is a dup.

follow-up: ↓ 9   Changed 20 months ago by eloy.de.enige@…

Wow, hadn't noticed so much new comments :-).

@Laurent: This really isn't a real problem with MacRuby, it's just that the stuff people have installed/compiled is not correct for MacRuby is trying to build. Maybe we should provide a rake task like: build:native / build:universal ? This way it's easier for people to at least get to a working solution.

@edarocket I'm fairly certain that that's not the way readline should be configure to get a UB… Maybe check how macports would build it.

in reply to: ↑ 8 ; follow-ups: ↓ 10 ↓ 11   Changed 15 months ago by edarocket@…

Replying to eloy.de.enige@…:

Still fighting with this, wishing I could do all the cool, new stuff with MacRuby 0.4 and HotCocoa.

You must realize that this is all leftover issues from following the Hivelogic article on installing Ruby on Rails on Tiger. Readline was recommended there:  http://hivelogic.com/articles/view/ruby-rails-mongrel-mysql-osx

Now with Leopard, it is not needed for installing Ruby from source, and it is a problem.

I would happily uninstall it if I knew how. 'make clean' doesn't seem to get rid of the libreadline.dylib in /usr/local/lib

Thanks,

RyanR>

Wow, hadn't noticed so much new comments :-).

@Laurent: This really isn't a real problem with MacRuby, it's just that the stuff people have installed/compiled is not correct for MacRuby is trying to build. Maybe we should provide a rake task like: build:native / build:universal ? This way it's easier for people to at least get to a working solution. @edarocket I'm fairly certain that that's not the way readline should be configure to get a UB… Maybe check how macports would build it.

in reply to: ↑ 9   Changed 15 months ago by edarocket@…

Replying to edarocket@…:

Well, I got it working, but not in a pretty way. I am uncertain if 'rake clean' actually removed the compiled code that was linked to my bad readline in /usr/local because I was having problems no matter what I tried.

I finally deleted everything in /usr/local/lib and /usr/local/include related to readline, then recloned your macruby mirror from github to start from scratch. Then 'rake' and 'sudo rake install' worked.

in reply to: ↑ 9 ; follow-up: ↓ 12   Changed 15 months ago by eloy.de.enige@…

  • status changed from reopened to closed
  • resolution set to invalid

Replying to edarocket@…:

Replying to eloy.de.enige@…: Still fighting with this, wishing I could do all the cool, new stuff with MacRuby 0.4 and HotCocoa. You must realize that this is all leftover issues from following the Hivelogic article on installing Ruby on Rails on Tiger. Readline was recommended there:  http://hivelogic.com/articles/view/ruby-rails-mongrel-mysql-osx Now with Leopard, it is not needed for installing Ruby from source, and it is a problem.

Ah yes, that dreaded article which destroyed so many installations…

So there are basically three options to fix this. You can do it by hand as you did, but this can still leave you with many broken stuff and will lead to hard to debug annoying issues. The best solution imo is a re-installation of at least the system. You can do an “archive & install” which means your user data will preserved but the system will be removed and re-installed.

Good luck!

PS: As stated before, this isn't an issue with MacRuby, so I'm labelling it as “invalid”

in reply to: ↑ 11 ; follow-up: ↓ 13   Changed 15 months ago by edarocket@…

Do take note that 'rake clean' did not clean out the compiled code from the source directory (if it is supposed to - seems like part of my difficulty).

Also, I did upgrade to Leopard from a fresh install. Migration Assistant copied in my custom software installs from /usr/local, which is desirable. I don't think System was touched, because Dan did teach me to always use /usr/local!

 http://hivelogic.com/articles/view/using_usr_local

RyanR>

Replying to eloy.de.enige@…:

Ah yes, that dreaded article which destroyed so many installations… So there are basically three options to fix this. You can do it by hand as you did, but this can still leave you with many broken stuff and will lead to hard to debug annoying issues. The best solution imo is a re-installation of at least the system. You can do an “archive & install” which means your user data will preserved but the system will be removed and re-installed. Good luck! PS: As stated before, this isn't an issue with MacRuby, so I'm labelling it as “invalid”

in reply to: ↑ 12   Changed 15 months ago by edarocket@…

Here's the results from a fresh git clone and post-rake. Notice that ext/readline/extconf.h still remains after the clean.

/usr/local/src/macruby(master) $ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.ext/
#	.installed.list
#	array.o
#	bignum.o
#	blockinlining.o
#	bs.o
#	class.o
#	compar.o
#	compile.o
#	complex.o
#	cont.o
#	debug.o
#	dir.o
#	dln.o
#	dmyext.o
#	dtrace.h
#	enc/ascii.o
#	encoding.o
#	enum.o
#	enumerator.o
#	error.o
#	eval.o
#	ext/bigdecimal/Makefile
#	ext/bigdecimal/bigdecimal.o
#	ext/bigdecimal/extconf.h
#	ext/bigdecimal/mkmf.log
#	ext/continuation/Makefile
#	ext/continuation/continuation.o
#	ext/continuation/extconf.h
#	ext/curses/Makefile
#	ext/curses/curses.o
#	ext/curses/extconf.h
#	ext/curses/mkmf.log
#	ext/dbm/Makefile
#	ext/dbm/dbm.o
#	ext/dbm/extconf.h
#	ext/dbm/mkmf.log
#	ext/digest/Makefile
#	ext/digest/bubblebabble/Makefile
#	ext/digest/bubblebabble/bubblebabble.o
#	ext/digest/bubblebabble/extconf.h
#	ext/digest/digest.o
#	ext/digest/extconf.h
#	ext/digest/md5/Makefile
#	ext/digest/md5/extconf.h
#	ext/digest/md5/md5init.o
#	ext/digest/md5/md5ossl.o
#	ext/digest/md5/mkmf.log
#	ext/digest/rmd160/Makefile
#	ext/digest/rmd160/extconf.h
#	ext/digest/rmd160/mkmf.log
#	ext/digest/rmd160/rmd160init.o
#	ext/digest/rmd160/rmd160ossl.o
#	ext/digest/sha1/Makefile
#	ext/digest/sha1/extconf.h
#	ext/digest/sha1/mkmf.log
#	ext/digest/sha1/sha1init.o
#	ext/digest/sha1/sha1ossl.o
#	ext/digest/sha2/Makefile
#	ext/digest/sha2/extconf.h
#	ext/digest/sha2/mkmf.log
#	ext/digest/sha2/sha2.o
#	ext/digest/sha2/sha2init.o
#	ext/dl/Makefile
#	ext/dl/callback.h
#	ext/dl/cfunc.o
#	ext/dl/cptr.o
#	ext/dl/dl.o
#	ext/dl/extconf.h
#	ext/dl/handle.o
#	ext/dl/mkmf.log
#	ext/dl/win32/Makefile
#	ext/etc/Makefile
#	ext/etc/etc.o
#	ext/etc/extconf.h
#	ext/etc/mkmf.log
#	ext/fcntl/Makefile
#	ext/fcntl/extconf.h
#	ext/fcntl/fcntl.o
#	ext/fiber/Makefile
#	ext/fiber/extconf.h
#	ext/fiber/fiber.o
#	ext/gdbm/Makefile
#	ext/gdbm/mkmf.log
#	ext/iconv/Makefile
#	ext/iconv/extconf.h
#	ext/iconv/iconv.o
#	ext/iconv/mkmf.log
#	ext/io/wait/Makefile
#	ext/io/wait/extconf.h
#	ext/io/wait/mkmf.log
#	ext/io/wait/wait.o
#	ext/json/Makefile
#	ext/json/ext/generator/Makefile
#	ext/json/ext/generator/extconf.h
#	ext/json/ext/generator/generator.o
#	ext/json/ext/generator/mkmf.log
#	ext/json/ext/generator/unicode.o
#	ext/json/ext/parser/Makefile
#	ext/json/ext/parser/extconf.h
#	ext/json/ext/parser/mkmf.log
#	ext/json/ext/parser/parser.o
#	ext/json/ext/parser/unicode.o
#	ext/json/extconf.h
#	ext/nkf/Makefile
#	ext/nkf/extconf.h
#	ext/nkf/nkf.o
#	ext/openssl/Makefile
#	ext/openssl/extconf.h
#	ext/openssl/mkmf.log
#	ext/openssl/openssl_missing.o
#	ext/openssl/ossl.o
#	ext/openssl/ossl_asn1.o
#	ext/openssl/ossl_bio.o
#	ext/openssl/ossl_bn.o
#	ext/openssl/ossl_cipher.o
#	ext/openssl/ossl_config.o
#	ext/openssl/ossl_digest.o
#	ext/openssl/ossl_engine.o
#	ext/openssl/ossl_hmac.o
#	ext/openssl/ossl_ns_spki.o
#	ext/openssl/ossl_ocsp.o
#	ext/openssl/ossl_pkcs12.o
#	ext/openssl/ossl_pkcs5.o
#	ext/openssl/ossl_pkcs7.o
#	ext/openssl/ossl_pkey.o
#	ext/openssl/ossl_pkey_dh.o
#	ext/openssl/ossl_pkey_dsa.o
#	ext/openssl/ossl_pkey_ec.o
#	ext/openssl/ossl_pkey_rsa.o
#	ext/openssl/ossl_rand.o
#	ext/openssl/ossl_ssl.o
#	ext/openssl/ossl_ssl_session.o
#	ext/openssl/ossl_x509.o
#	ext/openssl/ossl_x509attr.o
#	ext/openssl/ossl_x509cert.o
#	ext/openssl/ossl_x509crl.o
#	ext/openssl/ossl_x509ext.o
#	ext/openssl/ossl_x509name.o
#	ext/openssl/ossl_x509req.o
#	ext/openssl/ossl_x509revoked.o
#	ext/openssl/ossl_x509store.o
#	ext/pty/Makefile
#	ext/pty/extconf.h
#	ext/pty/mkmf.log
#	ext/pty/pty.o
#	ext/racc/cparse/Makefile
#	ext/racc/cparse/cparse.o
#	ext/racc/cparse/extconf.h
#	ext/racc/cparse/mkmf.log
#	ext/readline/Makefile
#	ext/readline/extconf.h
#	ext/readline/mkmf.log
#	ext/readline/readline.o
#	ext/ripper/Makefile
#	ext/ripper/eventids1.c
#	ext/ripper/eventids2table.c
#	ext/ripper/extconf.h
#	ext/ripper/mkmf.log
#	ext/ripper/ripper.c
#	ext/ripper/ripper.o
#	ext/ripper/ripper.y
#	ext/ripper/y.output
#	ext/sdbm/Makefile
#	ext/sdbm/_sdbm.o
#	ext/sdbm/extconf.h
#	ext/sdbm/init.o
#	ext/socket/Makefile
#	ext/socket/constants.h
#	ext/socket/extconf.h
#	ext/socket/mkmf.log
#	ext/socket/socket.o
#	ext/stringio/Makefile
#	ext/stringio/extconf.h
#	ext/stringio/stringio.o
#	ext/strscan/Makefile
#	ext/strscan/extconf.h
#	ext/strscan/strscan.o
#	ext/syck/Makefile
#	ext/syck/bytecode.o
#	ext/syck/emitter.o
#	ext/syck/extconf.h
#	ext/syck/gram.o
#	ext/syck/handler.o
#	ext/syck/implicit.o
#	ext/syck/mkmf.log
#	ext/syck/node.o
#	ext/syck/rubyext.o
#	ext/syck/syck.o
#	ext/syck/token.o
#	ext/syck/yaml2byte.o
#	ext/syslog/Makefile
#	ext/syslog/extconf.h
#	ext/syslog/mkmf.log
#	ext/syslog/syslog.o
#	ext/zlib/Makefile
#	ext/zlib/extconf.h
#	ext/zlib/mkmf.log
#	ext/zlib/zlib.o
#	file.o
#	framework/Info.plist
#	gc-stub.o
#	gc.o
#	hash.o
#	id.o
#	include/ruby/config.h
#	inits.o
#	insns.inc
#	insns_info.inc
#	io.o
#	iseq.o
#	lex.c
#	libmacruby-static.a
#	libmacruby.1.9.1.dylib
#	libmacruby.1.9.dylib
#	libmacruby.dylib
#	load.o
#	macruby
#	main.o
#	marshal.o
#	math.o
#	miniprelude.c
#	miniprelude.o
#	miniruby
#	missing/lgamma_r.o
#	node_name.inc
#	numeric.o
#	objc.o
#	object.o
#	opt_sc.inc
#	optinsn.inc
#	optunifs.inc
#	pack.o
#	parse.c
#	parse.o
#	prec.o
#	prelude.c
#	prelude.o
#	proc.o
#	process.o
#	random.o
#	range.o
#	rational.o
#	rbconfig.rb
#	re.o
#	regcomp.o
#	regenc.o
#	regerror.o
#	regexec.o
#	regparse.o
#	regsyntax.o
#	revision.h
#	ruby.o
#	set.o
#	signal.o
#	sprintf.o
#	st.o
#	string.o
#	struct.o
#	thread.o
#	time.o
#	transcode.o
#	util.o
#	variable.o
#	version.o
#	vm.inc
#	vm.o
#	vm_dump.o
#	vmtc.inc
#	y.tab.c
nothing added to commit but untracked files present (use "git add" to track)

/usr/local/src/macruby(master) $ sudo rake clean
Password:
(in /usr/local/src/macruby)
rm -f array.o
rm -f bignum.o
rm -f class.o
rm -f compar.o
rm -f complex.o
rm -f dir.o
rm -f enum.o
rm -f enumerator.o
rm -f error.o
rm -f eval.o
rm -f load.o
rm -f proc.o
rm -f file.o
rm -f gc.o
rm -f hash.o
rm -f inits.o
rm -f io.o
rm -f marshal.o
rm -f math.o
rm -f numeric.o
rm -f object.o
rm -f pack.o
rm -f parse.o
rm -f process.o
rm -f prec.o
rm -f random.o
rm -f range.o
rm -f rational.o
rm -f re.o
rm -f regcomp.o
rm -f regenc.o
rm -f regerror.o
rm -f regexec.o
rm -f regparse.o
rm -f regsyntax.o
rm -f ruby.o
rm -f set.o
rm -f signal.o
rm -f sprintf.o
rm -f st.o
rm -f string.o
rm -f struct.o
rm -f time.o
rm -f transcode.o
rm -f util.o
rm -f variable.o
rm -f version.o
rm -f blockinlining.o
rm -f compile.o
rm -f debug.o
rm -f iseq.o
rm -f vm.o
rm -f vm_dump.o
rm -f thread.o
rm -f cont.o
rm -f id.o
rm -f objc.o
rm -f bs.o
rm -f encoding.o
rm -f main.o
rm -f dln.o
rm -f dmyext.o
rm -f enc/ascii.o
rm -f missing/lgamma_r.o
rm -f prelude.o
rm -f miniprelude.o
rm -f gc-stub.o
rm -f parse.c
rm -f lex.c
rm -f .installed.list
rm -f Makefile
rm -f insns.inc
rm -f insns_info.inc
rm -f node_name.inc
rm -f opt_sc.inc
rm -f optinsn.inc
rm -f optunifs.inc
rm -f vm.inc
rm -f vmtc.inc
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ext/extmk.rb --make="/usr/bin/make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --extension --extstatic -- clean
cleaning bigdecimal
cleaning continuation
cleaning curses
cleaning dbm
cleaning digest
cleaning digest/bubblebabble
cleaning digest/md5
cleaning digest/rmd160
cleaning digest/sha1
cleaning digest/sha2
cleaning dl
cleaning dl/win32
cleaning etc
cleaning fcntl
cleaning fiber
cleaning gdbm
cleaning iconv
cleaning io/wait
cleaning json
cleaning json/ext/generator
cleaning json/ext/parser
cleaning nkf
cleaning openssl
cleaning pty
cleaning racc/cparse
cleaning readline
cleaning ripper
cleaning sdbm
cleaning socket
cleaning stringio
cleaning strscan
cleaning syck
cleaning syslog
cleaning zlib

/usr/local/src/macruby(master) $ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.ext/
#	dtrace.h
#	ext/bigdecimal/Makefile
#	ext/bigdecimal/extconf.h
#	ext/continuation/Makefile
#	ext/continuation/extconf.h
#	ext/curses/Makefile
#	ext/curses/extconf.h
#	ext/dbm/Makefile
#	ext/dbm/extconf.h
#	ext/digest/Makefile
#	ext/digest/bubblebabble/Makefile
#	ext/digest/bubblebabble/extconf.h
#	ext/digest/extconf.h
#	ext/digest/md5/Makefile
#	ext/digest/md5/extconf.h
#	ext/digest/rmd160/Makefile
#	ext/digest/rmd160/extconf.h
#	ext/digest/sha1/Makefile
#	ext/digest/sha1/extconf.h
#	ext/digest/sha2/Makefile
#	ext/digest/sha2/extconf.h
#	ext/dl/Makefile
#	ext/dl/callback.h
#	ext/dl/extconf.h
#	ext/dl/win32/Makefile
#	ext/etc/Makefile
#	ext/etc/extconf.h
#	ext/fcntl/Makefile
#	ext/fcntl/extconf.h
#	ext/fiber/Makefile
#	ext/fiber/extconf.h
#	ext/gdbm/Makefile
#	ext/iconv/Makefile
#	ext/iconv/extconf.h
#	ext/io/wait/Makefile
#	ext/io/wait/extconf.h
#	ext/json/Makefile
#	ext/json/ext/generator/Makefile
#	ext/json/ext/generator/extconf.h
#	ext/json/ext/parser/Makefile
#	ext/json/ext/parser/extconf.h
#	ext/json/extconf.h
#	ext/nkf/Makefile
#	ext/nkf/extconf.h
#	ext/openssl/Makefile
#	ext/openssl/extconf.h
#	ext/pty/Makefile
#	ext/pty/extconf.h
#	ext/racc/cparse/Makefile
#	ext/racc/cparse/extconf.h
#	ext/readline/Makefile
#	ext/readline/extconf.h
#	ext/ripper/Makefile
#	ext/ripper/extconf.h
#	ext/ripper/y.output
#	ext/sdbm/Makefile
#	ext/sdbm/extconf.h
#	ext/socket/Makefile
#	ext/socket/constants.h
#	ext/socket/extconf.h
#	ext/stringio/Makefile
#	ext/stringio/extconf.h
#	ext/strscan/Makefile
#	ext/strscan/extconf.h
#	ext/syck/Makefile
#	ext/syck/extconf.h
#	ext/syslog/Makefile
#	ext/syslog/extconf.h
#	ext/zlib/Makefile
#	ext/zlib/extconf.h
#	framework/Info.plist
#	include/ruby/config.h
#	libmacruby-static.a
#	libmacruby.1.9.1.dylib
#	libmacruby.1.9.dylib
#	libmacruby.dylib
#	macruby
#	miniprelude.c
#	miniruby
#	prelude.c
#	rbconfig.rb
#	revision.h
#	y.tab.c
nothing added to commit but untracked files present (use "git add" to track)

Replying to edarocket@…:

Do take note that 'rake clean' did not clean out the compiled code from the source directory (if it is supposed to - seems like part of my difficulty).

  Changed 15 months ago by eloy.de.enige@…

Oh hey, thanks for pointing me to it again. There's nothing wrong with that article I failed at properly looking at the article. I think the layout instantly reminded me of an article which suggested installing ruby into /usr which a lot of people did and consequently broke their installations.

Mea culpa.

So the problem of this ticket is an architecture problem. Normally when you just use "./configure --prefix=/usr/local" then the resulting binaries will only be for the current architecture it's running on. In this case i386. MacRuby however, is configure to be compiled for more architectures than just i386. This is for compatibility of your app on different machines and thus necessary. However, you cannot build something (MacRuby) for architectures which it's dependencies do not contain.

To sum up; your dependencies need to at least include support for the architectures that the product is being build for.

In this case readline was compiled without support for other archs than the current one, which is ok normally, but MacRuby can't be build for more than just i386 and so it fails.

Solutions are build MacRuby for the current arch, or make sure MacRuby uses libs in /usr instead of /usr/local when compiling. I wouldn't go with the former, it will bite you later on when deploying.

I hope this explains it a bit more. And I'll add this as a comment to the ticket so others won't be confused due to my error.

Cheers, Eloy

  Changed 15 months ago by eloy.de.enige@…

For the "clean" problem, could you file a new ticket? This one is a bit noisy and on another topic. Thanks

Note: See TracTickets for help on using tickets.