Upgrade to 7.0-RELEASE(2)

サーバをどうにか…なのだが、先に Kernel のリビルドから。手順は前回と変わらず。

6.x 系のときと同様に TCP_DROP_SYNFIN をつけると config でこける。下記のとおり 7.0 からはデフォルトとのこと。

The TCP_DROP_SYNFIN kernel option is now included in the kernel by default. The net.inet.tcp.drop_synfin sysctl variable still defaults to 0.

FreeBSD 7.0-RELEASE Release Notes

あと、"options SCTP" を残す場合は、"options INET" および "options INET6" の両方が有効でないとけいないらしい。INET6 コメントアウトした状態で SCTP 残してたら make depend は通ったけどコンパイル

/usr/src/sys/net/rtsock.c:897: undefined reference to `sctp_addr_change'

とか言われてこける。

それなりに軽量化できた。

# find /boot/kernel* -type f -name kernel -exec ls -l {} \;
-r-xr-xr-x  1 root  wheel  4401879 Apr  3 23:25 /boot/kernel/kernel
-r-xr-xr-x  1 root  wheel  9219468 Mar 30 22:59 /boot/kernel.old/kernel

で、問題は pthread がないとかいうところなのだが、某掲示板の

188 :名無しさん@お腹いっぱい。:2008/01/05(土) 07:04:58
7.0 の libpthread って、libthr にシンボリックリンクされてるんだな。
で SCHED_RR が使えない…。
これは困ったぞ。


189 :名無しさん@お腹いっぱい。:2008/01/05(土) 08:12:38
>>188
/etc/libmap.conf で libthr.so.3 のかわりに libkse.so.3 が使われるように
指定すればおk。


190 :名無しさん@お腹いっぱい。:2008/01/05(土) 09:44:06
>>189
うわー、サンクス。libkse なんてあったんや。知らんかった。
今やってみたけど、ちゃんと動いてるよ。

という情報を鵜呑みにして libmap.conf でマッピングしてみたが、

/libexec/ld-elf.so.1: /usr/lib/libkse.so.3: version LIBTHREAD_1_0 required by /usr/local/sbin/httpd not found

といわれて解決せず。うーむ。うだうだとつぎはぎだらけで復旧させてするより、いっそのことアプリごとに全部 portupgrade かけてしまうのが早いのか。

とりあえず今日はぼちぼち寝る。