Re: crossbuild buildworld on amd64 for arm fails to find KERNCONF GENERIC after r302865

From: Guy Yur <guyyur_at_gmail.com>
Date: Fri, 15 Jul 2016 22:16:23 +0300
On Fri, Jul 15, 2016 at 6:11 PM, Cy Schubert <Cy.Schubert_at_komquats.com> wrote:
> In message <CAC67Hz-ZqcYR3p4fR+cBiBcju3JrOxtU+wTr6hwMn_eoo=Wedw_at_mail.gmail.c
> om>
> , Guy Yur writes:
>> Hi,
>>
>> I am trying to crossbuild arm on an amd64 machine and buildworld
>> is checking for KERNCONF and fails to find GENERIC kernel.
>> I only set KERNCONF when I am doing buildkernel/installkernel
>> so KERNCONF is the default set in Makefile.inc1.
>>
>> # make buildworld TARGET=arm TARGET_ARCH=armv6
>> make[1]: "/usr/src/Makefile.inc1" line 122: SYSTEM_COMPILER:
>> Determined that CC=cc matches the source tree.  Not bootstrapping a
>> cross-compiler.
>> make[1]: "/usr/src/Makefile.inc1" line 1144: Missing KERNCONF
>> /usr/src/sys/arm/conf/GENERIC
>> *** Error code 1
>>
>> Stop.
>> make: stopped in /usr/src
>>
>>
>> # uname -a
>> FreeBSD vm4.localdomain 12.0-CURRENT FreeBSD 12.0-CURRENT #13
>> r302895M: Fri Jul 15 16:06:24 IDT 2016
>> root_at_vm4.localdomain:/usr/obj/usr/src/sys/VIRTUALBOX  amd64
>
> Thanks for the report. I've reverted it now until I get the time to look at
> it more closely.
>
>
> --
> Cheers,
> Cy Schubert <Cy.Schubert_at_cschubert.com>
> FreeBSD UNIX:  <cy_at_FreeBSD.org>   Web:  http://www.FreeBSD.org
>
>         The need of the many outweighs the greed of the few.
>

Doing the missing check only for the kernel targets works for me.

.if make(buildkernel) || \
    make(installkernel) || make(installkernel.debug) || \
    make(reinstallkernel) || make(reinstallkernel.debug) || \
    make(distributekernel) || make(distributekernel.debug) || \
    make(packagekernel) || make(create-kernel-packages)
.error Missing KERNCONF ${KERNCONFDIR}/${_kernel}
.endif


It might be possible cover more of the section with the .if make.
I think these are all the targets that use BUILDKERNELS, INSTALLKERNEL.

.if make(buildkernel) || \
    make(installkernel) || make(installkernel.debug) || \
    make(reinstallkernel) || make(reinstallkernel.debug) || \
    make(distributekernel) || make(distributekernel.debug) || \
    make(packagekernel) || make(create-kernel-packages)
BUILDKERNELS=
...
.error Missing KERNCONF ${KERNCONFDIR}/${_kernel}
.endif
.endfor
.endif


Regards,
Guy
Received on Fri Jul 15 2016 - 17:16:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:06 UTC