# make buildworld fails on 10.3



## Pegasus711 (Aug 13, 2017)

Hello there.

Recently deployed 10.3 and tried building 'world' and get an error:


```
--- _worldtmp ---
--------------------------------------------------------------
>>> Rebuilding the temporary build tree
--------------------------------------------------------------
rm -rf /mnt/ObjDir/usr/src/tmp
rm -rf /mnt/ObjDir/usr/src/lib32
mkdir -p /mnt/ObjDir/usr/src/tmp/lib
mkdir -p /mnt/ObjDir/usr/src/tmp/usr
mkdir -p /mnt/ObjDir/usr/src/tmp/legacy/bin
mkdir -p /mnt/ObjDir/usr/src/tmp/legacy/usr
mtree -deU -f /usr/src/etc/mtree/BSD.usr.dist  -p /mnt/ObjDir/usr/src/tmp/legacy/usr >/dev/null
mtree -deU -f /usr/src/etc/mtree/BSD.groff.dist  -p /mnt/ObjDir/usr/src/tmp/legacy/usr >/dev/null
mtree -deU -f /usr/src/etc/mtree/BSD.usr.dist  -p /mnt/ObjDir/usr/src/tmp/usr >/dev/null
mtree -deU -f /usr/src/etc/mtree/BSD.include.dist  -p /mnt/ObjDir/usr/src/tmp/usr/include >/dev/null
ln -sf /usr/src/sys /mnt/ObjDir/usr/src/tmp
--- _legacy ---
--------------------------------------------------------------
>>> stage 1.1: legacy release compatibility shims
--------------------------------------------------------------
cd /usr/src; MAKEOBJDIRPREFIX=/mnt/ObjDir/usr/src/tmp  INSTALL="sh /usr/src/tools/install.sh"  PATH=/mnt/ObjDir/usr/src/tmp/legacy/usr/sbin:/mnt/ObjDir/usr/src/tmp/legacy/usr/bin:/mnt/ObjDir/usr/src/tmp/legacy/usr/games:/mnt/ObjDir/usr/src/tmp/legacy/bin:/sbin:/bin:/usr/sbin:/usr/bin  WORLDTMP=/mnt/ObjDir/usr/src/tmp  VERSION="FreeBSD 10.3-RELEASE amd64 1003000"  MAKEFLAGS="-m /usr/src/tools/build/mk  -j 4 -J 15,16 -m /usr/src/share/mk"  COMPILER_TYPE=clang make  -f Makefile.inc1  DESTDIR=  BOOTSTRAPPING=1003000  SSP_CFLAGS=  -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN  -DNO_PIC -DNO_PROFILE -DNO_SHARED  _BOOTSTRAP_MAKEINFO=yes  -DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD -DNO_TESTS legacy
--- legacy ---
===> tools/build (obj,includes,depend,all,install)
--- obj ---
/mnt/ObjDir/usr/src/tmp/usr/src/tools/build created for /usr/src/tools/build
--- includes ---
; cd /usr/src/tools/build; make buildincludes; make installincludes
--- .depend ---
rm -f .depend
mkdep -f .depend -a    -I/mnt/ObjDir/usr/src/tmp/legacy/usr/include -std=gnu99    /usr/src/tools/build/../../contrib/libc-pwcache/pwcache.c
/usr/src/tools/build/../../contrib/libc-pwcache/pwcache.c:82:10: fatal error: 'namespace.h' file not found
#include "namespace.h"
         ^
1 error generated.
mkdep: compile failed
*** [.depend] Error code 1

make[3]: stopped in /usr/src/tools/build
1 error

make[3]: stopped in /usr/src/tools/build
*** [legacy] Error code 2

make[2]: stopped in /usr/src
1 error

make[2]: stopped in /usr/src
*** [_legacy] Error code 2

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildworld] Error code 2

make: stopped in /usr/src
1 error

make: stopped in /usr/src
```

Why is it failing? Am I missing a step? I did a
`make clean`
before starting this just to be safe (although I am not sure if it was indeed needed)

My `/etc/make.conf` contains:

```
CPUTYPE?= ivybridge
```

and whereas my `/etc/src.conf` contains:

```
CFLAGS= -O0 -pipe
COPTFLAGS= -O0 -pipe
DEBUG_FLAGS=-g
```

Keen to hear


----------



## SirDice (Aug 14, 2017)

Remove your src.conf. Those options are only going to cause problems. The system does a fine job of picking the right compiler options, if you overrule them you need to know what you are doing as it is quite easy to break everything.


----------



## Pegasus711 (Aug 15, 2017)

Did that and this time around it went quite far but still failed nonetheless
1 error


```
make[4]: stopped in /usr/src/kerberos5/lib
*** [kerberos5/lib__L] Error code 2

make[3]: stopped in /usr/src
--- cddl/lib__L ---
1 warning generated.
A failure has been detected in another branch of the parallel make

make[5]: stopped in /usr/src/cddl/lib/libzpool
*** [all_subdir_libzpool] Error code 2

make[4]: stopped in /usr/src/cddl/lib
1 error

make[4]: stopped in /usr/src/cddl/lib
*** [cddl/lib__L] Error code 2

make[3]: stopped in /usr/src
3 errors

make[3]: stopped in /usr/src
*** [libraries] Error code 2

make[2]: stopped in /usr/src
1 error

make[2]: stopped in /usr/src
*** [_libraries] Error code 2

make[1]: stopped in /usr/src
1 error

make[1]: stopped in /usr/src
*** [buildworld] Error code 2

make: stopped in /usr/src

make: stopped in /usr/src
```
So this time around I am building without parallel threads and let's see how far it goes. Anyways, as a general aside, why do I see failures on a production (stable) system? Am I doing something incorrectly?


----------



## ShelLuser (Aug 15, 2017)

Did you run `# make clean` before the second try?  Optionally wiping out the contents of /usr/obj too? If not I'd start there.

There are no guarantees, but theoretically it is possible that you had to deal with some stuff from a previous run.


----------



## Pegasus711 (Aug 15, 2017)

So this time around I did what was suggested and also removed any parallel make jobs (no more '-j' invocations) and it went quite far before failing yet again like so:

```
===> share/termcap (all)
gzip -cn /usr/src/share/termcap/termcap.5 > termcap.5.gz
cap_mkdb -l -f termcap /usr/src/share/termcap/termcap
===> share/timedef (all)
grep -v '^#' < /usr/src/share/timedef/am_ET.UTF-8.src > am_ET.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/be_BY.CP1131.src > be_BY.CP1131.out
grep -v '^#' < /usr/src/share/timedef/be_BY.CP1251.src > be_BY.CP1251.out
grep -v '^#' < /usr/src/share/timedef/be_BY.ISO8859-5.src > be_BY.ISO8859-5.out
grep -v '^#' < /usr/src/share/timedef/be_BY.UTF-8.src > be_BY.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/bg_BG.CP1251.src > bg_BG.CP1251.out
grep -v '^#' < /usr/src/share/timedef/bg_BG.UTF-8.src > bg_BG.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/ca_ES.ISO8859-1.src > ca_ES.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/ca_ES.UTF-8.src > ca_ES.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/cs_CZ.ISO8859-2.src > cs_CZ.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/cs_CZ.UTF-8.src > cs_CZ.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/da_DK.ISO8859-1.src > da_DK.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/da_DK.UTF-8.src > da_DK.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/de_AT.ISO8859-1.src > de_AT.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/de_AT.UTF-8.src > de_AT.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/de_DE.ISO8859-1.src > de_DE.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/de_DE.UTF-8.src > de_DE.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/el_GR.ISO8859-7.src > el_GR.ISO8859-7.out
grep -v '^#' < /usr/src/share/timedef/el_GR.UTF-8.src > el_GR.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/en_GB.ISO8859-1.src > en_GB.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/en_US.ISO8859-1.src > en_US.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/es_ES.ISO8859-1.src > es_ES.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/es_ES.UTF-8.src > es_ES.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/et_EE.ISO8859-15.src > et_EE.ISO8859-15.out
grep -v '^#' < /usr/src/share/timedef/et_EE.UTF-8.src > et_EE.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/eu_ES.ISO8859-1.src > eu_ES.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/fi_FI.ISO8859-1.src > fi_FI.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/fi_FI.UTF-8.src > fi_FI.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/fr_FR.ISO8859-1.src > fr_FR.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/fr_FR.UTF-8.src > fr_FR.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/he_IL.UTF-8.src > he_IL.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/hi_IN.ISCII-DEV.src > hi_IN.ISCII-DEV.out
grep -v '^#' < /usr/src/share/timedef/hr_HR.ISO8859-2.src > hr_HR.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/hr_HR.UTF-8.src > hr_HR.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/hu_HU.ISO8859-2.src > hu_HU.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/hu_HU.UTF-8.src > hu_HU.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/hy_AM.ARMSCII-8.src > hy_AM.ARMSCII-8.out
grep -v '^#' < /usr/src/share/timedef/hy_AM.UTF-8.src > hy_AM.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/is_IS.ISO8859-1.src > is_IS.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/is_IS.UTF-8.src > is_IS.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/ja_JP.eucJP.src > ja_JP.eucJP.out
grep -v '^#' < /usr/src/share/timedef/ja_JP.SJIS.src > ja_JP.SJIS.out
grep -v '^#' < /usr/src/share/timedef/ja_JP.UTF-8.src > ja_JP.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/it_IT.ISO8859-1.src > it_IT.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/it_IT.UTF-8.src > it_IT.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/kk_KZ.PT154.src > kk_KZ.PT154.out
grep -v '^#' < /usr/src/share/timedef/kk_KZ.UTF-8.src > kk_KZ.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/ko_KR.eucKR.src > ko_KR.eucKR.out
grep -v '^#' < /usr/src/share/timedef/ko_KR.UTF-8.src > ko_KR.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/la_LN.ISO8859-1.src > la_LN.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/lt_LT.ISO8859-4.src > lt_LT.ISO8859-4.out
grep -v '^#' < /usr/src/share/timedef/lt_LT.ISO8859-13.src > lt_LT.ISO8859-13.out
grep -v '^#' < /usr/src/share/timedef/lt_LT.UTF-8.src > lt_LT.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/lv_LV.ISO8859-13.src > lv_LV.ISO8859-13.out
grep -v '^#' < /usr/src/share/timedef/lv_LV.UTF-8.src > lv_LV.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/mn_MN.UTF-8.src > mn_MN.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/nb_NO.ISO8859-1.src > nb_NO.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/nb_NO.UTF-8.src > nb_NO.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/nl_NL.ISO8859-1.src > nl_NL.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/nn_NO.ISO8859-1.src > nn_NO.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/nn_NO.UTF-8.src > nn_NO.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/pl_PL.ISO8859-2.src > pl_PL.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/pl_PL.UTF-8.src > pl_PL.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/pt_BR.ISO8859-1.src > pt_BR.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/pt_BR.UTF-8.src > pt_BR.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/pt_PT.ISO8859-1.src > pt_PT.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/pt_PT.UTF-8.src > pt_PT.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/ro_RO.ISO8859-2.src > ro_RO.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/ro_RO.UTF-8.src > ro_RO.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/ru_RU.CP1251.src > ru_RU.CP1251.out
grep -v '^#' < /usr/src/share/timedef/ru_RU.CP866.src > ru_RU.CP866.out
grep -v '^#' < /usr/src/share/timedef/ru_RU.ISO8859-5.src > ru_RU.ISO8859-5.out
grep -v '^#' < /usr/src/share/timedef/ru_RU.KOI8-R.src > ru_RU.KOI8-R.out
grep -v '^#' < /usr/src/share/timedef/ru_RU.UTF-8.src > ru_RU.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/sk_SK.ISO8859-2.src > sk_SK.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/sk_SK.UTF-8.src > sk_SK.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/sl_SI.ISO8859-2.src > sl_SI.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/sl_SI.UTF-8.src > sl_SI.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/sr_YU.ISO8859-2.src > sr_YU.ISO8859-2.out
grep -v '^#' < /usr/src/share/timedef/sr_YU.ISO8859-5.src > sr_YU.ISO8859-5.out
grep -v '^#' < /usr/src/share/timedef/sr_YU.UTF-8.src > sr_YU.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/sv_SE.ISO8859-1.src > sv_SE.ISO8859-1.out
grep -v '^#' < /usr/src/share/timedef/sv_SE.UTF-8.src > sv_SE.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/tr_TR.ISO8859-9.src > tr_TR.ISO8859-9.out
grep -v '^#' < /usr/src/share/timedef/tr_TR.UTF-8.src > tr_TR.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/uk_UA.CP1251.src > uk_UA.CP1251.out
grep -v '^#' < /usr/src/share/timedef/uk_UA.ISO8859-5.src > uk_UA.ISO8859-5.out
grep -v '^#' < /usr/src/share/timedef/uk_UA.KOI8-U.src > uk_UA.KOI8-U.out
grep -v '^#' < /usr/src/share/timedef/uk_UA.UTF-8.src > uk_UA.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/zh_CN.eucCN.src > zh_CN.eucCN.out
grep -v '^#' < /usr/src/share/timedef/zh_CN.GB18030.src > zh_CN.GB18030.out
grep -v '^#' < /usr/src/share/timedef/zh_CN.GB2312.src > zh_CN.GB2312.out
grep -v '^#' < /usr/src/share/timedef/zh_CN.UTF-8.src > zh_CN.UTF-8.out
grep -v '^#' < /usr/src/share/timedef/zh_TW.Big5.src > zh_TW.Big5.out
grep -v '^#' < /usr/src/share/timedef/zh_TW.UTF-8.src > zh_TW.UTF-8.out
===> share/vt (all)
===> share/vt/fonts (all)
uudecode -p < /usr/src/share/vt/fonts/gallant.fnt.uu > gallant.fnt
vtfontcvt /usr/src/share/vt/fonts/vgarom-8x8.hex vgarom-8x8.fnt
vtfontcvt /usr/src/share/vt/fonts/vgarom-8x14.hex vgarom-8x14.fnt
vtfontcvt /usr/src/share/vt/fonts/vgarom-8x16.hex vgarom-8x16.fnt
vtfontcvt /usr/src/share/vt/fonts/vgarom-thin-8x8.hex vgarom-thin-8x8.fnt
vtfontcvt /usr/src/share/vt/fonts/vgarom-thin-8x16.hex vgarom-thin-8x16.fnt
===> share/vt/keymaps (all)
===> share/zoneinfo (all)
cp -fp /usr/src/share/zoneinfo/../../contrib/tzdata//yearistype.sh yearistype
cp: chflags: yearistype: Operation not supported
*** Error code 1

Stop.
make[4]: stopped in /usr/src/share/zoneinfo
*** Error code 1

Stop.
make[3]: stopped in /usr/src/share
*** Error code 1

Stop.
make[2]: stopped in /usr/src
*** Error code 1

Stop.
make[1]: stopped in /usr/src
*** Error code 1

Stop.
make: stopped in /usr/src
```
Looks like it failed while building zoneinfo since apparently yearistype is not supported (_on what? this processor i.e. CPUTYPE_??). Is there a way to skip certain packages (like related to regional localisations since US-EN is fine with me)??

Waiting to hear.

By the way, the reason I am building world is I want a complete sysroot on a different mount point and I plan to use the GDB there in to debug the kernel on this machine remotely. Thay way, that GDB will know where to look for loaded modules amongst other things. So is this the way to go for that?? Similar to cross-debugging for other architectures


----------



## Pegasus711 (Aug 24, 2017)

Was able to buildworld this time. Apparently chflags permissions issue has got nothing to do with yearistype or anything. It was just that my obj dir was NFS mounted and apparently I had lost connection intermittently while it was building.

After remounting it it worked


----------



## SirDice (Aug 24, 2017)

Pegasus711 said:


> It was just that my obj dir was NFS mounted and apparently I had lost connection intermittently without it was building


Be careful with this. It works (I've used a similar setup in the past) but you need to make absolutely sure the time is set the same on both servers. You can get really weird build errors if the time is too far off.


----------

