LoginSignup
0
0

More than 3 years have passed since last update.

Ruby-FFI は --enabe-system-libffi 明示した方が良さそう

Last updated at Posted at 2019-08-13

注記の追記

Windows だと本家の libffi は(一部)誤動作するようです。
Ruby-FFI が引用する libffi fork は Windows 向け fix が入っていて、本家にも PR してるけど、2019-08-13 現在まだ merge されていません。

要約

  • AWS A1 Instance で Ruby-FFI が seg fault したよ
  • Amazon Linux 2 の libffi-devel を使ったら seg fault しなかったよ
  • Ruby-FFI は内部に支流の libffi を持ってるよ
  • Ruby-FFI はシステムに libffi-devel 等が無い場合、内部の libffi をリンクするよ
  • Ruby-FFI では --enable-system-libffi を付けるとシステムの libffi の利用を強制できるよ

解法

with bundler

$ bundle config build.ffi --enable-system-libffi

ところで

支流の libffi とは

Ruby-FFI の .gitmodules に書いてあるリポジトリが http://sourceware.org/libffi/ に書いてあるリポジトリと違うので、支流と呼んでみました。
(前者は後者を fork したもののようです。)

--enable-system-libffi について

extconf.rb にて enable_config() で参照されています。
changelog によれば 2019-05-17 に追加されたようです。デキタテホヤホヤ。

なぜ初手で libffi-devel をインストールしなかったのか

数年前に Rails セットアップの最小手順を模索した際に、各 devel パッケージを yum install から除外してみて不都合ないか確認した結果、libffi-devel 要らねってなったのです。
当時は nokogiri に --use-system-libraries つけてなかったり、まぁ、トレンドは変わるのですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0