Total confusion over toolchain/xdev behavior

Warner Losh imp at bsdimp.com
Tue Jul 8 03:07:54 UTC 2014


On Jul 7, 2014, at 8:59 PM, Tim Kientzle <tim at kientzle.com> wrote:

> 
> On Jul 6, 2014, at 4:07 PM, Sean Bruno <sbruno at ignoranthack.me> wrote:
> 
>> Objective:  install an xcompile toolchain into a jail for use by
>> poudriere during arm/mips/sparc/power ports pkgs builds.  The build
>> should be possible from a non-root user.
>> 
>> As far as I can tell, the xdev target is completely busted for non-clang
>> arch's right now as it tries to build clang no matter what I do.
> 
> I think you can avoid that if you specify both:
>  WITHOUT_CLANG=t WITHOUT_CLANG_BOOTSTRAP=t
> 
>> Its missing some pretty key documentation to making it work correctly, so a
>> lot of my attempts have been "guess and check" with verbose make.
> 
> Some of the complexity here might just be that ‘xdev’ is currently
> trying to do too much.  I think I would find it simpler to use if
> it were a handful of separate targets:
> 
> # Build and install a cross-GCC using the in-tree sources
> make XDEV=arm XDEV_ARCH=armv6 xdev-gcc
> 
> # Build and install a cross-clang using the in-tree sources
> make XDEV=arm XDEV_ARCH=armv6 xdev-clang
> 
> # Build and install cross-binutils using the in-tree sources
> make XDEV=arm XDEV_ARCH=armv6 xdev-binutils
> 
> # Build and install cross-libraries
> # Prerequisite: (xdev-gcc or xdev-clang) and xdev-binutils
> make XDEV=arm XDEV_ARCH=armv6 xdev-libs

Interesting ideas…  Will have to ponder them again, but in the earliest days
I tried these and hit some turbulence… But as I said elsewhere on this thread,
that was maybe 10 years ago now and maybe things have changed :)

> # Have I missed anything?
> 
> If I understand correctly, xdev-clang in many cases
> could install symlinks to the host clang without
> actually building anything.  (If I’m right about that,
> maybe we could consider installing those symlinks
> for every architecture as part of the default base system.)

The driver program would need to know to use a different sys root (or we’d
need to install things in the clang centric way) as well as which architecture
to use, which it might be able to guess based on the binary used to invoke
it (now that’s a feature that has a checkered past, some good, some down
right awful). I’ve been after the clang folks to justify bringing in everything on
every platform by providing an example cross build in the base, but so far
nothing has materialized...

Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20140707/28d69f3c/attachment.sig>


More information about the freebsd-arch mailing list