Ok, there was two mistakes here... And as usual, you can only see what's wrong when you already asked for help :/
First mistake : The PKGBUILD file (which provides for Archlinux a simple way to create a package by compiling the sources) was trying to compile a tiny version of VIM without the 'huge' parameter as well as my gvim-gtk2 one. As I did a %s/disable-rubyinterp/enable-rubyinterp=dynamic/g, (yes, I am not always that delicate), the script tried to 'make' this vim-tiny compilation which has been proven impossible without this "huge" thing. I think I would not have been able to see that problem without you! Alas! Once this problem solved, another compilation issue occurred. To check if everything could be alright, I used, following your answer (there was no patch applied with my former attempt but anyway), a brand-new up-to-date vanilla code, configured and made outside the src/ directory: $ hg clone http://vim.googlecode.com/hg/ $ cd hg/ $ ./configure --prefix=/usr --localstatedir=/var/lib/vim \ --mandir=/usr/share/man \ --with-features=huge --enable-gpm --enable-acl --with-x=yes \ --enable-gui=gtk2 --enable-multibyte --enable-cscope \ --enable-netbeans --enable-perlinterp=dynamic \ --enable-pythoninterp=dynamic --enable-rubyinterp=dynamic $ make The compilation error is now different but there is a compilation error anyway: objects/if_ruby.o: In function `buffer_s_aref': /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:927: undefined reference to `rb_fix2int' /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:927: undefined reference to `rb_num2int' objects/if_ruby.o: In function `window_s_aref': /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1162: undefined reference to `rb_fix2int' /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1162: undefined reference to `rb_num2int' objects/if_ruby.o: In function `window_set_width': /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1212: undefined reference to `rb_num2int' /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1212: undefined reference to `rb_fix2int' objects/if_ruby.o: In function `window_set_height': /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1194: undefined reference to `rb_num2int' /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1194: undefined reference to `rb_fix2int' objects/if_ruby.o: In function `window_set_cursor': /home/lomig/vim-compil/mercurialVersion/hg/src/if_ruby.c:1235: undefined reference to `rb_num2uint' The thing is: rb_X functions should have been in Ruby libraries. I checked config.mk and RUBY_LIBS was empty here. Changing my ./configure option to "--enable-rubyinterp=yes" did the trick, and I have been able to compile vim with this option, with my vanilla version as well as with my package script. That explains why +ruby is not activated in the official package, as the dynamic link seems to be impossible here. (I cannot understand why a second package is not available, but it is outside the scope of this group :D) Again, thanks a lot for your time, you have been much helpful to point my lack of skill here ^^ 2012/6/20 Ben Schmidt <[email protected]> > Everything in the codebase looks OK to me. win_T is a Vim structure, and > has a w_width member when huge features are enabled. All the appropriate > header files are installed. Ruby builds fine for me (and others) on > other platforms. > > Have you applied any patches at all? > > If not, my best guess is that something very strange has gone on with > header files on your system, or you have hit a compiler bug. > > Did you run make inside or outside the 'src' directory? If outside, try > running it inside; it might work better. > > I'm fascinated, so I might see if I can download and install Arch Linux > and reproduce the problem. It is very strange. > > Ben. > > > > > On 20/06/12 9:51 AM, Lomig wrote: > >> Hello list :) >> >> As I have not been able to find a compiled package of vim with a +ruby >> support for my distribution (Archlinux), I have tried for 2 days to >> compile it myself from the mercurial repository... Though without any >> success for now. >> >> After a configure that was meant to be as close as possible to the one >> used by my previous binary package, >> >> $ ./configure --prefix=/usr --localstatedir=/var/lib/vim \ >> --mandir=/usr/share/man \ >> --with-features=huge --enable-gpm --enable-acl --with-x=yes \ >> --enable-gui=gtk2 --enable-multibyte --enable-cscope \ >> --enable-netbeans --enable-perlinterp=dynamic \ >> --enable-pythoninterp=dynamic --enable-rubyinterp=dynamic >> >> I can tell that ruby has been recognized: >> >> $ cat config.mk | grep RUBY >> RUBY = /usr/bin/ruby >> RUBY_SRC = if_ruby.c >> RUBY_OBJ = objects/if_ruby.o >> RUBY_PRO = if_ruby.pro >> RUBY_CFLAGS = -I/usr/include/ruby-1.9.1 -I/usr/include/ruby-1.9.1/ >> x86_64-linux -DRUBY_VERSION=19 >> RUBY_LIBS = -lruby -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib >> >> Unfortunately, everything is not perfect, as a '$ make' leads to an >> error message: >> >> $ make >> gcc -c -I. -Iproto -DHAVE_CONFIG_H -I/usr/local/include - >> march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp- >> buffer-size=4 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -I/usr/ >> include/ruby-1.9.1 -I/usr/include/ruby-1.9.1/x86_**64-linux - >> DRUBY_VERSION=19 -o objects/if_ruby.o if_ruby.c >> if_ruby.c: In function ‘window_width’: >> if_ruby.c:1203:12: erreur: ‘win_T’ has no member named ‘w_width’ >> >> >> if_ruby.c incriminated function: >> >> static VALUE window_width(VALUE self) >> { >> win_T *win = get_win(self); >> >> return INT2NUM(win->w_width); >> } >> >> I would be very glad if anyone have any hint to help me with this >> issue where Google nor any mail list could not... (apparently the >> Archlinux package I use for now for Vim lacks a +ruby support because >> of a compilation problem -- Perhaps the same one, but I have been >> unable to contact its maintainer) >> >> Anyway, thanks in advance :) >> >> -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
