NetBSD/mpc860を作るときのメモ
なにはなくとも、まずは20070526-UTCなソースを準備します。
macppc-070526.tar.gzをテンポラリで展開し、hfs関連を削除しておきます。
具体的には二つのディレクトリ(sbin/mount_hfs, sys/fs/hfs)を削除します。
20070526-UTCなソースにrm -rf sys/arch/powerpc,macppcします。
hfs抜きのmacppc-070526.tar.gzを展開します。
mpc860-070526.tar.gzを展開します。
etc, distrib関連のファイルを作成します。
macppc-070526.tar.gzをテンポラリで展開し、hfs関連を削除しておきます。
具体的には二つのディレクトリ(sbin/mount_hfs, sys/fs/hfs)を削除します。
20070526-UTCなソースにrm -rf sys/arch/powerpc,macppcします。
hfs抜きのmacppc-070526.tar.gzを展開します。
mpc860-070526.tar.gzを展開します。
etc, distrib関連のファイルを作成します。
- distrib/sets/lists/base/md.mpc860
- distrib/sets/lists/comp/md.mpc860
- etc/etc.mpc860/MAKEDEV.conf
- etc/etc.mpc860/Makefile.inc
- etc/etc.mpc860/ttys
--- ./tools/Makefile.disklabel.orig 2007-09-26 02:36:32.000000000 +0900
+++ ./tools/Makefile.disklabel 2007-09-26 02:40:01.000000000 +0900
@@ -12,6 +12,8 @@
_ARCH_INCS+= ews4800mips/include/pdinfo.h ews4800mips/include/vtoc.h
+_ARCH_INCS+= powerpc/include/reloc.h mpc860/include/reloc.h
+
_INCS= disktab.h
_SYSINCS= bootblock.h \
disklabel.h disklabel_acorn.h disklabel_gpt.h dkbad.h
Makefile.mpc860.diffにパッチをあてます。toolsで作ったものを使うように変更します。
--- ./sys/arch/mpc860/conf/Makefile.mpc860.orig 2007-09-21 22:54:39.000000000 +0900
+++ ./sys/arch/mpc860/conf/Makefile.mpc860 2007-09-26 03:03:01.000000000 +0900
@@ -17,19 +17,19 @@
# DEBUG is set to -g if debugging.
# PROF is set to -pg if profiling.
-AR?= ar
-AS?= as
-CC?= cc
-CPP?= cpp
-LD?= ld
-LORDER?=lorder
-MKDEP?= mkdep
-NM?= nm
-OBJCOPY?=objcopy
-RANLIB?=ranlib
-SIZE?= size
-STRIP?= strip
-TSORT?= tsort -q
+AR= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-ar
+AS= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-as
+CC= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-gcc
+CPP= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-cpp
+LD= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-ld
+LORDER=${TOOLDIR}/bin/nblorder
+MKDEP= ${TOOLDIR}/bin/nbmkdep
+NM= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-nm
+OBJCOPY=${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-objcopy
+RANLIB=${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-ranlib
+SIZE= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-size
+STRIP= ${TOOLDIR}/bin/${MACHINE_ARCH}--netbsd-strip
+TSORT= ${TOOLDIR}/bin/nbtsort -q
COPTS?= -O2 -pipe
@@ -127,7 +127,7 @@
%LOAD
assym.h: ${PPC}/mpc860/genassym.cf
- genassym ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \
+ ${TOOLDIR}/bin/nbgenassym ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} \
< ${PPC}/mpc860/genassym.cf > assym.h.tmp && \
mv -f assym.h.tmp assym.h
@@ -188,7 +188,7 @@
.if ${SFILES} != ""
${MKDEP} -a -- ${AFLAGS} ${CPPFLAGS} ${SFILES}
.endif
- genassym ${MKDEP} -f assym.dep -- ${CFLAGS} \
+ ${TOOLDIR}/bin/nbgenassym ${MKDEP} -f assym.dep -- ${CFLAGS} \
${CPPFLAGS} < ${PPC}/mpc860/genassym.cf
@sed -e 's/.*\.o:.*\.c/assym.h:/' < assym.dep >> .depend
@rm -f assym.dep
ad.powerpcにパッチです。checkflistを通すためにごりごり書いています。--- ./distrib/sets/lists/comp/ad.powerpc.orig 2007-10-03 10:30:50.000000000 +0900 +++ ./distrib/sets/lists/comp/ad.powerpc 2007-10-01 02:30:20.000000000 +0900 @@ -6,7 +6,6 @@ ./usr/include/powerpc/ansi.h comp-c-include ./usr/include/powerpc/aout_machdep.h comp-c-include ./usr/include/powerpc/asm.h comp-c-include -./usr/include/powerpc/atomic.h comp-c-include ./usr/include/powerpc/bat.h comp-obsolete obsolete ./usr/include/powerpc/bswap.h comp-c-include ./usr/include/powerpc/bus.h comp-obsolete obsolete @@ -20,11 +19,6 @@ ./usr/include/powerpc/frame.h comp-c-include ./usr/include/powerpc/hid.h comp-obsolete obsolete ./usr/include/powerpc/hid_601.h comp-obsolete obsolete -./usr/include/powerpc/ibm4xx comp-c-include -./usr/include/powerpc/ibm4xx/cpu.h comp-c-include -./usr/include/powerpc/ibm4xx/pmap.h comp-c-include -./usr/include/powerpc/ibm4xx/pte.h comp-obsolete obsolete -./usr/include/powerpc/ibm4xx/tlb.h comp-c-include ./usr/include/powerpc/ieee.h comp-c-include ./usr/include/powerpc/ieeefp.h comp-c-include ./usr/include/powerpc/int_const.h comp-c-include @@ -32,6 +26,7 @@ ./usr/include/powerpc/int_limits.h comp-c-include ./usr/include/powerpc/int_mwgwtypes.h comp-c-include ./usr/include/powerpc/int_types.h comp-c-include +./usr/include/powerpc/ipkdb.h comp-c-include ./usr/include/powerpc/kcore.h comp-c-include ./usr/include/powerpc/limits.h comp-c-include ./usr/include/powerpc/lock.h comp-c-include @@ -47,18 +42,10 @@ ./usr/include/powerpc/mpc6xx/sr_601.h comp-obsolete obsolete ./usr/include/powerpc/mpc6xx/vmparam.h comp-obsolete obsolete ./usr/include/powerpc/mutex.h comp-c-include -./usr/include/powerpc/oea comp-c-include -./usr/include/powerpc/oea/bat.h comp-c-include -./usr/include/powerpc/oea/hid.h comp-c-include -./usr/include/powerpc/oea/hid_601.h comp-c-include -./usr/include/powerpc/oea/pmap.h comp-c-include -./usr/include/powerpc/oea/pte.h comp-c-include -./usr/include/powerpc/oea/sr_601.h comp-c-include -./usr/include/powerpc/oea/vmparam.h comp-c-include ./usr/include/powerpc/param.h comp-c-include ./usr/include/powerpc/pcb.h comp-c-include +./usr/include/powerpc/pio.h comp-c-include ./usr/include/powerpc/pmap.h comp-c-include -./usr/include/powerpc/pmc.h comp-c-include ./usr/include/powerpc/proc.h comp-c-include ./usr/include/powerpc/profile.h comp-c-include ./usr/include/powerpc/psl.h comp-c-include @@ -69,7 +56,6 @@ ./usr/include/powerpc/rwlock.h comp-c-include ./usr/include/powerpc/setjmp.h comp-c-include ./usr/include/powerpc/signal.h comp-c-include -./usr/include/powerpc/spr.h comp-c-include ./usr/include/powerpc/stdarg.h comp-c-include ./usr/include/powerpc/trap.h comp-c-include ./usr/include/powerpc/types.h comp-c-includebuild.shにパッチをあてます。mpc860を追加するだけです。
--- ./build.sh.orig 2007-09-21 10:05:31.000000000 +0900
+++ ./build.sh 2007-09-21 22:54:10.000000000 +0900
@@ -336,7 +336,7 @@
MACHINE_ARCH=powerpc64
;;
- amigappc|bebox|evbppc|ibmnws|macppc|mvmeppc|ofppc|pmppc|prep|sandpoint)
+ amigappc|bebox|evbppc|ibmnws|macppc|mpc860|mvmeppc|ofppc|pmppc|prep|sandpoint)
MACHINE_ARCH=powerpc
;;
ip_compat.hにパッチをあてます。caddr_tの重複定義を回避するんですがよくわかりません。
--- ./sys/dist/ipf/netinet/ip_compat.h.orig 2007-09-26 08:30:22.000000000 +0900
+++ ./sys/dist/ipf/netinet/ip_compat.h 2007-10-01 04:39:47.000000000 +0900
@@ -737,7 +737,10 @@
# define GETKTIME(x) microtime((struct timeval *)x)
# define IPF_PANIC(x,y) if (x) { printf y; panic("ipf_panic"); }
#if __NetBSD_Version__ >= 499001000
+#ifndef CADDR_T_DEFINED
+#define CADDR_T_DEFINED
typedef unsigned char * caddr_t;
+#endif
# define COPYIN(a,b,c) copyin((a), (b), (c))
# define COPYOUT(a,b,c) copyout((a), (b), (c))
# define BCOPYIN(a,b,c) bcopy((a), (b), (c))
types.hへのパッチです。ip_compat.hと対です。
--- ./sys/arch/powerpc/include/types.h.orig 2007-09-26 08:31:26.000000000 +0900
+++ ./sys/arch/powerpc/include/types.h 2007-09-26 09:41:28.000000000 +0900
@@ -41,9 +41,12 @@
#if defined(_KERNEL) || defined(_STANDALONE)
#ifndef caddr_t
typedef char *caddr_t; /* core address */
+#ifndef CADDR_T_DEFINED
+#define CADDR_T_DEFINED
#define caddr_t __caddr_t
#endif
#endif
+#endif
#ifdef _KERNEL
typedef struct label_t {
これでbuild.shでreleaseまで一直線のはず。コメント(0件)
- TB-URL http://www.tokuda.net/diary/0353/tb/