NetBSD/mpc860を作るときのメモ
2007/10/08(月) 24:48 NetBSD はてブ情報 はてブに登録 はてブ数

なにはなくとも、まずは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関連のファイルを作成します。
  • 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にパッチをあてます。reloc.hがちゃんとコピーされるようにするものです。
--- ./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-include
build.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まで一直線のはず。

名前:  非公開コメント   

  • TB-URL  http://www.tokuda.net/diary/0353/tb/