configure --enable-abort

senna 1.1.4で取り込まれたokuさんによるKILLパッチについてのメモ。

configure.ac

# abort
AC_MSG_CHECKING([whether enable abort])
AC_ARG_ENABLE(abort,
  [AC_HELP_STRING([--enable-abort],
    [enable query abortion. [default=no]])],
  ,
  [enable_abort="no"])
if test "x$enable_abort" != "xno"; then
  force_enable_dynamic_malloc_change="yes"
  AC_DEFINE(USE_QUERY_ABORT, [1], [use abort])
fi
AC_MSG_RESULT($enable_abort)

"--enable-abort"でUSE_QUERY_ABORTマクロが定義される。

senna.h

#ifdef USE_QUERY_ABORT
void sen_index_set_abort_callback(sen_index *i, int (*cb)(void*), void *arg);
#endif /* USE_QUERY_ABORT */

で、APIが有効になる。

Tritonn

どうしようかな。

Tritonn配布バイナリではパッチを有効にしたい。でもソースからビルドする場合にはSennaの--enable-abortのON/OFFを考慮しないといけない(デフォルトはOFFだし)。

というわけで、

  • Tritonnのconfigureに"--enable-abort"を追加し、パッチをifdefで囲う
  • "--enable-abort"のデフォルト値はOFF
  • バイナリ配布版ではTritonn/Sennaともに"--enable-abort"をつけてビルドしたものを出す

という感じにしようかと。