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)
Oh httpd 1.3 runs on netbsd 0.9 so I pulled out my build, and you can find it here.
I have to wonder why the tty's throw so many errors and exceptions, and the straight 0.9 compiles without so much of a warning.......
neozeed 04:49, 4 December 2010 (UTC)
looks like I missed something obvious...
The source for NetBSD is derived from 386BSD 0.1, patched with the 0.2.2 patch kit. In addition, many programs in UCB's second BSD Networking Software Release which were missing from 386BSD have been integrated into NetBSD, some of the changes from the upcoming 0.2.3 patch kit have been included, and many local additions and bug fixes have been performed..
I'm installing 386BSD and going from the 0.2.3 patch kit.. neozeed 19:18, 4 December 2010 (PST)