Page MenuHomeFreeBSD

Fix installworld not having proper CC in the CROSS_TOOLCHAIN case.
ClosedPublic

Authored by imp on Nov 5 2015, 7:13 PM.

Details

Summary

Move CROSS_TOOLS stuff to top of file (before bsd.compiler.mk) so that
decisions made by bsd.compiler.mk can properly affect the defaults in
src.opts.mk. Move that to after bsd.compiler.mk. Add a comment about
why we include bsd.compiler.mk here despite the fact that src.opts.mk
currently does too. Also remove bsd.arch.inc.mk that's been OBE.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

imp retitled this revision from to Fix installworld not having proper CC in the CROSS_TOOLCHAIN case..
imp updated this object.
imp edited the test plan for this revision. (Show Details)
adrian added a subscriber: adrian.

I'll test this patch out RSN. Thanks!

bdrewery requested changes to this revision.Nov 5 2015, 7:20 PM
bdrewery added a reviewer: bdrewery.
bdrewery added a subscriber: bdrewery.
bdrewery added inline comments.
Makefile.inc1
263 ↗(On Diff #9965)

Loses CROSS_TOOLCHAIN here, needs +=

This revision now requires changes to proceed.Nov 5 2015, 7:20 PM
Makefile.inc1
263 ↗(On Diff #9965)

Hm, so doing += has the side effect of maintaining whatever was in there before this point. Should we initialise it to something specific very early on so we don't get env/var pollution?

The idea seems like the right thing to me.

Makefile.inc1
263 ↗(On Diff #9965)

+= is right here. Good eye.

imp edited edge metadata.

+= per bdrewery

In D4087#85659, @brooks wrote:

The idea seems like the right thing to me.

Even for the CROSS_TOOLCHAIN_PREFIX goo? I didn't touch that but think I might need to.

bdrewery edited edge metadata.
This revision is now accepted and ready to land.Nov 5 2015, 8:39 PM
This revision was automatically updated to reflect the committed changes.
In D4087#85665, @imp wrote:
In D4087#85659, @brooks wrote:

The idea seems like the right thing to me.

Even for the CROSS_TOOLCHAIN_PREFIX goo? I didn't touch that but think I might need to.

CROSS_TOOLCHAIN just sets those things. It may be that we want to kill off CROSS_TOOLCHAIN_PREFIX and CROSS_COMPILER_PREFIX since aren't isn't very useful in practice. CROSS_BINUTILS_PREFIX only works because only GNU binutils or compatibly named tools are used. CROSS_COMPILER_PREFIX is less likely to work since it depends on cc, cpp, and c++ links being installed which isn't common for compilers. CROSS_TOOLCHAIN_PREFIX just sets both which is unlikely to be useful in practice.

(My original thought was that setting up a few symlinks and passing one directory would be an easier way to set all the X* variables, but in practice that didn't work out.)