*BSD News Article 83174


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!nntp.coast.net!howland.erols.net!news.mathworks.com!fu-berlin.de!irz401!orion.sax.de!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: SYS_utrace not found in libc.so
Date: 19 Nov 1996 01:55:41 GMT
Organization: Private BSD site, Dresden
Lines: 74
Message-ID: <56r42t$3sr@uriah.heep.sax.de>
References: <567lu6$cv8@rosebud.sdsc.edu> <56822v$24b@klemm.gtn.com>
  <56akl6$lbr@rosebud.sdsc.edu>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.6
X-Phone: +49-351-2012 669
X-PGP-Fingerprint: DC 47 E6 E4 FF A6 E9 8F  93 21 E0 7D F9 12 D6 4E

steube@groucho.sdsc.edu (Ken Steube) wrote:

> >> sys/Makefile.inc references a file utrace.o, but there's no corresponding
> >> C file.

Right.  If you look further, you'll notice that it's in the ASM
section of the Makefile.inc.  The following magic is apparently
supposed to create all those objects:

${ASM}: ${.CURDIR}/${MACHINE}/SYS.h /usr/include/sys/syscall.h
	@${ECHO} creating ${.PREFIX}.o
	@printf '#include "SYS.h"\nRSYSCALL(${.PREFIX})\n' | \
	    ${CPP} ${CFLAGS:M-[ID]*} ${AINC} | ${AS} -o ${.PREFIX}.o
	@${LD} -O ${.PREFIX}.o -x -r ${.PREFIX}.o

...so it must be found here:

j@uriah 360% fgrep utrace /usr/include/sys/syscall.h
#define SYS_utrace      205

> There were several things I had to fix during 'make world'. All were

That's normal.  `make world' tries to make the transition easy, but
that's not always possible.

> pretty easy except this one involving the missing utrace.c. There is
> no place where utrace and SYS_utrace are referenced in /usr/src, so
> I don't even know why these are needed.

It's a system call.  Unfortunately, without any documentation.  It
looks as if it were possible to include user data into your own kernel
trace file that can later be displayed with kdump(1).

> Another thing I have to ask about: the fixit.fpl floppy supplied with
> 2.2-960801-snap doesn't have a /dev/sd0e, which is the device I need
> to fix my /usr. Since the floppy also lacks MAKEDEV, I am stuck. One
> way would be to acquire another floppy drive and put MAKEDEV on a
> floppy and mount it. Is there an easier way?

Yes.  mknod it yourself. ;-)  If you look at

j@uriah 374% ls -l /dev/sd0[abc]
brw-r-----  1 root  operator    4,   0 Jun 10  1995 /dev/sd0a
brw-r-----  1 root  operator    4,   1 Aug 13  1995 /dev/sd0b
brw-r-----  1 root  operator    4,   2 Jun 10  1995 /dev/sd0c

...it should be obvious that you need

mknod /dev/sd0e b 4 4

> I'm surprised the fixit floppy doesn't have this device, since without
> it one can't repair the default /usr partition set up by sysinstall.

sysinstall normally uses /dev/sd0s1e or something like this.  Anyway,
there are too many different combinations for the various systems
around to fit onto a single fixit floppy.  DEVFS is the proposed way
out, but it still requires some polishing.  For the time being, you
must fiddle the missing dev nodes yourself.

(But i hope you were aware that the fixit's dev nodes are under the
rather silly directory /mnt2/dev, right?)

The fixit in 2.2R will be a little better (among other things, it has
a working MAKEDEV script), but you might still be required to remove
some unnecessary nodes before going on.  Remember that you could (and
should) personalize your fixit floppy in advance to better fit your
particular configuration.

-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)