Hello, I'm attempting to cross compile a ruby extension for Windows from a Linux box. Im running Ubuntu 6.06, Ruby 1.8.5, and mingw gcc 3.4.4. I attempted to follow Mauricio Fernandez's instructions http://eigenclass.org/hiki.rb?cross+compiling+rcovrt#f01 The file compiled but it appears that it is still a Linux binary. json_ext.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped Is there something that I may be missing? Thank you, Brian Takita
on 2006-10-18 09:59
on 2006-10-18 15:54
On 10/18/06, Brian Takita <brian.takita@gmail.com> wrote: > I'm attempting to cross compile a ruby extension for Windows from a Linux > box. > Im running Ubuntu 6.06, Ruby 1.8.5, and mingw gcc 3.4.4. I don't recommend doing this if you want your extension to be compatible with the current Windows Ruby release. -austin
on 2006-10-18 19:46
On 10/18/06, Austin Ziegler <halostatue@gmail.com> wrote: > > On 10/18/06, Brian Takita <brian.takita@gmail.com> wrote: > > I'm attempting to cross compile a ruby extension for Windows from a > Linux > > box. > > Im running Ubuntu 6.06, Ruby 1.8.5, and mingw gcc 3.4.4. > > I don't recommend doing this if you want your extension to be > compatible with the current Windows Ruby release. Thanks for your reply. I'm at my wit's end in compiling ruby extensions on Windows. Ruby 1.8.5 is compiled under VC 6, right? Its too bad that is very difficult to compile extensions for Windows. Do you mind if I pick your brain at the conference? -austin
on 2006-10-18 20:50
On 10/18/06, Brian Takita <brian.takita@gmail.com> wrote: > > Its too bad that is very difficult to compile extensions for Windows. > > Do you mind if I pick your brain at the conference? You can try -- I'm going to be interested in picking a lot of peoples' brains at the conference about this issue. See a notice that I'll be posting later tonight. -austin
on 2006-10-18 20:54
On Wed, Oct 18, 2006 at 04:58:53PM +0900, Brian Takita wrote: > json_ext.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), > not stripped You are using mkrf instead of mkmf, so things work a bit differently. $ cat extconf.rb require 'rubygems' require 'mkrf' dir = File.dirname(__FILE__) Mkrf::Generator.new('json_ext', "#{dir}/*.c") $ cat > extconf.rb require 'mkmf' create_makefile "json_ext" $ ruby -I ~/usr/ruby-mingw32/lib/ruby/1.8/i386-mingw32 extconf.rb /home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32/rbconfig.rb:7: ruby lib version (1.8.4) doesn't match executable version (1.8.5) (RuntimeError) from /home/batsman/usr//lib/ruby/1.8/mkmf.rb:4:in `require' from /home/batsman/usr//lib/ruby/1.8/mkmf.rb:4 from extconf.rb:1:in `require' from extconf.rb:1 [use vim to edit rbconfig.rb and remove/comment the version check if the native & cross-compiled ruby version differ] $ ruby -I ~/ruby-mingw32/lib/ruby/1.8/i386-mingw32/ extconf.rb creating Makefile $ make i586-mingw32msvc-gcc -I. -I/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32 -I/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32 -I. -g -O2 -c json_ext.c i586-mingw32msvc-gcc -shared -s -Wl,--enable-auto-import,--export-all -L"/home/batsman/ruby-mingw32/lib" -o json_ext.so json_ext.o -lmsvcrt-ruby18 -lwsock32 $ file json_ext.so json_ext.so: MS Windows PE 32-bit Intel 80386 console DLL
on 2006-10-18 21:00
On Wed, Oct 18, 2006 at 10:52:55PM +0900, Austin Ziegler wrote: > On 10/18/06, Brian Takita <brian.takita@gmail.com> wrote: > >I'm attempting to cross compile a ruby extension for Windows from a Linux > >box. > >Im running Ubuntu 6.06, Ruby 1.8.5, and mingw gcc 3.4.4. > > I don't recommend doing this if you want your extension to be > compatible with the current Windows Ruby release. Isn't mingw supposed to be compatible with the MSVC (which the One Click Installer uses now instead of some newer VC++) builds? Ara mentioned some incompatibility on ruby-core (a problem with isascii IIRC) but it had been solved in CVS for a while.
on 2006-10-19 04:02
On 10/18/06, Mauricio Fernandez <mfp@acm.org> wrote: > > http://eigenclass.org/hiki.rb?cross+compiling+rcovrt#f01 > require 'mkrf' > from /home/batsman/usr//lib/ruby/1.8/mkmf.rb:4:in `require' > i586-mingw32msvc-gcc -I. > -I/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32 > -I/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32 -I. -g -O2 -c > json_ext.c > i586-mingw32msvc-gcc -shared -s > -Wl,--enable-auto-import,--export-all -L"/home/batsman/ruby-mingw32/lib" -o > json_ext.so json_ext.o -lmsvcrt-ruby18 -lwsock32 > $ file json_ext.so > json_ext.so: MS Windows PE 32-bit Intel 80386 console DLL Thanks for demoing this. I'll give it a shot. -- > Mauricio Fernandez - http://eigenclass.org - singular Ruby > > On 10/18/06, <b class="gmail_sendername">Mauricio Fernandez</b> <<a href="mailto:mfp@acm.org">mfp@acm.org</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> On Wed, Oct 18, 2006 at 04:58:53PM +0900, Brian Takita wrote:<br>> Hello,<br>><br>> I'm attempting to cross compile a ruby extension for Windows from a Linux<br>> box.<br>> Im running Ubuntu 6.06, Ruby 1.8.5 , and mingw gcc 3.4.4.<br>><br>> I attempted to follow Mauricio Fernandez's instructions<br>> <a href="http://eigenclass.org/hiki.rb?cross+compiling+rcovrt#f01">http://eigenclass.org/hiki.rb?cross+compiling+rcovrt#f01 </a><br>><br>> The file compiled but it appears that it is still a Linux binary.<br>> json_ext.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV),<br>> not stripped<br><br>You are using mkrf instead of mkmf, so things work a bit differently. <br><br>$ cat extconf.rb<br>require 'rubygems'<br>require 'mkrf'<br><br>dir = File.dirname(__FILE__)<br>Mkrf::Generator.new('json_ext', "#{dir}/*.c")<br>$ cat > extconf.rb<br>require 'mkmf'<br>create_makefile "json_ext" <br>$ ruby -I ~/usr/ruby-mingw32/lib/ruby/1.8/i386-mingw32 extconf.rb<br>/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32/rbconfig.rb:7: ruby lib version (1.8.4) doesn't match executable version (1.8.5) (RuntimeError) <br> from /home/batsman/usr//lib/ruby/1.8/mkmf.rb:4:in `require'<br> from /home/batsman/usr//lib/ruby/1.8/mkmf.rb:4<br> from extconf.rb:1:in `require'<br> from extconf.rb:1<br><br>[use vim to edit rbconfig.rb and remove/comment the version check if the<br>native & cross-compiled ruby version differ]<br><br>$ ruby -I ~/ruby-mingw32/lib/ruby/1.8/i386-mingw32/ extconf.rb<br>creating Makefile<br>$ make<br>i586-mingw32msvc-gcc -I. -I/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32 -I/home/batsman/ruby-mingw32/lib/ruby/1.8/i386-mingw32 -I. -g -O2 -c json_ext.c <br>i586-mingw32msvc-gcc -shared -s -Wl,--enable-auto-import,--export-all -L"/home/batsman/ruby-mingw32/lib" -o json_ext.so json_ext.o -lmsvcrt-ruby18 -lwsock32<br>$ file json_ext.so<br>json_ext.so: MS Windows PE 32-bit Intel 80386 console DLL </blockquote><div><br>Thanks for demoing this. I'll give it a shot. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">--<br>Mauricio Fernandez - <a href="http://eigenclass.org">http://eigenclass.org</a> - singular Ruby<br><br></blockquote></div><br>
on 2006-10-19 07:43
On 10/18/06, Brian Takita <brian.takita@gmail.com> wrote: > > > > > $ cat extconf.rb > > lib version (1.8.4) doesn't match executable version (1.8.5) > > creating Makefile > > > Thanks for demoing this. I'll give it a shot. > It looks like the compile worked. I did not run make install on mingw. There where a couple of issues with the install task, such as rubyw.exemissing and the .ext directory missing. To resolve this I copied ruby.exe to rubyw.exe and the ext directory to .ext Thank you, Brian --
on 2006-10-19 07:47
On 10/18/06, Austin Ziegler <halostatue@gmail.com> wrote: > > Thanks for your reply. I'm at my wit's end in compiling ruby extensions > on > > Windows. Ruby 1.8.5 is compiled under VC 6, right? > > > > Its too bad that is very difficult to compile extensions for Windows. > > > > Do you mind if I pick your brain at the conference? > > You can try -- I'm going to be interested in picking a lot of peoples' > brains at the conference about this issue. See a notice that I'll be > posting later tonight. Yes. It would be good to look for a resolution to this issue at the conference. I cant wait to read your post. -austin
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.