Opened 14 years ago
Closed 7 years ago
#28071 closed defect (wontfix)
Vim 7.3.94_0 to 7.3.102_0 +universal fails with symbols not found for i386
Reported by: | wintesa@… | Owned by: | raimue (Rainer Müller) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.9.2 |
Keywords: | Cc: | ||
Port: | vim |
Description (last modified by mf2k (Frank Schima))
Upgrading from 7.3.94_0 to 7.3.102_0 fails with:
... :info:build Undefined symbols for architecture i386: :info:build "_rb_num2uint", referenced from: :info:build _window_set_cursor in if_ruby.o :info:build ld: symbol(s) not found for architecture i386 :info:build collect2: ld returned 1 exit status :info:build lipo: can't open input file: /var/tmp//ccm2NL6E.out (No such file or directory) ...
Attachments (1)
Change History (7)
Changed 14 years ago by wintesa@…
comment:1 Changed 14 years ago by mf2k (Frank Schima)
Description: | modified (diff) |
---|---|
Keywords: | vim 7.3 universal removed |
Owner: | changed from macports-tickets@… to raimue@… |
Port: | vim added |
comment:2 Changed 14 years ago by wintesa@…
comment:3 Changed 14 years ago by wintesa@…
1216 static VALUE window_set_cursor(VALUE self, VALUE pos) 1217 { 1218 VALUE lnum, col; 1219 win_T *win = get_win(self); 1220 1221 Check_Type(pos, T_ARRAY); 1222 if (RARRAY_LEN(pos) != 2) 1223 rb_raise(rb_eArgError, "array length must be 2"); 1224 lnum = RARRAY_PTR(pos)[0]; 1225 col = RARRAY_PTR(pos)[1]; 1226 win->w_cursor.lnum = NUM2LONG(lnum); 1227 win->w_cursor.col = NUM2LONG(col); 1228 check_cursor(); /* put cursor on an existing line */ 1229 update_screen(NOT_VALID); 1230 return Qnil; 1231 }
comment:4 Changed 13 years ago by raimue (Rainer Müller)
The problem is that the build for both architectures uses the x86_64 headers, although a separate set exists for i386 with differented defines. Ruby wants to be smart here and NUM2UINT is a no-op for sizeof(int) == sizeof(long) and, thus, no rb_num2uint function is compiled in this case.
From the vim73/src/auto/config.log:
RUBY_CFLAGS='-I/opt/local/lib/ruby/1.8/x86_64-darwin11 -DRUBY_VERSION=18' RUBY_LIBS='-lruby -lpthread -ldl -lobjc -L/opt/local/lib'
I am not yet sure if this is a more general bug in ruby +universal or if it should be fixed in the vim build only.
comment:5 Changed 9 years ago by jmroot (Joshua Root)
Is this still a problem with the current version?
comment:6 Changed 7 years ago by raimue (Rainer Müller)
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Assuming there is nothing to do here anymore.
Note: See
TracTickets for help on using
tickets.
Seems to be fixed with:
file: src/if_ruby.c
1216 static VALUE window_set_cursor(VALUE self, VALUE pos) 1217 { 1218 VALUE lnum, col; 1219 win_T *win = get_win(self); 1220 1221 Check_Type(pos, T_ARRAY); 1222 if (RARRAY_LEN(pos) != 2) 1223 rb_raise(rb_eArgError, "array length must be 2"); 1224 lnum = RARRAY_PTR(pos)[0]; 1225 col = RARRAY_PTR(pos)[1]; 1226 win->w_cursor.lnum = NUM2LONG(lnum); 1227 win->w_cursor.col = NUM2LONG(col); /* Changed from NUM2UINT(col) 15/Feb/2011*/ 1228 check_cursor(); /* put cursor on an existing line */ 1229 update_screen(NOT_VALID); 1230 return Qnil; 1231 }