Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2016 20:18:55 -0700
From:      bob prohaska <fbsd@www.zefox.net>
To:        Ian Lepore <ian@freebsd.org>
Cc:        "freebsd-arm@FreeBSD.org" <freebsd-arm@FreeBSD.org>
Subject:   Re: Confirmed update procedure for a self-hosted armv6hf system
Message-ID:  <20160524031855.GC52783@www.zefox.net>
In-Reply-To: <1464058197.1180.439.camel@freebsd.org>
References:  <1463976239.1180.406.camel@freebsd.org> <20160523215248.GA52783@www.zefox.net> <1464055880.1180.433.camel@freebsd.org> <20160524024027.GB52783@www.zefox.net> <1464058197.1180.439.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 23, 2016 at 08:49:57PM -0600, Ian Lepore wrote:
>=20
> Ut oh.  It just popped into my head that the standard freebsd update
> procedure is to install the kernel, then reboot, then install the
> world, right?  (I've never once done it that way in 20 years of using
> freebsd, I always install both at once then reboot.)
>=20
My custom has been to build world and kernel, install world and kernel,
then reboot promptly. Not sure where I got the  habit from, the idea=20
was to minimize mismatch between kernel and userland.=20

> I think that may be the problem here, if you did it the right way.=20
>  Once you're running on the new kernel, TARGET_ARCH=3Darmv6 isn't a
> crossbuild anymore because it thinks armv6 is the current arch.  I
> wonder if it would work for you to try:
>=20
>   setenv UNAME_P armv6hf
>   make -j6 installworld TARGET_ARCH=3Darmv6
>=20
If I did this right, no luck...

root@www:/usr/src # uname -p
armv6hf
root@www:/usr/src # setenv UNAME_P armv6hf
root@www:/usr/src # make -j6 installworld TARGET_ARCH=3Darmv6 > installworl=
d.log &
[1] 69457
root@www:/usr/src # 1 error

[1]    Exit 2                        make -j6 installworld TARGET_ARCH=3Dar=
mv6 > installworld.log
root@www:/usr/src #=20
root@www:/usr/src # tail -n100 installworld.log
--- installworld ---
--- __installcheck_UGID ---
--- installworld ---
mkdir -p /tmp/install.XvgDGNcF
progs=3D$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp  date e=
cho egrep find grep id install   ln make mkdir mtree mv pwd_mkdb  rm sed se=
rvices_mkdb sh strip sysctl test true uname wc zic tzsetup   makewhatis; do=
  if progpath=3D`which $prog`; then  echo $progpath;  else  echo "Required =
tool $prog not found in PATH." >&2;  exit 1;  fi;  done);  libs=3D$(ldd -f =
"%o %p\n" -f "%o %p\n" $progs 2>/dev/null | sort -u |  while read line; do =
 $line;  if [ "$2 $3" !=3D "not found" ]; then  echo $2;  else  echo "Requi=
red library $1 not found." >&2;  exit 1;  fi;  done);  cp $libs $progs /tmp=
/install.XvgDGNcF
cp -R ${PATH_LOCALE:-"/usr/share/locale"} /tmp/install.XvgDGNcF/locale
cd /usr/src; MAKEOBJDIRPREFIX=3D/usr/obj  MACHINE_ARCH=3Darmv6  MACHINE=3Da=
rm  CPUTYPE=3D GROFF_BIN_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/bin  GROFF_=
FONT_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/share/groff_font  GROFF_TMAC_PA=
TH=3D/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC=3D"cc " CXX=3D"c++  "  C=
PP=3D"cpp "  AS=3D"as" AR=3D"ar" LD=3D"ld" NM=3Dnm  OBJDUMP=3Dobjdump OBJCO=
PY=3D"objcopy"  RANLIB=3Dranlib STRINGS=3D  SIZE=3D"size" PATH=3D/usr/obj/u=
sr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr=
/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbin:/usr/obj/usr/src/tmp/usr/=
bin:/tmp/install.XvgDGNcF  LD_LIBRARY_PATH=3D/tmp/install.XvgDGNcF  PATH_LO=
CALE=3D/tmp/install.XvgDGNcF/locale make -f Makefile.inc1    __MAKE_SHELL=
=3D/tmp/install.XvgDGNcF/sh reinstall;  MAKEOBJDIRPREFIX=3D/usr/obj  MACHIN=
E_ARCH=3Darmv6  MACHINE=3Darm  CPUTYPE=3D GROFF_BIN_PATH=3D/usr/obj/usr/src=
/tmp/legacy/usr/bin  GROFF_FONT_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/shar=
e/groff_font  GROFF_TMAC_PATH=3D/usr/obj/usr/src/tmp/legacy/usr/share/tmac =
CC=3D"cc " CXX=3D"c++  "  CPP=3D"cpp "  AS=3D"as" AR=3D"ar" LD=3D"ld" NM=3D=
nm  OBJDUMP=3Dobjdump OBJCOPY=3D"objcopy"  RANLIB=3Dranlib STRINGS=3D  SIZE=
=3D"size" PATH=3D/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/=
legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/bin:/usr/obj/usr/src/tmp/usr/sbi=
n:/usr/obj/usr/src/tmp/usr/bin:/tmp/install.XvgDGNcF  LD_LIBRARY_PATH=3D/tm=
p/install.XvgDGNcF  PATH_LOCALE=3D/tmp/install.XvgDGNcF/locale rm -rf /tmp/=
install.XvgDGNcF
sh: cc: not found
make[2]: "/usr/src/share/mk/bsd.compiler.mk" line 142: Unable to determine =
compiler type for CC=3Dcc .  Consider setting COMPILER_TYPE.
*** [installworld] Error code 1

Perhaps it's time to install the new kernel and reboot.

I also have two kernels that report uname -p as armv6, one pre-hf and one p=
ost-hf. Worth a try?

> As long as the build system uses uname (not sysctl hw.machine_arch),
> that should fool it enough to do the proper install.

Thanks for all your help!

bob prohaska




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160524031855.GC52783>