Talk:NetBSD 0.8
tty.c needs to cantain a bit more than "revision 1.4 intentionally removed" to compile a 0.8 kernel
The originals for these are missing in the tarball:
/netbsd-0.8/src/src/bin/df/df.c /netbsd-0.8/src/src/include/ar.h /netbsd-0.8/src/src/include/assert.h /netbsd-0.8/src/src/include/ctype.h /netbsd-0.8/src/src/include/grp.h /netbsd-0.8/src/src/include/nlist.h /netbsd-0.8/src/src/include/protocols/dumprestore.h /netbsd-0.8/src/src/include/pwd.h /netbsd-0.8/src/src/include/setjmp.h /netbsd-0.8/src/src/include/time.h /netbsd-0.8/src/src/include/utmp.h /netbsd-0.8/src/src/lib/libc/gen/ctype_.c /netbsd-0.8/src/src/lib/libc/gen/isctype.c /netbsd-0.8/src/src/sbin/restore/dirs.c /netbsd-0.8/src/src/sbin/restore/pathnames.h /netbsd-0.8/src/src/sbin/restore/restore.h /netbsd-0.8/src/src/sbin/restore/tape.c /netbsd-0.8/src/src/sys/arch/i386/i386/conf.c /netbsd-0.8/src/src/sys/conf/param.c /netbsd-0.8/src/src/sys/kern/init_main.c /netbsd-0.8/src/src/sys/kern/kern_acct.c /netbsd-0.8/src/src/sys/kern/kern_clock.c /netbsd-0.8/src/src/sys/kern/kern_descrip.c /netbsd-0.8/src/src/sys/kern/kern_exit.c /netbsd-0.8/src/src/sys/kern/kern_fork.c /netbsd-0.8/src/src/sys/kern/kern_prot.c /netbsd-0.8/src/src/sys/kern/kern_resource.c /netbsd-0.8/src/src/sys/kern/kern_sig.c /netbsd-0.8/src/src/sys/kern/kern_subr.c /netbsd-0.8/src/src/sys/kern/kern_synch.c /netbsd-0.8/src/src/sys/kern/subr_disk.c /netbsd-0.8/src/src/sys/kern/subr_prf.c /netbsd-0.8/src/src/sys/kern/sys_generic.c /netbsd-0.8/src/src/sys/kern/sys_process.c /netbsd-0.8/src/src/sys/kern/sysv_shm.c /netbsd-0.8/src/src/sys/kern/tty.c /netbsd-0.8/src/src/sys/kern/tty_conf.c /netbsd-0.8/src/src/sys/kern/vfs_lookup.c /netbsd-0.8/src/src/sys/kern/vfs_subr.c /netbsd-0.8/src/src/sys/kern/vfs_syscalls.c /netbsd-0.8/src/src/sys/kern/vfs_vnops.c /netbsd-0.8/src/src/sys/sys/acct.h /netbsd-0.8/src/src/sys/sys/buf.h /netbsd-0.8/src/src/sys/sys/callout.h /netbsd-0.8/src/src/sys/sys/conf.h /netbsd-0.8/src/src/sys/sys/dkstat.h /netbsd-0.8/src/src/sys/sys/errno.h /netbsd-0.8/src/src/sys/sys/exec.h /netbsd-0.8/src/src/sys/sys/fcntl.h /netbsd-0.8/src/src/sys/sys/ioctl.h /netbsd-0.8/src/src/sys/sys/ioctl_compat.h /netbsd-0.8/src/src/sys/sys/ipc.h /netbsd-0.8/src/src/sys/sys/kernel.h /netbsd-0.8/src/src/sys/sys/param.h /netbsd-0.8/src/src/sys/sys/proc.h /netbsd-0.8/src/src/sys/sys/shm.h /netbsd-0.8/src/src/sys/sys/signal.h /netbsd-0.8/src/src/sys/sys/stat.h /netbsd-0.8/src/src/sys/sys/systm.h /netbsd-0.8/src/src/sys/sys/timeb.h /netbsd-0.8/src/src/sys/sys/times.h /netbsd-0.8/src/src/sys/sys/tty.h /netbsd-0.8/src/src/sys/sys/ttydefaults.h /netbsd-0.8/src/src/sys/sys/types.h /netbsd-0.8/src/src/sys/ufs/dir.h /netbsd-0.8/src/src/sys/ufs/ufs_lookup.c /netbsd-0.8/src/src/sys/ufs/ufs_vfsops.c /netbsd-0.8/src/src/usr.bin/m4/serv.c /netbsd-0.8/src/src/usr.bin/mesg/mesg.c /netbsd-0.8/src/src/usr.sbin/lpr/common_source/common.c /netbsd-0.8/src/src/usr.sbin/lpr/lpr/lpr.c
Dugo 14:45, 2 December 2010 (UTC)
I've used lots of Net/2 to fill in missing bits for the kernel... I'm building it on NetBSD 0.9
netbsd# make loading 386bsd locore.o: Undefined symbol _asintr referenced from text segment locore.o: Undefined symbol _comintr referenced from text segment locore.o: Undefined symbol _comintr referenced from text segment locore.o: Undefined symbol _weintr referenced from text segment locore.o: Undefined symbol _neintr referenced from text segment locore.o: Undefined symbol _ecintr referenced from text segment locore.o: Undefined symbol _isintr referenced from text segment locore.o: Undefined symbol _wtintr referenced from text segment init_main.o: Undefined symbol ___main referenced from text segment init_main.o: Undefined symbol _cinit referenced from text segment kern__physio.o: Undefined symbol _uioapply referenced from text segment kern__physio.o: Undefined symbol _uioapply referenced from text segment kern_execve.o: Undefined symbol _fdcloseexec referenced from text segment tty.o: Undefined symbol _ndflush referenced from text segment tty.o: Undefined symbol _ndflush referenced from text segment tty.o: Undefined symbol _ndflush referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _catq referenced from text segment tty.o: Undefined symbol _getc referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _unputc referenced from text segment tty.o: Undefined symbol _unputc referenced from text segment tty.o: Undefined symbol _getc referenced from text segment tty.o: Undefined symbol _unputc referenced from text segment tty.o: Undefined symbol _unputc referenced from text segment tty.o: Undefined symbol _unputc referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _catq referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _b_to_q referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _getc referenced from text segment tty.o: Undefined symbol _putc referenced from text segment tty.o: Undefined symbol _b_to_q referenced from text segment tty.o: Undefined symbol _nextc referenced from text segment tty.o: Undefined symbol _nextc referenced from text segment tty.o: Undefined symbol _nextc referenced from text segment tty_pty.o: Undefined symbol _getc referenced from text segment tty_pty.o: Undefined symbol _getc referenced from text segment tty_pty.o: Undefined symbol _q_to_b referenced from text segment tty_pty.o: Undefined symbol _b_to_q referenced from text segment tty_pty.o: More undefined symbol _putc refs follow tty_pty.o: Undefined symbol _getc referenced from text segment vfs_conf.o: Definition of symbol _mountroot (multiply defined) ufs_bmap.o: Undefined symbol _blkclr referenced from text segment ufs_bmap.o: Undefined symbol _blkclr referenced from text segment ufs_bmap.o: Undefined symbol _blkclr referenced from text segment ufs_bmap.o: Undefined symbol _blkclr referenced from text segment ufs_vnops.o: Undefined symbol _blkclr referenced from text segment fd.o: Undefined symbol _isa_biotab_fdc referenced from text segment fd.o: Undefined symbol _isa_biotab_fdc referenced from text segment fd.o: Undefined symbol _disksort referenced from text segment wd.o: Undefined symbol _isa_biotab_wdc referenced from text segment wd.o: Undefined symbol _isa_biotab_wdc referenced from text segment wd.o: Undefined symbol _bounds_check_with_label referenced from text segment wd.o: Undefined symbol _diskerr referenced from text segment wd.o: Undefined symbol _diskerr referenced from text segment wd.o: Undefined symbol _diskerr referenced from text segment wd.o: Undefined symbol _readdisklabel referenced from text segment wd.o: Undefined symbol _setdisklabel referenced from text segment wd.o: Undefined symbol _setdisklabel referenced from text segment wd.o: Undefined symbol _writedisklabel referenced from text segment ioconf.o: Undefined symbol _Xwdc0 referenced from data segment ioconf.o: Undefined symbol _Xfdc0 referenced from data segment ioconf.o: Undefined symbol _Xpc0 referenced from data segment ioconf.o: Undefined symbol _Xnpx0 referenced from data segment conf.o: Undefined symbol _wdread referenced from data segment conf.o: Undefined symbol _wdwrite referenced from data segment conf.o: Undefined symbol _fdread referenced from data segment conf.o: Undefined symbol _fdwrite referenced from data segment swap386bsd.o: Definition of symbol _mountroot (multiply defined) *** Error code 1
I've managed to get it that far... There certainly is some issues related to the tty stuff, I gave up on tty_ring.o so that is why that is all messed up.. I also renamed read/set/writedisklabel to prevent a headder clash....
From my notes...
makefile changes: S= ../../../.. I386= ../.. cd /usr/src/sys/arch/i386 ln -s /usr/src/sys/sys . cd /usr/src/sys/arch/i386/compile/J ln -s /usr/src/sys/arch/i386 . cd /usr/src/sys ln -s arch/i386 .
I had to take the vector.s from 386BSD and put it in the build directory,
Im using the config from NetBSD 0.9, as the 0.8 version I built just coredumps.... (I bought in the include from 0.8 but it's missing far too much.. )
oh and my config:
machine "i386" cpu "i386" ident GENERIC timezone 5 dst maxusers 10 #options INET,ISOFS,NFSCLIENT #options INET #options "COMPAT_43" #options "TCP_COMPAT_42" #options XSERVER,UCONSOLE #options UCONSOLE #options PCFS,KERNFS #options KERNFS config "386bsd" root on wd0 swap on wd0 controller isa0 controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr disk wd0 at wdc0 drive 0 disk wd1 at wdc0 drive 1 controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr disk fd0 at fdc0 drive 0 device pc0 at isa? port "IO_KBD" tty irq 1 vector pcrint device npx0 at isa? port "IO_NPX" irq 13 vector npxintr #device com0 at isa? port "IO_COM1" tty irq 4 vector comintr #device com1 at isa? port "IO_COM2" tty irq 3 vector comintr #device we0 at isa? port 0x280 net irq 2 iomem 0xd0000 iosiz 8192 vector weintr #device ne0 at isa? port 0x320 net irq 10 vector neintr #device ec0 at isa? port 0x250 net irq 2 iomem 0xd8000 iosiz 8192 vector ecintr #device is0 at isa? port 0x320 net irq 10 drq 7 vector isintr #device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr pseudo-device loop pseudo-device ether #pseudo-device sl 1 pseudo-device log pseudo-device pty 4 pseudo-device swappager pseudo-device vnodepager pseudo-device devpager
Oh also the networking is really wierd it always assumes to have INET defined.. so a few #ifdef INET's takes care of that.
neozeed 04:17, 4 December 2010 (UTC)