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

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2016-05-23 at 19:40 -0700, bob prohaska wrote:
> On Mon, May 23, 2016 at 08:11:20PM -0600, Ian Lepore wrote:
> > > /tmp/install.b4kWrXan
> > > sh: cc: not found
> > > make[2]: "/usr/src/share/mk/bsd.compiler.mk" line 142: Unable to
> > > determine compiler type for CC=cc .  Consider setting
> > > COMPILER_TYPE.
> > > *** [installworld] Error code 1
> > > 
> > > Up to now no COMPILER_TYPE has been needed.
> > > What's the correct name?
> > > 
> > > Many thanks for your patience!
> > > 
> > > bob prohaska
> > 
> > The fact that it's complaining about compiler type means something
> > is
> > wrong.  Hmm, it looks like you left off the TARGET_ARCH=armv6 on
> > the
> > installworld command, because otherwise those paths would be
> > /usr/arm.armv6/usr/... not just /usr/obj/usr/...
> > 
> Alas, no. Here's a verbatim transcript:
> root@www:/usr/src # make -j6 installworld TARGET_ARCH=armv6 >
> installworld.log &
> [1] 68427
> root@www:/usr/src # 1 error
> 
> [1]    Exit 2                        make -j6 installworld
> TARGET_ARCH=armv6 > installworld.log
> 
> root@www:/usr/src # tail -n25 installworld.log
> --- installworld ---
> --- __installcheck_UGID ---
> --- installworld ---
> mkdir -p /tmp/install.E75wHxti
> progs=$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp 
>  date echo egrep find grep id install   ln make mkdir mtree mv
> pwd_mkdb  rm sed services_mkdb sh strip sysctl test true uname wc zic
> tzsetup   makewhatis; do  if progpath=`which $prog`; then  echo
> $progpath;  else  echo "Required tool $prog not found in PATH." >&2; 
>  exit 1;  fi;  done);  libs=$(ldd -f "%o %p\n" -f "%o %p\n" $progs
> 2>/dev/null | sort -u |  while read line; do  $line;  if [ "$2 $3" !=
> "not found" ]; then  echo $2;  else  echo "Required library $1 not
> found." >&2;  exit 1;  fi;  done);  cp $libs $progs
> /tmp/install.E75wHxti
> cp -R ${PATH_LOCALE:-"/usr/share/locale"}
> /tmp/install.E75wHxti/locale
> cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=armv6 
>  MACHINE=arm  CPUTYPE=
> GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin 
>  GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font 
>  GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc "
> CXX="c++  "  CPP="cpp "  AS="as" AR="ar" LD="ld" NM=nm 
>  OBJDUMP=objdump OBJCOPY="objcopy"  RANLIB=ranlib STRINGS= 
>  SIZE="size"
> PATH=/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.E75wHxti 
>  LD_LIBRARY_PATH=/tmp/install.E75wHxti 
>  PATH_LOCALE=/tmp/install.E75wHxti/locale make -f Makefile.inc1   
>  __MAKE_SHELL=/tmp/install.E75wHxti/sh reinstall; 
>  MAKEOBJDIRPREFIX=/usr/obj  MACHINE_ARCH=armv6  MACHINE=arm  CPUTYPE=
> GROFF_BIN_PATH=/usr/obj/usr/src/tmp/legacy/usr/bin 
>  GROFF_FONT_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/groff_font 
>  GROFF_TMAC_PATH=/usr/obj/usr/src/tmp/legacy/usr/share/tmac CC="cc "
> C
>  XX="c++  "  CPP="cpp "  AS="as" AR="ar" LD="ld" NM=nm 
>  OBJDUMP=objdump OBJCOPY="objcopy"  RANLIB=ranlib STRINGS= 
>  SIZE="size"
> PATH=/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.E75wHxti 
>  LD_LIBRARY_PATH=/tmp/install.E75wHxti 
>  PATH_LOCALE=/tmp/install.E75wHxti/locale rm -rf
> /tmp/install.E75wHxti
> sh: cc: not found
> make[2]: "/usr/src/share/mk/bsd.compiler.mk" line 142: Unable to
> determine compiler type for CC=cc .  Consider setting COMPILER_TYPE.
> *** [installworld] Error code 1
> 
> make[1]: stopped in /usr/src
> 1 error
> 
> make[1]: stopped in /usr/src
> *** [installworld] Error code 2
> 
> Setting COMPILER_TYPE (naively) to cc or clang seems no help
> whatever.
> 
> This RPI2 has neither /etc/make.conf nor /etc/src.conf, might that be
> part of the trouble?
> Alternatively, might it be simpler to "back down" to an earlier
> revision (which one?) and
> attempt to upgrade from there?
> 
> Thanks as always!
> 
> bob prohaska

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.)

I think that may be the problem here, if you did it the right way. 
 Once you're running on the new kernel, TARGET_ARCH=armv6 isn't a
crossbuild anymore because it thinks armv6 is the current arch.  I
wonder if it would work for you to try:

  setenv UNAME_P armv6hf
  make -j6 installworld TARGET_ARCH=armv6

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

-- Ian




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