いつごろか、Linux(Fedora Coreから?)で、
・vim-3.0.tar.gz
・jvim.2.1beta.tar.gz
の組み合わせでコンパイルが通らなくなった。下記のようなエラーが出る。
今回の環境はFedora Core 5。
> gcc -O -c -DBSD_UNIX -DDIGRAPHS -DTERMCAP -DSOME_BUILTIN_TCAPS -DNO_FREE_NULL -DVIM_ISSPACE -DWEBB_COMPLETE -DWEBB_KEYWORD_COMPL -DVIM_HLP=\"/usr/local/lib/vim.hlp\" -DKANJI -DUCODE -DTRACK -DCRMARK -DFEXRC -DUSE_GREP -DUSE_OPT version.c
> gcc -O -o vim alloc.o unix.o buffer.o charset.o cmdcmds.o cmdline.o csearch.o digraph.o edit.o fileio.o getchar.o help.o linefunc.o main.o mark.o memfile.o memline.o message.o misccmds.o normal.o ops.o param.o quickfix.o regexp.o regsub.o screen.o search.o tag.o term.o undo.o window.o kanji.o track.o u2s.o s2u.o version.o -lncurses
> unix.o: In function `vim_dirname':unix.c:(.text+0xfac): warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
> unix.o: In function `ExpandWildCards':unix.c:(.text+0x9e8): warning: the use of `mktemp' is dangerous, better use `mkstemp'
> /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in unix.o
> /lib/libc.so.6: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make: *** [vim] Error 1
ということでいろいろ調べてみると、似たようなエラーでコンパイルできない現象に該当するのがあるようで。コンパイルオプションに「--include /usr/include/errno.h」を入れると良いらしい。
vimにも適用できるか試してみたら、コンパイルが通った。
Makefile の修正方法は下記のとおり。
> # Linux 2.0.x/2.2.x (TESTED Debian GNU/Linux 2.0/2.1)
> MACHINE = -DBSD_UNIX
> CC=gcc -O --include /usr/include/errno.h
> LIBS = -lncurses
これでしばらく様子見。