Subject: Re: SYS_statfs Problem When Updating 3.0
To: None <netbsd-users@netbsd.org>
From: Christos Zoulas <christos@astron.com>
List: netbsd-users
Date: 03/30/2006 14:04:23
In article <442B9ECA.6030201@gmail.com>,
Brian Asemi  <asemisldkfj@gmail.com> wrote:
>I got a bunch of security advisories in my e-mail today, so I figured 
>I'd run a full upgrade on both of my NetBSD boxes.  On the ./build.sh 
>distribution command, the upgrade on my server failed.  This same exact 
>problem happened when I tried to do a source upgrade from 2.1 to 3.0, 
>and I did a binary upgrade with sysinst to fix it.
>
>The error occurred here:
>
>nbmake: don't know how to make /usr/src/lib/libc/net/res_mkquery.c. Stop
>
>My system spit out a bunch of errors like this, and I get this error 
>when I try to run any command as well.
>
>/lib/libc.so.12: Undefined symbol "SYS_statfs" (symnum = 450)
>
>I found reference to libc and statfs in /usr/src/UPDATING, but from 
>April of 2004, almost two years ago!  Here is the text from UPDATING:
>
>20040418:
>	statfs(2) and friends have been replaced with statvfs(2). Before
>	installing a newly build userland make sure that you are running
>	a newly built kernel with COMPAT_20 set. In addition your libc
>	build might not work (undefined SYS_statfs symbol) because make
>	clean does not know how to remove files it does not know about
>	anymore. Manually remove all generated .S sources and objects
>	from the libc build directory.
>
>This sounds just like what is affecting me, and I guess I'm just curious 
>why?  I was running 3.0 and upgraded my source tree with -r netbsd-3. 
>Seems odd, eh?
>
>Another thing to mention is that this didn't happen on my workstation 
>when I upgraded from 2.1 to 3.0 like it did to my server.  I'm a bit 
>frightened to try the upgrade though, because my workstation is more 
>important than my server :).
>
>Any hints would be greatly appreciated.

You need to find the previous good version of libc (libc.so.X.YYY) and
link libc.so.12 to it both in /lib and /usr/lib. Then make cleandir in
libc, and start again. It did not happen to your workstation probably
because you never built there before and you started from a clean tree.

christos