Bug#827319: vim: FTBFS[alpha,kfreebsd-*]: Test_tagcase() failed

James McCoy jamessan at debian.org
Sun Oct 16 01:02:56 UTC 2016


Control: tag -1 help

On Sun, Oct 16, 2016 at 12:27:13AM +0100, Steven Chamberlain wrote:
> Hi!
> 
> I was about finished for the night, but then I thought to recompile
> option.c this way:
> 
> $ cd src/vim-gtk
> $ touch option.c
> $ make PERL_CFLAGS="$(perl -MExtUtils::Embed -e ccopts) -g -O0 -fno-omit-frame-pointer"
> | gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-kfreebsd-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-kfreebsd-gnu/glib-2.0/include -I/usr/include/freetype2   -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1        -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -I/usr/lib/i386-kfreebsd-gnu/perl/5.24/CORE  -g -O0 -fno-omit-frame-pointer     -o objects/option.o option.c
> 
> (all $*_CFLAGS were undefined except for PERL_CFLAGS, plus my additions)
> and I finally got a backtrace from gdb!
> 
> | #0  0x0810d45b in parse_cino (buf=0x82eebe0) at misc1.c:6955

 6955     for (p = buf->b_p_cino; *p; )

Yeah, that's the same stack I was seeing all yesterday while bisecting.
buf->b_p_cino shouldn't be NULL at this point.

Taking a step back, there are two issues here.

First, something has changed in the toolset (gcc, Perl, libc, etc.) that
causes 7.4.963 (i.e., the last Vim package built on kfreebsd) to no
longer be able to run properly anymore.  This appears to be related to
the -D_LARGEFILE_SOURCE/-D_FILE_OFFSET_BITS=64 defines.

In 7.4.963, the explicit use of those was isolated to the if_perl*
modules, so that's the only part of Vim that can trigger the crash.  You
can see the crash by running the tests of any of the Vim package
variants which include the language bindings (vim-nox, vim-gtk,
vim-athena, or vim-gnome).  Alternatively, just run something like:

  ./src/vim -u NONE -i NONE --cmd 'perl $curbuf->Set($curline, "Crash")'

Second, the impact of the problem became broader in Vim patch 7.4.1065
because the PERL_CFLAGS are now applied to option.c, thus touching code
that is used in much more of Vim.  At that point, we now can see the
crash simply from trying to run Vim.  That's the stack you hit.

Considering that this _only_ exhibits on kfreebsd-* (and maybe alpha), I
don't think it's a Vim problem.  I also don't know how to go further
with this.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



More information about the pkg-vim-maintainers mailing list