shoes-deprecated icon indicating copy to clipboard operation
shoes-deprecated copied to clipboard

Building on OS X 10.6 and 10.7

Open ghost opened this issue 12 years ago • 15 comments

I'm getting the following when I try to build on 10.6 and 10.7. I'm using homebrew and rbenv.

rake aborted! Command failed with status (1): [gcc -o dist/libshoes.dylib shoes/app.o sho...] /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/file_utils.rb:53:in block in create_shell_runner' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/file_utils.rb:45:incall' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/file_utils.rb:45:in sh' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/file_utils_ext.rb:39:insh' /Users/danr/Desktop/shoes/Rakefile:436:in block (2 levels) in <top (required)>' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:205:incall' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:205:in block in execute' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:200:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:200:in execute' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:158:inblock in invoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:176:in block in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:174:in invoke_prerequisites' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:157:inblock in invoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/monitor.rb:211:in mon_synchronize' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:151:ininvoke_with_call_chain' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/task.rb:144:in invoke' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:116:ininvoke_task' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:94:in block (2 levels) in top_level' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:94:ineach' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:94:in block in top_level' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:133:instandard_exception_handling' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:88:in top_level' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:66:inblock in run' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:133:in standard_exception_handling' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/1.9.1/rake/application.rb:63:inrun' /Users/danr/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:32:in <top (required)>' /Users/danr/.rbenv/versions/1.9.3-p125/bin/rake:19:inload' /Users/danr/.rbenv/versions/1.9.3-p125/bin/rake:19:in `

' Tasks: TOP => default => build => osx:build => dist/shoes => dist/libshoes.dylib => osx:make_so

ghost avatar Apr 05 '12 00:04 ghost

Interesting, I bet this is an rbenv thing. None of us use it, we're all rvm people.

This is line 436. Weird.

steveklabnik avatar Apr 05 '12 01:04 steveklabnik

Well I'm not really married to rbenv I suppose.

ghost avatar Apr 05 '12 01:04 ghost

Do you have any more detail on that top line in the stack? Maybe a rake --trace?

wasnotrice avatar Apr 05 '12 01:04 wasnotrice

Well I'm not really married to rbenv I suppose.

Naw, it'd be cool to support it; I'm just trying to figure out what's different with your env and mine.

steveklabnik avatar Apr 05 '12 01:04 steveklabnik

There's a full trace here https://gist.github.com/2307339.

ghost avatar Apr 05 '12 01:04 ghost

Much better! So the relevant part is from line 1948 to 1974. Essentially this is saying that you are compiling shoes for 64-bit, but you are linking against a ruby that was compiled for 32-bit. I have gotten these errors in two scenarios:

  1. You are working on a 32-bit machine
  2. You are working on a 64-bit machine, but you have compiled ruby for 32-bit

Might either of those situations describe yours?

wasnotrice avatar Apr 05 '12 03:04 wasnotrice

I don't think so. I'm on a MacBook Pro with OS X 10.7 and the other machine I've had trouble with is a MacPro with 10.6. I'll have to look on the MacPro tomorrow to see if Ruby is 32-bit for some weird reason. I"ve already gotten rid of rbenv on the MacBook Pro and ruby -v outputs ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]. I havent tried building against that yet though.

ghost avatar Apr 05 '12 03:04 ghost

In addition check the arch of ruby. Also check if your system was booted into 32 or 64-bit kernel mode. you may be wondering how to tell if your system was booted into 32 or 64-bit kernel mode?

Well,take a look at: About This Mac -> More Info -> Software and look for the "64-bit Kernel and Extensions" flag. see if there is a miss match

gaurish avatar Apr 05 '12 05:04 gaurish

Now this is weird. The MacPro does NOT have the "64-bit Kernel and Extensions" flag set to true. HOWEVER, Shoes will build with an rvm installed Ruby. The fonts are screwed up, but it does build.

ghost avatar Apr 05 '12 13:04 ghost

Hm. Could this be because of the way that rbenv shims ruby?

steveklabnik avatar Apr 05 '12 15:04 steveklabnik

I'm afraid that's over my head.

ghost avatar Apr 05 '12 15:04 ghost

Referring to this. Since we basically copy your Ruby over, the way rbenv manages Ruby might be causing problems.

steveklabnik avatar Apr 05 '12 16:04 steveklabnik

Ah sure. I can see that now.

ghost avatar Apr 05 '12 16:04 ghost

So, shoe can not worked with rbenv now ? After build on ubuntu, I've a likely problem that is "/usr/bin/ld: cannot find -lruby collect2: ld returned 1 exit status"

raykin avatar Jul 05 '12 09:07 raykin

Probably. Nobody on team shoes uses .rbenv.

steveklabnik avatar Jul 05 '12 12:07 steveklabnik