Re: [HEADS UP] ar(1) front-end committed. (notes for cross compile)

From: Kostik Belousov <kostikbel_at_gmail.com>
Date: Thu, 21 Feb 2008 16:33:52 +0200
On Thu, Feb 21, 2008 at 03:02:47PM +0100, Kai Wang wrote:
> On Thu, Feb 21, 2008 at 02:12:09PM +0100, Kai Wang wrote:
> > Hello list,
> > 
> > I just committed ar(1) front-end. Note that you NEED update your
> > world before you can successfully perform cross platform buildworld.
> > 
> > You can update your system by:
> > make buildworld
> > ...
> > make installworld
> > 
> > or you can just install ar(1) by hand.
> > (replace /usr/bin/ar and /usr/bin/ranlib by hand)
> > 
> > This is needed because GNU Binutils ar and ranlib gets renamed to gar
> > and granlib, and when you perform a cross platform buildworld, the
> > build system will instead use /usr/bin/ar and /usr/bin/ranlib, which
> > is not capable of cross build.
> 
> I think it's neccessary to explain it a bit.  When you start
> cross-platform world build, the toolchain targarting that platform
> will be built first. Then the resulting cross-platform toolchain is
> used to build the world for that platform. ar(1) and ranlib(1) are
> part of the toolchain.
> 
> After I renamed them to gar and granlib, the build system can no
> longer find them, as a result it will use default ones, i.e.,
> /usr/bin/ar and /usr/bin/ranlib, which target your current platform
> and thus can not be used to cross build.
> 
> You can solve this problem by updating your own world first, or by 
> replacing '/usr/bin/ar' and '/usr/bin/ranlib' with 'BSD' ar and ranlib
> by hand. 'BSD' ar is platform independent and handles all the ELF
> targets thus can be used directly (no need to recompile itself for
> target platform) by the build system.

Shall the crossbuild for CURRENT work on RELENG_[67] ? If not, this is a
huge regression.

Received on Thu Feb 21 2008 - 13:34:00 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:27 UTC