New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSX 限定で if_ruby な vim で :ruby p "a" した時落ちる #1101

Closed
MaxMEllon opened this Issue Sep 26, 2017 · 21 comments

Comments

Projects
None yet
6 participants
@MaxMEllon

MaxMEllon commented Sep 26, 2017

質問・報告の内容

OSX 限定で if_ruby な vim で :ruby p "a" した時落ちます
同じ状況の ubuntu で試したときは落ちませんでした.

ruby のバージョンは, 2.4.1 2.4.2 の2種類を試してみてどちらもだめでした.
ubuntu も mac も rbenv を利用して インストールしています.

configure 時 に

CC=clang \
LDFLAGS="-L=${HOME}/.pyenv/versions/2.7.11/include/python2.7m:${HOME}/.pyenv/versions/3.6.2/include/python3.6m:${HOME}/.rbenv/versions/2.4.2/include/ruby-2.4.0"

を渡しています

ubuntu では

LDFLAGS="-Wl,-L=${HOME}/.pyenv/versions/2.7.13/lib:${HOME}/.pyenv/versions/3.6.1/lib:${HOME}/.rbenv/versions/2.4.1/lib"

を渡しています

最小再現手順は

vim -u NONE -c 'ruby p "1"'

です

Vimのバージョン

8.0.1150 + #1098 の内容を自分で修正したもの

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 27 2017 00:32:01)
MacOS X (unix) version
Included patches: 1-1150
Compiled by maxmellon@Viper.local
Huge version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     +tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminal
++builtin_terms  +fork()          +multi_lang      +terminfo
+byte_offset     -gettext         -mzscheme        +termresponse
+channel         -hangul_input    +netbeans_intg   +textobjects
+cindent         +iconv           +num64           +timers
-clientserver    +insert_expand   +packages        +title
+clipboard       +job             +path_extra      -toolbar
+cmdline_compl   +jumplist        +perl            +user_commands
+cmdline_hist    +keymap          +persistent_undo +vertsplit
+cmdline_info    +lambda          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python/dyn      +viminfo
-cscope          +lispindent      +python3/dyn     +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      +lua/dyn         +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +startuptime     -xpm
+eval            +mouse_dec       +statusline      -xsmp
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_clipboard
+extra_search    -mouse_jsbterm   +syntax          -xterm_save
+farsi           +mouse_netterm   +tag_binary
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L. -L/Users/maxmellon/.rbenv/versions/2.4.2/lib  -fstack-protector -L/usr/local/lib -L=/Users/maxmellon/.pyenv/versions/2.7.11/include/python2.7m:/Users/maxmellon/.pyenv/versions/3.6.2/include/python3.6m:/Users/maxmellon/.rbenv/versions/2.4.2/include/ruby-2.4.0 -L/usr/local/lib -o vim        -lm -lncurses  -liconv -framework Cocoa   -fstack-protector  -L/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE -lperl   -F/System/Library/Frameworks -framework Tcl -lpthread -framework CoreFoundation -lruby-static -framework CoreFoundation -lpthread -lgmp -ldl -lobjc -L/Users/maxmellon/.rbenv/versions/2.4.2/lib

( :version で確認できます)

OSの種類/ディストリ/バージョン

落ちるOS

  • MacBook Air (13-inch, Early 2015)
  • OS X El Capitan
  • MacBook Air (13-inch, Early 2015)
  • プロセッサ 1.6 GHz Intel Corei5

落ちないOS

  • Distributor ID: Ubuntu
  • Description: Ubuntu 16.04 LTS
  • Release: 16.04
  • Codename: xenial
Architecture:          x86_64
Model name:            Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz
NUMA node0 CPU(s):     0-7

使用している or 関係していそうなプラグイン

vim -u NONE で起動しているため,設定ファイルなどは,読み込んでいません.

:echo &runtimepath

" /Users/maxmellon/.vim,
" /usr/local/share/vim/vimfiles,
" /usr/local/share/vim/vim80,
" /usr/local/share/vim/vimfiles/after,
" /Users/maxmellon/.vim/after

~/.vim および, ~/.vim/after は空です.

その他

ubuntu では発生しませんでした.
これも,8.0.1150 + #1098 の内容を自分で修正したもの です
以下,正常に動いた ubuntu 上の vim の :version

VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 27 2017 00:36:30)
適用済パッチ: 1-1150
Compiled by maxmellon@Zonta
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     +tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminal
++builtin_terms  +fork()          +multi_lang      +terminfo
+byte_offset     +gettext         -mzscheme        +termresponse
+channel         -hangul_input    +netbeans_intg   +textobjects
+cindent         +iconv           +num64           +timers
-clientserver    +insert_expand   +packages        +title
-clipboard       +job             +path_extra      -toolbar
+cmdline_compl   +jumplist        -perl            +user_commands
+cmdline_hist    +keymap          +persistent_undo +vertsplit
+cmdline_info    +lambda          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      +python3/dyn     +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      +lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +startuptime     -xpm
+eval            +mouse_dec       +statusline      -xsmp
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_clipboard
+extra_search    -mouse_jsbterm   +syntax          -xterm_save
+farsi           +mouse_netterm   +tag_binary
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  デフォルトファイル: "$VIMRUNTIME/defaults.vim"
       省略時の $VIM: "/usr/local/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc   -L. -L/home/maxmellon/.rbenv/versions/2.4.1/lib  -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-L=/usr/lib/x86_64-linux-gnu:/home/maxmellon/.pyenv/versions/2.7.13/lib:/home/maxmellon/.pyenv/versions/3.6.1/lib:/home/maxmellon/.rbenv/versions/2.4.1/lib -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl    -ldl  -L/usr/lib/x86_64-linux-gnu -lluajit-5.1    -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -Wl,-R/home/maxmellon/.rbenv/versions/2.4.1/lib -L/home/maxmellon/.rbenv/versions/2.4.1/lib -lruby-static -lpthread -ldl -lcrypt -lm  -L/home/maxmellon/.rbenv/versions/2.4.1/lib

一応,if_ruby.c の中でMACOS_X 限定のコードを自分なりに探してみたのですが,ここくらいしか該当しなかったです.

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 26, 2017

sudo make しており,src/object 以下の権限が root になっていたのが問題でした.
お騒がせしました.

src/object 以下の 権限が root でも python などは動いていて,気がつくのに時間がかかってしまいました.

MaxMEllon commented Sep 26, 2017

sudo make しており,src/object 以下の権限が root になっていたのが問題でした.
お騒がせしました.

src/object 以下の 権限が root でも python などは動いていて,気がつくのに時間がかかってしまいました.

@MaxMEllon MaxMEllon closed this Sep 26, 2017

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 26, 2017

demo

./src/vim -U NONE -c 'ruby p "a"'
が動いたので直ったかと思いましたが,
sudo make install した vim に対して vim -U NONE -c 'ruby p "a"' すると落ちてしまいました.

python は ~/src/vim も vim も動作しました

MaxMEllon commented Sep 26, 2017

demo

./src/vim -U NONE -c 'ruby p "a"'
が動いたので直ったかと思いましたが,
sudo make install した vim に対して vim -U NONE -c 'ruby p "a"' すると落ちてしまいました.

python は ~/src/vim も vim も動作しました

@MaxMEllon MaxMEllon reopened this Sep 26, 2017

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn
Member

mattn commented Sep 27, 2017

ping @ujihisa

@ujihisa

This comment has been minimized.

Show comment
Hide comment
@ujihisa

ujihisa Sep 28, 2017

Member

ううーん再現できないです。ちょっと環境違うけど

  • Vim: 24a98a0eb77245adc50facad8b735b20bfd31a7e
  • macOS Sierra 10.12.6
  • 同様にrbenvでruby 2.4.2インストール
  • pythonなし (!)
CC=clang LDFLAGS="-L=${HOME}/.rbenv/versions/2.4.2/include/ruby-2.4.0" ./configure --enable-rubyinterp --prefix=`pwd`/local
make all install
./local/bin/vim -U NONE -c 'ruby p "a"'

は普通に実行できました。(= 再現できませんでした)

clangはとくにいじってないsierraデフォのやつで

$ clang --version
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Member

ujihisa commented Sep 28, 2017

ううーん再現できないです。ちょっと環境違うけど

  • Vim: 24a98a0eb77245adc50facad8b735b20bfd31a7e
  • macOS Sierra 10.12.6
  • 同様にrbenvでruby 2.4.2インストール
  • pythonなし (!)
CC=clang LDFLAGS="-L=${HOME}/.rbenv/versions/2.4.2/include/ruby-2.4.0" ./configure --enable-rubyinterp --prefix=`pwd`/local
make all install
./local/bin/vim -U NONE -c 'ruby p "a"'

は普通に実行できました。(= 再現できませんでした)

clangはとくにいじってないsierraデフォのやつで

$ clang --version
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 28, 2017

prefix を システムワイドではなくて ユーザーローカルにしたら解決しました.
Vim 関係なく,僕の手元の問題っぽいで閉じます.
お手数おかけしました.

MaxMEllon commented Sep 28, 2017

prefix を システムワイドではなくて ユーザーローカルにしたら解決しました.
Vim 関係なく,僕の手元の問題っぽいで閉じます.
お手数おかけしました.

@MaxMEllon MaxMEllon closed this Sep 28, 2017

@ichizok

This comment has been minimized.

Show comment
Hide comment
@ichizok

ichizok Sep 28, 2017

Member

関係ないですけど、

LDFLAGS="-L=${HOME}/.pyenv/versions/2.7.11/include/python2.7m:${HOME}/.pyenv/versions/3.6.2/include/python3.6m:${HOME}/.rbenv/versions/2.4.2/include/ruby-2.4.0"

これ記述おかしいですね。
-L[dir] という書式なので、

  • =${HOME}/... だと「イコールから始まるパス」ということになります
  • 複数のパスをセミコロンで繋ぐことはできません(全体で一つのパスとして扱われる)

それから、-L に指定するのは include のディレクトリではなくて ubuntu のように lib のディレクトリでは。

Member

ichizok commented Sep 28, 2017

関係ないですけど、

LDFLAGS="-L=${HOME}/.pyenv/versions/2.7.11/include/python2.7m:${HOME}/.pyenv/versions/3.6.2/include/python3.6m:${HOME}/.rbenv/versions/2.4.2/include/ruby-2.4.0"

これ記述おかしいですね。
-L[dir] という書式なので、

  • =${HOME}/... だと「イコールから始まるパス」ということになります
  • 複数のパスをセミコロンで繋ぐことはできません(全体で一つのパスとして扱われる)

それから、-L に指定するのは include のディレクトリではなくて ubuntu のように lib のディレクトリでは。

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 28, 2017

 LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>

本当ですね...
気が付きませんでした.ありがとうございます

MaxMEllon commented Sep 28, 2017

 LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>

本当ですね...
気が付きませんでした.ありがとうございます

@ichizok

This comment has been minimized.

Show comment
Hide comment
@ichizok

ichizok Sep 28, 2017

Member

@MaxMEllon close後ですみませんが、sudo make install した後にインストール先の /usr/local/bin/vim の所有者をユーザに変更して実行した場合はどうなりますか?

Member

ichizok commented Sep 28, 2017

@MaxMEllon close後ですみませんが、sudo make install した後にインストール先の /usr/local/bin/vim の所有者をユーザに変更して実行した場合はどうなりますか?

@ichizok

This comment has been minimized.

Show comment
Hide comment
@ichizok

ichizok Sep 28, 2017

Member

/usr/local/bin が root 所有であれば、これもユーザ所有に変更して試してみてもらえませんか?

Member

ichizok commented Sep 28, 2017

/usr/local/bin が root 所有であれば、これもユーザ所有に変更して試してみてもらえませんか?

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 28, 2017

指摘いただいた,configure option の記述方法の修正はまだ行っておりません

$ ls -l /usr/local/bin/vim
-rwxr-xr-x  1 maxmellon  staff  5111300  9 27 03:52 /usr/local/bin/vim

$ /usr/local/bin/vim -U NONE -c 'ruby p "a"' +"q"
Vim: Caught deadly signal TRAP
Vim: Finished.

$ ls -l ~/local/bin/vim
-rwxr-xr-x  1 maxmellon  staff  6428924  9 27 04:12 /Users/maxmellon/local/bin/vim

$ ~/local/bin/vim -U NONE -c 'ruby p "a"' +"q"
# 正常終了

MaxMEllon commented Sep 28, 2017

指摘いただいた,configure option の記述方法の修正はまだ行っておりません

$ ls -l /usr/local/bin/vim
-rwxr-xr-x  1 maxmellon  staff  5111300  9 27 03:52 /usr/local/bin/vim

$ /usr/local/bin/vim -U NONE -c 'ruby p "a"' +"q"
Vim: Caught deadly signal TRAP
Vim: Finished.

$ ls -l ~/local/bin/vim
-rwxr-xr-x  1 maxmellon  staff  6428924  9 27 04:12 /Users/maxmellon/local/bin/vim

$ ~/local/bin/vim -U NONE -c 'ruby p "a"' +"q"
# 正常終了
@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 28, 2017

すみませんコメントがほぼ同時で,/usr/lobal/bin の権限はまだ変更できてないのでそちらも試してみます

MaxMEllon commented Sep 28, 2017

すみませんコメントがほぼ同時で,/usr/lobal/bin の権限はまだ変更できてないのでそちらも試してみます

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Sep 28, 2017

Member

落ちる原因が特定できるまでは open にしておいて貰えますか。

Member

mattn commented Sep 28, 2017

落ちる原因が特定できるまでは open にしておいて貰えますか。

@mattn mattn reopened this Sep 28, 2017

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Sep 28, 2017

Member

vim がうまくエラーハンドリング出来てなくてエラーメッセージを出せていない → バグ
vim ではハンドリング出来ない → close

としましょう。

Member

mattn commented Sep 28, 2017

vim がうまくエラーハンドリング出来てなくてエラーメッセージを出せていない → バグ
vim ではハンドリング出来ない → close

としましょう。

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 28, 2017

@mattn かしこまりました
これ以降報告するときもissueクローズする際は気をつけます

./configure オプションを修正したところ正しく動作することを確認しました.

$ make distclean
$ CC=clang LDFLAGS="-L${HOME}/.pyenv/versions/2.7.11/lib -L${HOME}/.pyenv/versions/3.6.2/lib -L${HOME}/.rbenv/versions/2.4.2/lib" ./configure --enable-multibyte --with-features=huge --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-perlinterp=yes --enable-rubyinterp=yes --enable-python3interp=yes --enable-pythoninterp=yes --prefix="${HOME}/local/bin" --disable-selinux --enable-terminal --with-ruby-command="${HOME}/.rbenv/versions/2.4.2/bin/ruby" --enable-fail-if-missing --enable-fontset --enable-tclinterp
$ make && sudo make install

$ ls -l /usr/local/bin/vim
-rwxr-xr-x  1 root  admin  2374312  9 28 19:04 /usr/local/bin/vim

$ /usr/local/bin/vim -U NONE -c 'ruby p "a"' +"q"
# 正常終了

私の確認不足でした,次から気をつけます.
わざわざありがとうございました 🙇

MaxMEllon commented Sep 28, 2017

@mattn かしこまりました
これ以降報告するときもissueクローズする際は気をつけます

./configure オプションを修正したところ正しく動作することを確認しました.

$ make distclean
$ CC=clang LDFLAGS="-L${HOME}/.pyenv/versions/2.7.11/lib -L${HOME}/.pyenv/versions/3.6.2/lib -L${HOME}/.rbenv/versions/2.4.2/lib" ./configure --enable-multibyte --with-features=huge --enable-luainterp=dynamic --with-lua-prefix=/usr/local --enable-perlinterp=yes --enable-rubyinterp=yes --enable-python3interp=yes --enable-pythoninterp=yes --prefix="${HOME}/local/bin" --disable-selinux --enable-terminal --with-ruby-command="${HOME}/.rbenv/versions/2.4.2/bin/ruby" --enable-fail-if-missing --enable-fontset --enable-tclinterp
$ make && sudo make install

$ ls -l /usr/local/bin/vim
-rwxr-xr-x  1 root  admin  2374312  9 28 19:04 /usr/local/bin/vim

$ /usr/local/bin/vim -U NONE -c 'ruby p "a"' +"q"
# 正常終了

私の確認不足でした,次から気をつけます.
わざわざありがとうございました 🙇

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Sep 28, 2017

Member

Linux で同様に -L=... を付けてビルドしてみましたが再現しませんでした。

 $ rbenv version
2.4.0-preview1 (set by /home/mattn/.rbenv/version)

 $ ruby --version
ruby 2.4.0preview1 (2016-06-20 trunk 55466) [x86_64-linux]

$ ./vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 28 2017 19:24:59)
適用済パッチ: 1-1130
Compiled by mattn@foobar
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminal
++builtin_terms  +fork()          +multi_lang      +terminfo
+byte_offset     +gettext         -mzscheme        +termresponse
+channel         -hangul_input    +netbeans_intg   +textobjects
+cindent         +iconv           +num64           +timers
-clientserver    +insert_expand   +packages        +title
-clipboard       +job             +path_extra      -toolbar
+cmdline_compl   +jumplist        -perl            +user_commands
+cmdline_hist    +keymap          +persistent_undo +vertsplit
+cmdline_info    +lambda          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       -python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +startuptime     -xpm
+eval            +mouse_dec       +statusline      -xsmp
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_clipboard
+extra_search    -mouse_jsbterm   +syntax          -xterm_save
+farsi           +mouse_netterm   +tag_binary
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  デフォルトファイル: "$VIMRUNTIME/defaults.vim"
       省略時の $VIM: "/usr/local/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc   -L. -L/home/mattn/.rbenv/versions/2.4.0-preview1/lib  -fstack-protector -rdynamic -Wl,-export-dynamic -L=/home/mattn/.rbenv/versions/2.4.2/include/ruby-2.4.0 -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -ldl       -Wl,-R/home/mattn/.rbenv/versions/2.4.0-preview1/lib -L/home/mattn/.rbenv/versions/2.4.0-preview1/lib -lruby-static -lpthread -ldl -lcrypt -lm  -L/home/mattn/.rbenv/versions/2.4.0-preview1/lib
Member

mattn commented Sep 28, 2017

Linux で同様に -L=... を付けてビルドしてみましたが再現しませんでした。

 $ rbenv version
2.4.0-preview1 (set by /home/mattn/.rbenv/version)

 $ ruby --version
ruby 2.4.0preview1 (2016-06-20 trunk 55466) [x86_64-linux]

$ ./vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Sep 28 2017 19:24:59)
適用済パッチ: 1-1130
Compiled by mattn@foobar
Huge 版 without GUI.  機能の一覧 有効(+)/無効(-)
+acl             +file_in_path    +mouse_sgr       +tag_old_static
+arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           +mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     +termguicolors
-browse          -footer          +multi_byte      +terminal
++builtin_terms  +fork()          +multi_lang      +terminfo
+byte_offset     +gettext         -mzscheme        +termresponse
+channel         -hangul_input    +netbeans_intg   +textobjects
+cindent         +iconv           +num64           +timers
-clientserver    +insert_expand   +packages        +title
-clipboard       +job             +path_extra      -toolbar
+cmdline_compl   +jumplist        -perl            +user_commands
+cmdline_hist    +keymap          +persistent_undo +vertsplit
+cmdline_info    +lambda          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       -python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            +ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      +startuptime     -xpm
+eval            +mouse_dec       +statusline      -xsmp
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_clipboard
+extra_search    -mouse_jsbterm   +syntax          -xterm_save
+farsi           +mouse_netterm   +tag_binary
      システム vimrc: "$VIM/vimrc"
      ユーザー vimrc: "$HOME/.vimrc"
   第2ユーザー vimrc: "~/.vim/vimrc"
       ユーザー exrc: "$HOME/.exrc"
  デフォルトファイル: "$VIMRUNTIME/defaults.vim"
       省略時の $VIM: "/usr/local/share/vim"
コンパイル: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
リンク: gcc   -L. -L/home/mattn/.rbenv/versions/2.4.0-preview1/lib  -fstack-protector -rdynamic -Wl,-export-dynamic -L=/home/mattn/.rbenv/versions/2.4.2/include/ruby-2.4.0 -L/usr/local/lib -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -ldl       -Wl,-R/home/mattn/.rbenv/versions/2.4.0-preview1/lib -L/home/mattn/.rbenv/versions/2.4.0-preview1/lib -lruby-static -lpthread -ldl -lcrypt -lm  -L/home/mattn/.rbenv/versions/2.4.0-preview1/lib
@k-takata

This comment has been minimized.

Show comment
Hide comment
@k-takata

k-takata Sep 28, 2017

Member

-L の指定が間違っていたために、別バージョン(or 別config)のrubyのライブラリとリンクされてしまい、正しく動かなかったのではないでしょうか。

Member

k-takata commented Sep 28, 2017

-L の指定が間違っていたために、別バージョン(or 別config)のrubyのライブラリとリンクされてしまい、正しく動かなかったのではないでしょうか。

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 28, 2017

オプションの付け方が悪いのがそもそもおかしいのですが,
オプションの付け方がおかしい中でも落ちるケースと落ちないケース両方確認できたので報告しておきます

落ちるケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

落ちないケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

落ちないケースは,Core tests. でオプションがおかしいことを検出して前回の環境変数を使うようになっていました.

落ちるケースは Core tests で python関連だけエラー出てますが,
ruby だけエラーが出てず @k-takata さんの仰るとおり,期待しない ライブラリとリンクされてしまっているのではないかと思います.

ちょっと正確に理解できてないので取り消し線入れておきます.

MaxMEllon commented Sep 28, 2017

オプションの付け方が悪いのがそもそもおかしいのですが,
オプションの付け方がおかしい中でも落ちるケースと落ちないケース両方確認できたので報告しておきます

落ちるケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

落ちないケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

落ちないケースは,Core tests. でオプションがおかしいことを検出して前回の環境変数を使うようになっていました.

落ちるケースは Core tests で python関連だけエラー出てますが,
ruby だけエラーが出てず @k-takata さんの仰るとおり,期待しない ライブラリとリンクされてしまっているのではないかと思います.

ちょっと正確に理解できてないので取り消し線入れておきます.

@h-east

This comment has been minimized.

Show comment
Hide comment
@h-east

h-east Sep 29, 2017

Member

@MaxMEllon 全然関係ないですが、make distcleanするとrm src/auto/config.cacheも実施されるので、make distcleanだけでOKです。

$ make distclean
$ rm src/auto/config.cache

Member

h-east commented Sep 29, 2017

@MaxMEllon 全然関係ないですが、make distcleanするとrm src/auto/config.cacheも実施されるので、make distcleanだけでOKです。

$ make distclean
$ rm src/auto/config.cache

@MaxMEllon

This comment has been minimized.

Show comment
Hide comment
@MaxMEllon

MaxMEllon Sep 29, 2017

@h-east ご指摘ありがとうございます.修正しておきます 🙇

MaxMEllon commented Sep 29, 2017

@h-east ご指摘ありがとうございます.修正しておきます 🙇

@k-takata

This comment has been minimized.

Show comment
Hide comment
@k-takata

k-takata Oct 4, 2017

Member

原因の特定には至っていませんが、間違ったライブラリがリンクされていた可能性が高いということで閉じてしまっていいと思います。

落ちるケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

落ちないケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

(URLが同じようですが…。)

Member

k-takata commented Oct 4, 2017

原因の特定には至っていませんが、間違ったライブラリがリンクされていた可能性が高いということで閉じてしまっていいと思います。

落ちるケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

落ちないケース : https://gist.github.com/MaxMEllon/22eb2eb434aed75db74045742014ca49

(URLが同じようですが…。)

@mattn

This comment has been minimized.

Show comment
Hide comment
@mattn

mattn Oct 4, 2017

Member

そうですね。今の所、本現象が発生する人が1名だけなので、一旦閉じます。

Member

mattn commented Oct 4, 2017

そうですね。今の所、本現象が発生する人が1名だけなので、一旦閉じます。

@mattn mattn closed this Oct 4, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment