M's Diary -- 2002年5月上旬 --

Last-modified: Thu, 26 Dec 2002 13:41:34 JST
powered by tds-1.7.4 [static,cache:on]
前月 2002/5 翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

2002年 5月 2日 (木)

NetBSD おぼえがき : USETOOLS=yes な cross build

_ ホストマシン

MKOBJ=			yes
MKOBJDIRS=		yes
USETOOLS?=		yes
MKTOOLS?=		yes

を /etc/mk.conf に書いておく。

#!/bin/sh
export LANG=C
portname=sparc

export MAKEOBJDIRPREFIX=/usr/obj/${portname}
export DESTDIR=/usr/cross/${portname}/dest
export TOOLDIR=/usr/tools/${portname}

[ ! -d $DESTDIR ] && mkdir -p $DESTDIR
[ ! -d $TOOLDIR ] && mkdir -p $TOOLDIR 
[ ! -d /usr/obj/${portname} ] && mkdir -p /usr/obj/${portname}

./build.sh -d -m ${portname} -R /usr/cross/${portname}/release

を走らせる。 4/30 の NetBSD current では dreamcast と playstation2 は make release まで完了。 sparc は make build までは OK だけど make release が miniroot 作成のところで NG。

_ ターゲットマシン

/etc/mk.conf に

MKOBJ=			yes
MKOBJDIRS=		yes
USETOOLS?=		yes
MKTOOLS?=		yes
TOOLDIR?=		/usr/tools/sparc

と書き、あらかじめ tools を build しておく。 USETOOLS=no では make install が途中で止まってしまうため。

# mount host:/usr/src /usr/src
# mount host:/usr/obj /usr/obj
# cd /usr/src
# make MKTOOLS=no MAKEOBJDIRPREFIX=/usr/obj/sparc includes
# make MKTOOLS=no MAKEOBJDIRPREFIX=/usr/obj/sparc install

MKTOOLS=no は tools を build し直すのを防ぐため。

_ kernel build

#!/bin/sh
export LANG=C

export MACHINE=sparc
export MACHINE_ARCH=sparc

TARGET=/usr/tools/sparc/bin/sparc--netbsdelf

export AR=${TARGET}-ar
export AS=${TARGET}-as
export CC=${TARGET}-gcc
export CPP=${TARGET}-cpp
export CXX=${TARGET}-c++
export LD=${TARGET}-ld
export NM=${TARGET}-nm
export RANLIB=${TARGET}-ranlib
export SIZE=${TARGET}-size
export STRIP=${TARGET}-strip
export OBJCOPY=${TARGET}-objcopy

make $*

というスクリプト (/foo/sparcmake.sh) を用意しておく。ホストマシンで

# cd /usr/src/sys/arch/sparc/conf
# config MYKERNEL
# cd ../compile/MYKERNEL
# /foo/sparcmake.sh depend
# /foo/sparcmake.sh

を実行。ターゲットでは普通に make install するだけ。

_ メモ

MAKEOBJDIRPREFIX
NetBSD では MAKEOBJDIRPREFIX を指定しない限り /usr/src の下に /usr/obj の下への symlink がいっぱい作られてしまう。 OBJMACHINE を指定すれば obj ではなく obj.${MACHINE} で symlink されるので異なる port を同じ ソースツリーで build しても大丈夫ではある。
USETOOLS=no で make install できない
これは非常に痛い。 tools はその性格上、実行するマシン (か同じ port のマシン) で作成する必要がある。遅いマシンで tools を build するのは非常に時間がかかる。 MKTOOLS=no で tools を再 build するのを最小限に抑えていくことはできるけど。
cross/mipsEEel-netbsd package
playstation2 port がターゲットのときは、 make release 相当を行うとき*1に cross/mipsEEel-netbsd の package をインストールしておく必要がある。

*1:kernel build で使うので make build 相当の段階では必要ない。


2002年 5月 4日 (土)

この日記

に書く内容と某所に書く内容との区別がちょっとわかりにくいかもしれません。

この日記
BSD 関係やネットワーク関係での出来事、コミックやゲーム関係の話題。
某所
それ以外の内容

という感じで使い分けて *1いるつもりです。


*1:したがって、某所には *BSD 関係の話題は書くつもりはありません :-)。

今日の出来事

_ 買い物

近所の本屋にて。

江洲さんも 書いているけど、最近のカレカノは今一つという気がする。

Web 日記から

_ 某つながり

TF さんとこから。最近は寮や運動会関係のイベントにほとんど行ってないからわからないかも。 山中へも最近はあまり行ってないからなぁ...。


2002年 5月 5日 (日)

FreeBSD

_ CVS

www/en/cgi/cvsweb.conf rev 1.20の commit log で指摘されている、 CVSweb で $FreeBSD$ タグの展開がおかしくなる件について調べてみた。

してある状態で、

% cvs -R -d /home/ncvs co src/Makefile
% head -2 src/Makefile
#
# $FreeBSD: src/Makefile,v 1.253 2002/04/30 11:50:01 ru Exp $
			<-- 正常
% cvs -R -d /home/ncvs -q co -p src/Makefile | head -2
#
# $FreeBSD: /foo/ncvs/src/Makefile,v 1.253 2002/04/30 11:50:01 ru Exp $
			<-- symlink 先を -d で指定して cvs co -p すると変
% cvs -R -d /foo/ncvs -q co -p src/Makefile | head -2
#
# $FreeBSD: src/Makefile,v 1.253 2002/04/30 11:50:01 ru Exp $
			<-- symlink 先でなければ cvs co -p でも大丈夫

_ fix

-p を指定するかしないかで $FreeBSD$ (や CVSHeader) の展開が変わって しまうのは CVS のバグだろう。

CVSweb 側の対策としては symlink 先を指定しなければいいので、 cvs -d $cvsroot co -p する個所で

use Cwd 'abs_path';
exec($CMD{cvs}, @cvs_options, '-d', abs_path($cvsroot),
    'co', '-p', $revopt, $where);

とすれば大丈夫そう。


2002年 5月 7日 (火)

Web 日記から

_ 聖蹟桜ヶ丘

五反田さんとこのネタ。聖蹟桜ヶ丘は京王がショッピングセンター *1作る前からそれなりに乗降客が多かった記憶があります。多摩ニュータウン北部に行く バスターミナルとして機能していたからでしょう。京王線が特急運転開始した当時 *2から特急が停車するなど昔から優等列車が停車しているのは、 駅の東側にある多摩川の橋の部分が単線だった *3ためかな。


*1:京王はけっこう宣伝してるのだが、いまいちセンスがないのでわざわざ下車して 行くほどの価値は見いだせなかったりする。デパート行くなら新宿に出ちゃうな。
*2:昭和 38 年 10 月開始。
*3:昭和 39 年に複線化。

今日の出来事

_ TDS

日記システムに使っている TDS を 1.7.4 にバージョンアップ。

_ 買い物


2002年 5月 9日 (木)

今日の出来事

_ 藍青 #5

録画失敗。予約の日付が 2003 年になってた。

_ 買い物

近所の本屋にて

T-ZONE

_ メンバーズカード終了

とのこと。 1,583 ポイントあるので 7/31 までに使わなければならないなぁ。

FreeBSD

_ CVSweb

回りで作業ちょこちょこ。

_ CVS のタグ

src/contrib/cvs/src/rcs.cの RCS_check_tag() より:

である文字列。 CVSweb で表示するときに特別な意味をもつ文字列 *1でも CVS 的には許される。


*1: HTML のタグとか


以上、5日分です。