# find /tmp/usr/local ! -type d (何も出力されないことを確認) # make PREFIX=/tmp/usr/local package # pkg_delete hoge_pkg_name # pkg_add /hoge_pkg_dir/hoge_pkg_name.tgz # pkg_delete hoge_pkg_name # find /tmp/usr/local ! -type d (何も出力されないことを確認)
# find /tmp/usr/X11R6 ! -type d (何も出力されないことを確認) # make DESTDIR=/tmp PREFIX=/tmp/usr/X11R6 package # pkg_delete hoge_pkg_name # pkg_add /hoge_pkg_dir/hoge_pkg_name.tgz # pkg_delete hoge_pkg_name # find /tmp/usr/X11R6 ! -type d (何も出力されないことを確認)
現在多くのシステムは浮動小数点例外を IEEE 754 で扱うのですが、 FreeBSD では旧来の SIGFPE を発生します。他のシステムでは、無限大 (Inf, -Inf) なり非数値数 (NaN) を返して通常処理になるところが、 SIGFPE のデフォルト動作はcore dump なので落ちます。
FreeBSD で他のシステムの振舞に合わせる場合、次 のようなコードを main の入口と出口に入れるといいかもしれません。
#ifdef __FreeBSD__
#include <floatingpoint.h>
#endif
#ifdef __FreeBSD__
/* allow divide by zero -- Inf */
fpsetmask(fpgetmask() & ~(FP_X_DZ|FP_X_INV));
#endif
:
#ifdef __FreeBSD__
fpresetsticky(FP_X_DZ|FP_X_INV);
fpsetmask(FP_X_DZ|FP_X_INV);
#endif