Re: buildworld failed

From: George Abdelmalik <george_at_fork.id.au>
Date: Wed, 09 Feb 2022 11:16:18 UTC
On 8/2/22 15:45, Warner Losh wrote:
>
>
> On Tue, Feb 8, 2022 at 3:43 AM George Abdelmalik <george@fork.id.au> 
> wrote:
>
>
>     On 7/2/22 03:50, qroxana wrote:
>>
>>
>>     I know running make install for
>>     /usr/src/tools/build/test-includes can fix this,
>>     but this still fails on a newly installed 14.0-CURRENT.
>>
>>     --- test-includes ---
>>     cd /usr/src/tools/build/test-includes; MACHINE_ARCH=aarch64 
>>     MACHINE=arm64  CPUTYPE= CC="cc -target
>>     aarch64-unknown-freebsd14.0
>>     --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp
>>     -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin -target
>>     aarch64-unknown-freebsd14.0
>>     --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp
>>     -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin" CXX="c++  -target
>>     aarch64-unknown-freebsd14.0
>>     --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp
>>     -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin -target
>>     aarch64-unknown-freebsd14.0
>>     --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp
>>     -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin" CPP="cpp -target
>>     aarch64-unknown-freebsd14.0
>>     --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp
>>     -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin -target
>>     aarch64-unknown-freebsd14.0
>>     --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp
>>     -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin" AS="as" AR="ar"
>>     ELFCTL="elfctl" LD="ld" LLVM_LINK="" NM=nm OBJCOPY="objcopy"
>>     RANLIB=ranlib STRINGS=  SIZE="size" STRIPBIN="strip" 
>>     INSTALL="install -U"
>>     PATH=/usr/obj/usr/src/arm64.aarch64/tmp/bin:/usr/obj/usr/src/arm64.aarch64/tmp/usr/sbin:/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/sbin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/libexec::/usr/obj/usr/src/arm64.aarch64/tmp/bin:/usr/obj/usr/src/arm64.aarch64/tmp/usr/sbin:/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/sbin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin
>>     SYSROOT=/usr/obj/usr/src/arm64.aarch64/tmp make
>>     DESTDIR=/usr/obj/usr/src/arm64.aarch64/tmp test-includes
>>     --- sys/abi_compat.c ---
>>     --- sys/acct.c ---
>>     --- sys/acl.c ---
>>     --- sys/aio.c ---
>>     --- sys/abi_compat.c ---
>>     echo "#include <sys/abi_compat.h>" > sys/abi_compat.c
>>     sh: cannot create sys/abi_compat.c: No such file or directory
>>     *** [sys/abi_compat.c] Error code 2
>>
>>     make[4]: stopped in /usr/src/tools/build/test-includes
>>     --- sys/acct.c ---
>>     echo "#include <sys/acct.h>" > sys/acct.c
>>     sh: cannot create sys/acct.c: No such file or directory
>>     *** [sys/acct.c] Error code 2
>>
>>     make[4]: stopped in /usr/src/tools/build/test-includes
>>     --- sys/aio.c ---
>>     echo "#include <sys/aio.h>" > sys/aio.c
>>     sh: cannot create sys/aio.c: No such file or directory
>>     *** [sys/aio.c] Error code 2
>>
>>     make[4]: stopped in /usr/src/tools/build/test-includes
>>     --- sys/acl.c ---
>>     echo "#include <sys/acl.h>" > sys/acl.c
>>     sh: cannot create sys/acl.c: No such file or directory
>>     *** [sys/acl.c] Error code 2
>>
>>
>     Same here for me for the past couple of weeks. Haven't been able
>     to identify why it fails. My hunch was that a particular objdir
>     wasn't being created. As a workaround I edited the Makefile.inc1
>     to remove the test-includes command (line 1128 I think).
>
>     I'd really like to understand why this error comes about. If
>     someone has any insights, please share them :)
>
> What build options are you using?  this is the test to make sure that 
> files can be included on their own.
>
> Warner


Hi Warner,

My make.conf contains:

# make.conf(5) to use when building world.
MALLOC_PRODUCTION=


My src.conf contains:

## src.conf(5) to use when building world.
WITHOUT_IPFILTER=
WITHOUT_PF=
WITHOUT_PPP=
WITHOUT_LPR=
WITHOUT_NIS=
WITHOUT_LIB32=
WITHOUT_HYPERV=
WITHOUT_APM=
WITHOUT_ATM=
WITHOUT_FINGER=
WITHOUT_FLOPPY=
WITHOUT_RADIUS_SUPPORT=
WITHOUT_DEBUG_FILES=
WITHOUT_TESTS=


The build command is:

env MAKEOBJDIRPREFIX=$HOME/obj \
     make -j2 \
     -DNO_CLEAN \
     __MAKE_CONF=$HOME/make.conf \
     SRCCONF=$HOME/src.conf \
     TARGET=amd64 \
     TARGET_ARCH=amd64 \
     CPUTYPE= \
     buildworld


Perhaps the issue is that I first build the toolchain as a separate step 
prior to invoking buildworld, that command is:

     env MAKEOBJDIRPREFIX=$HOME/obj \
     make -j2 \
     __MAKE_CONF=$HOME/make.conf \
     SRCCONF=$HOME/src.conf \
     TARGET=amd64 \
     TARGET_ARCH=amd64 \
     toolchain

Thanks for your interest,
George.