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.hMakefile.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.depad.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/