On 6/15/14, Warner Losh <i...@bsdimp.com> wrote:
>
> On Jun 14, 2014, at 3:57 PM, Oliver Pinter <oliver.p...@gmail.com> wrote:
>
>> On 6/13/14, John Baldwin <j...@freebsd.org> wrote:
>>> On Friday, June 13, 2014 6:21:28 am Oliver Pinter wrote:
>>>> Hi All!
>>>>
>>>> When I try to build i386 kernel on amd64 host running compile error
>>>> due wrong cpufunc.h picked up by build system.
>>>>
>>>> I used the attached script to build the kernel, and I attached a build
>>>> log.
>>>>
>>>> Any suggestion how can I fix this?
>>>
>>> To build an i386 kernel on an amd64 host do this:
>>>
>>> cd /usr/src (or some other tree)
>>> make TARGET=i386 kernel-toolchain
>>> make TARGET=i386 buildkernel
>>> make TARGET=i386 installkernel DESTDIR=/some/place
>>>
>>> And your i386 kernel will end up in /some/place/boot/kernel/kernel.
>>> (You
>>> can
>>> set things like KERNCONF to pick an alternate kernel config just as with
>>> normal 'make buildkernel'.)
>>>
>>> (Your attachment was size zero for me btw)
>>>
>>> --
>>> John Baldwin
>>>
>>
>> I used this script to build the kernel:
>> http://svnweb.freebsd.org/socsvn/soc2014/op/tools/build_kernel_32bit.csh?view=log
>>
>> And the error log are there:
>> https://gist.github.com/opntr/cf8aa0e404c0c5ed6f90 .
>> I get this error, when I first build kernel for amd64 system, and
>> after that i386 kernel, and only the kernel.
>>
>> Now seems like I can build the whole system with buildworld
>> buildkernel on vanilla master, I removed the objdir and do a clean
>> buildworld. Now I test the modified kernel build, after the
>> buildworld.
>>
>> It is broken too. When I do only make kernel-toolchain buildkernel,
>> than this are broken for vanilla freebsd source and for my version to.
>>
>> summary:
>> OK: make buildworld buildkernel
>> BROKEN: make kernel-toolchain buildkernel
>
> On the same line? O?r is that just a summary?
>
>> Seems like someone in build environment bootstrapping are broken.
>
> I've not been able to reproduce this.
>
> rm -rf $OBJDIR
> make TARGET=i386 kernel-toolchain
> make TARGET=i386 buildkernel
>
> works just fine on current with a clean tree and an empty/missing make.conf
> and src.conf.
>
> As for your script, don't define MACHINE and MACHINE_ARCH. That's almost
> always wrong since that overrides things on the command line, which is what
> make buildkernel winds up translating to. You never need to define those
> yourself in any supported environment, and likely most unsupported ones.
>
> Also, I'd strongly recommend doing it as two invocations to make, not one.
> kernel-toolchain likely doesn't have all the right guards in place for it
> that buildworld likely does. Or you can dive in and figure that out. You
> can't really do anything *kernel* related until kernel-toolchain finishes...
>
> Warner

Warner, thanks!

Splitting up to two part the build script, working fine!

https://github.com/HardenedBSD/tools/blob/f98ec30cbe6f155c9f15c0d4b1ecbf74fc970e32/build_kernel_32bit.csh

>
>
>
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to