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

Raspunde prin e-mail lui