小崎です 識者の方、教えてください さいきん、 -Werror-implicit-function-declaration オプションの影響により、configure.in中の出来の良くない テストが include忘れやら、関数のプロトタイプ宣言忘れやらで誤判定されてるケースがいくつか見つかり 自分の環境で config.log をチェックしなおしたのですが、1つ意図の分からない箇所があります。 Linuxではdaemon関数が存在するにもかかわらず、AC_CHECK_FUNCS(daemon) が偽になるので 調べたところ、どうも以下のコミットにより強制的に無効にされているようです。 さて 1.無効にしている理由はなんでしょうか? 2.手動でON/OFFを切り替えるなら AC_CHECK_FUNCS()からdaemonを抜いていないのは何故でしょうか? 以上2点の意図を教えてください。rubyはdaemonなかったら自前で同等処理を行うので実害はなさそうなのですが、 意図がわからないとどうにもレビューのしようが・・・・とかそういう問題がありまして。 お手数ですが、よろしくお願いいたします。 commit 9bb7a8ccddf15537da6af71e594322f2519350f7 Author: nobu <nobu / b2dd03c8-39d4-4d8f-98ff-823fe69b080e> Date: Sat Apr 25 09:21:49 2009 +0000 * configure.in (ac_cv_func_daemon): use daemon(3) only on *BSD. * process.c (proc_daemon): double fork to ensure not having ctty. [ruby-core:23311] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e diff --git a/configure.in b/configure.in index 127901f..fe99222 100644 --- a/configure.in +++ b/configure.in @@ -728,6 +728,14 @@ AC_ARG_ENABLE(pthread, dnl Checks for libraries. case "$target_os" in +when(*bsd*|dragonfly*) + ;; +when(*) + ac_cv_func_daemon=no + ;; +esac + +case "$target_os" in when(nextstep*) ;; when(openstep*) ;; when(rhapsody*) ;; @@ -744,7 +752,6 @@ when(darwin*) RUBY_PREPEND_OPTION(LIBS, -lobjc) AC_MSG_RESULT($macosx_10_5) if test $macosx_10_5 = yes; then ac_cv_header_ucontext_h=no - ac_cv_func_daemon=no else AC_DEFINE(BROKEN_SETREUID, 1) AC_DEFINE(BROKEN_SETREGID, 1)