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

From: Cy Schubert <Cy.Schubert_at_komquats.com>
Date: Fri, 15 Jul 2016 15:19:01 -0700
In message <CAC67Hz_UAWvATr1x4QPX2OrA8_JC+9A_eoG8RMffXG5aZuWV7A_at_mail.gmail.c
om>
, Guy Yur writes:
> 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

Yes, this is one solution. The plan is to use this:

.if make(*kernel) || make(*kernel.debug) || make(*kernel-packages)

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

That causes other breakage.

I believe I have a solution. I just need to make sure to thoroughly test it 
first.


-- 
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.
Received on Fri Jul 15 2016 - 20:19:12 UTC

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