舊版的 Makefile 中是:
# This port has a problem with -pthread,
# force to use -lthr until it's not fixed.
.if ${OSVERSION} >= 601000
PTHREAD_LIBS= -lthr
.endif
# Maybe the port is broken for
# FreeBSD 5.2.1 since -lc_r
# and -pthread have both issues there.
.if ${OSVERSION} == 502010
PTHREAD_LIBS= -pthread
.endif
而 0.92.1 中的 Makefile 是:
# This port has a problem with -pthread,
# force to use -lthr until it's not fixed.
.if ${OSVERSION} >= 601000
PTHREAD_LIBS= -lthr
.else
PTHREAD_LIBS= -lpthread
.endif
也就是,有關 PTHREAD_LIBS 的部份,舊版的針對 6.x 版和 5.x 版指定,4.x 版並不會去指定任何參數;而新版的則是 6.x 版指定為 -lthr,其它的通通指定為 -lpthread,這個 -lpthread 就是在 configure 時卡住的原因。
試著把 Makefile 中 PTHREAD_LIBS= -lpthread 那行加上井字號註解掉,果然就順利的編譯完成。不過,它似乎沒有判斷版本衝突的問題,因此,安裝前要記得先把舊版的 clamav 移除掉後再下 make install。
另外,由於 FreeBSD 4.x 上的 rc.subr 以 ports 裝完,路徑應該是 /usr/local/etc/rc.subr,所以 /usr/local/etc/rc.d/clamav* 也要記得將 /etc/rc.subr 改為 /usr/local/etc/rc.subr,不然,啟動時會發生錯誤。
沒有留言:
張貼留言