Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 29 Sep 2008 05:55:56 +0400
From:      Andrey Chernov <ache@nagual.pp.ru>
To:        Bruce M Simpson <bms@incunabulum.net>
Cc:        freebsd-embedded@FreeBSD.org
Subject:   Re: r181397 of src/usr.bin/make/job.c breaks cross-compiles
Message-ID:  <20080929015554.GA66575@nagual.pp.ru>
In-Reply-To: <48E02B0D.9030806@incunabulum.net>
References:  <48E001DC.9010503@incunabulum.net> <20080929002040.GA64397@nagual.pp.ru> <48E02B0D.9030806@incunabulum.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 29, 2008 at 02:10:37AM +0100, Bruce M Simpson wrote:
> Andrey Chernov wrote:
> > Please explain, how it may cause problem? In 'make world' or 'make 
> > buildworld;make installworld' headers and libraries was builded first with 
> > old make, _then_ the new make is builded. 'make' is not a bootstrap tool 
> > builded first (at -current, I don't check -stable branch)
> >   
> 
> When I use NanoBSD to build a system image for the ARM, nanobsd.sh 
> invokes the "make" targets in the source tree which I imagine most 
> developers are familiar with; the build system attempts to build "make" 
> first thing in the host's staging area under MAKEOBJDIRPREFIX, as one 
> would normally expect.

I can't find 'make' in -stable 7 and 6 boostrap tools too. The problem 
lies in the section which decide to build it first. It is absolutely not 
needed. Could you please show log or trace down to the section which 
builds 'make' first?

> What is strange about this failure, is the fact that the "buildworld" 
> target does not stop due to the error until after the dependency pass is 
> made over the tree.

Nothing strange, it works as I explain in the first reply..

> It looks to me as if the change to "make" assumes that the FreeBSD 8.x 
> versions of the arc4 library functions are always available, even for 
> cross compilation. This assumption doesn't seem to be robust, and it 
> breaks down in this cross-compilation use case.

It not breaks because all is builded by old 'make' in 6, 7, and 8. New 
'make' is not installed until the very final stage. I see no problem with 
cross-compilation in that way.

> Can you please advise what the best way to fix this in the source is?

I need to know more specifically the place which builds 'make' first 
to think about the fix.

-- 
http://ache.pp.ru/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080929015554.GA66575>