小崎です
識者の方、教えてください

さいきん、 -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)