Re: make buildworld issue on 6.2 stable



On Fri, May 25, 2007 at 12:28:18PM +0400, Ruslan Ermilov wrote:
On Fri, May 25, 2007 at 12:07:10PM +0930, Shaun Branden wrote:

IEEE80211_IS_CHAN_PASSIVE() is a macro defined in
src/sys/net80211/_ieee80211.h. Check that you have an up-to-date
copy of that file in /usr/src. If you have it and still get the
error, "rm -rf /usr/obj/usr/src" first, then try to build world
again.

Thanks for that

The file is there:
shaun@sagan:net80211$ pwd
/usr/src/sys/net80211
You have mail in /var/mail/shaun
shaun@sagan:net80211$ ls -l _ieee80211.h
-rw-r--r-- 1 root wheel 8181 Jan 28 14:37 _ieee80211.h

and this is from my history:
489 cvsup -g ~shaun/cvs/stable-supfile
490 cd /usr/obj
491 rm -rf *
492 chflags -R noschg *
493 rm -rf *
494 cd /usr/src

I just ran these again, ie !489, !490 etc with make buildworld at the
end and got the same result.

...

ifconfig.lo(.text+0x4df8): In function `print_chaninfo':
: undefined reference to `IEEE80211_IS_CHAN_PASSIVE'
*** Error code 1

Stop in /usr/obj/usr/src/rescue/rescue.
*** Error code 1

Stop in /usr/src/rescue/rescue.
*** Error code 1

Stop in /usr/src/rescue.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
root@sagan:src$

Also, I usually use the following script to do all this, but started
running the commands interactively after it failed the first time. As
you can see it removes the /usr/obj before running make buildworld.

#!/usr/local/bin/bash
# Copyright (c) June 2002 Shaun Branden <shaun@xxxxxxxxx>.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.

SUPFILE="/home/shaun/cvs/stable-supfile"
KERN="SAGAN"
#KERN="GENERICNEW"

if [ -z $1 ]
then
echo "Usage: `basename $0` {-a(ll includes cvs)|-m(ost)}" >&2
exit 42
fi

if [ "$UID" != "0" ]
then
echo "You do not have permission to use this script"
exit 42
fi

docvs ()
{
echo "updating cvs"
cvsup -g $SUPFILE
if [ $? -ne "0" ]
then
echo "cvs failed, perhaps we are offline"
exit 42
fi
}

#remove the working files from last time
doremove ()
{
echo "Removing old /usr/obj:"
cd /usr/obj
if [ $? -eq "0" ]
then
rm -rf *
chflags -R noschg *
rm -rf *
else
echo "Did not change to /usr/obj so rm -rf not run"
exit 42
fi
}

#compiles all system sources
dobuild ()
{
echo "Compiling the sources:"
cd /usr/src
make buildworld
if [ $? -ne "0" ]
then
echo "make buildworld failed, exiting"
exit 42
fi
}

#compile and installs the kernel
dokernel ()
{
echo "Compiling the kernel called $KERN "
echo "running make buildkernel"
make buildkernel KERNCONF=$KERN
if [ $? -ne "0" ]
then
echo "make buildkernel failed, exiting"
exit 42
fi
echo "running make installkernel"
make installkernel KERNCONF=$KERN
if [ $? -ne "0" ]
then
echo "make installkernel failed, exiting"
exit 42
fi
}

#installs new system
doinstall ()
{
#install it all
echo "running make installworld"
make installworld
if [ $? -ne "0" ]
then
echo "ERROR: make installworld failed, exiting"
exit 42
fi
}

#Now run Mergemaster, this will also run MAKEDEV"
domerge ()
{
echo "Would you like me to run mergemaster? (y/n)"
read answer
if [ $answer = "y" ]
then
cp -Rp /etc /etc.old
mergemaster
if [ $? -ne "0" ]
then
echo "make installkernel failed, exiting"
exit 42
fi
else
echo "Run cp -Rp /etc /etc.old
mergemaster
manually"
exit
fi
}

#calls from here
case "$1" in
-a)
docvs
doremove
dobuild
dokernel
doinstall
domerge
;;
-m)
doremove
dobuild
dokernel
doinstall
domerge
;;
*)
echo "Usage: `basename $0` {-a(ll includes cvs)|-m(ost)}" >&2
;;
esac
echo "Now that mergemaster is complete you can reboot to the new system:)"

thanks

shaun
--
Shaun Branden: Alchemist and Bit Bender
PGP and contact details in the headers.

Attachment: pgpOA5xZrnphN.pgp
Description: PGP signature