Newsgroups: comp.os.minix Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!batcomputer!munnari.oz.au!metro!dmssyd.syd.dms.CSIRO.AU!ditsydh.syd.dit.CSIRO.AU!evans From: evans@syd.dit.CSIRO.AU (Bruce.Evans) Subject: Re: 1.6 woes Message-ID: <1991Jun30.164157.25579@syd.dit.CSIRO.AU> Organization: CSIRO Division of Info Tech, Sydney, Australia References: <57109@nigel.ee.udel.edu> Date: Sun, 30 Jun 91 16:41:57 GMT In article <57109@nigel.ee.udel.edu> SRONCH%HLERUL2.BITNET@vm.biu.ac.il (Fred Wiersma) writes: > >I have one question myself: mknod4 is an unsolved reference when making >some commands (e.g. format, mknod, tar). When browsing some header files >(I think unistd.h) I saw a definition for either mknod or mknod4, >depending on whether _MINIX was defined. So I copied mknod.c to >mknod4.c, changed its mknod identifier to mknod4, recompiled and >regenerated libc.a. Then I could make the above mentioned commands. Was >what I did OK? The change is correct, but the reasoning is not, and you also need to re-create mknod: 1.6 mknod4 = 1.5 mknod mknod(name, mode, addr) = mknod4(name, mode, address, 0) Neither is declared (in unistd.h) unless _MINIX is defined, because POSIX does not specify mknod. The change was made to correct the misfeature of Minix-1.5's mknod being different from everybody elses mknod. Calling mknod4 with a random size causes interesting bugs (see e.g. test/test8.c). -- Bruce Evans evans@syd.dit.csiro.au