FrontPage / IRC / FreeBSD環境でircd2.11.0コンパイル失敗する

 * FreeBSD 7.X で ircd2.11.0 をコンパイル [#b2a75998]
 * FreeBSD 7.X で ircd2.11.0 をコンパイルに失敗する [#b2a75998]
 
 今回実験した環境は
 
  $ uname -a
  FreeBSD * 7.1-RELEASE FreeBSD 7.1-RELEASE #5: Tue Jan  6 02:28:50 JST 2009
 
 ちょっと古いircdだが、[[ircd2.11.0+jp8.tgz:http://tomocha.net/docs/irc/archives/irc2.11.0+jp8.tgz]]を使った際、makeできない問題があった。同様に、ircd2.11.1p0 でも同様の問題が確認されている。
 
  gcc  -o ircd bsd.o dbuf.o packet.o send.o match.o parse.o  support.o version.o channel.o \
   class.o hash.o ircd.o list.o res.o s_auth.o  s_bsd.o s_conf.o s_debug.o s_err.o s_id.o \
   s_misc.o s_numeric.o  s_send.o s_serv.o s_service.o s_user.o s_zip.o whowas.o  res_init.o \
   res_comp.o res_mkquery.o -lz  -lcrypt
  hash.o(.text+0x10cc): In function `bigger_prime':
  ../ircd/hash.c:219: undefined reference to `sqrt'
  ircd.o(.text+0x4e9): In function `calculate_preference':
  ../ircd/ircd.c:388: undefined reference to `pow'
  s_bsd.o(.text+0x2791): In function `read_message':
  ../ircd/s_bsd.c:3237: undefined reference to `pow'
 
 原因は、解決方法としては、libm が足りないため、Makefileに追加する。~
 FreeBSD6.4 までは問題が出ていないが、FreeBSD7.X以降でこの問題が出るようになっているため、どこかの仕様変更があったのではないかと思われる。
 
 
  *** Makefile.orig     2009-01-14 13:13:28.000000000 +0900
  --- Makefile   2009-01-14 13:14:07.000000000 +0900
  ***************
  *** 42,48 ****
    LDFLAGS =
    # required libraries, except zlib
    LIBS = -lcrypt
  ! MATHLIBS =
    # zlib, eventually
    ZLIBS = -lz
    # for DSM support (dlopen(), dlsym(), dlclose())
  --- 42,48 ----
    LDFLAGS =
    # required libraries, except zlib
    LIBS = -lcrypt
  ! MATHLIBS = -lm
    # zlib, eventually
    ZLIBS = -lz
    # for DSM support (dlopen(), dlsym(), dlclose())
 
 とすればよい。この辺についての詳細は、man pow を参照されたし。
 
 尚、ircd2.11.1 以降では修正されていた。
 
 
 ** 関連サイト [#m53633a0]
 
 - [[IRCサーバのインストール - しもめも:http://d.hatena.ne.jp/kshimo69/20070622/p1]]
 
 
 ** コメント [#v2612251]
 
 #comment
TOPページへ戻るページの更新   ページの編集新しいページの作成新しい下位ページの作成そのページを引用して新規作成そのページにファイルの添付ページの削除ページ名の変更前回の編集内容の表示バックアップページの参照ページへのリンク元を表示   サイトのページ一覧サイト内単語検索編集したページの履歴削除したページの履歴   別ウィンドウでマニュアルページへ