Page MenuHomeFreeBSD

Various universe fixes
ClosedPublic

Authored by imp on Mar 28 2020, 6:52 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Unknown Object (File)
Fri, Mar 22, 5:11 PM
Subscribers
None

Details

Summary

Add 'WITHOUT_WORLDS' and 'WITHOUT_KERNELS' as aliases for the inconsistently named MAKE_JUST_KERNELS and MAKE_JUST_WORLDS respectively. I always forget the MAKE_ part, and it's inconsistent with everything else.

Add documentation to Makefile and build(7)

Fix make kernels to be exactly the same as make universe -DWITHOUT_WORLDS.

Add powerpcspe to EXTRA_ARCH_powerpc so it's added to the mix when EXTRA_TARGETS are defined.

Describe the targets in EXTRA_TARGETS as semi-supported.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Consistently use plurals...

Ooops. Gotta set __DO_KERNELS directly with UNIVERSE_TARGET...

share/man/man7/build.7
788 ↗(On Diff #69971)

Also WITHOUT_WORLDS from reading the code above.

share/man/man7/build.7
788 ↗(On Diff #69971)

No, it doesn't. It replaces buildworld with $UNIVERSE_TARGET, but then does that for all TARGETS.

share/man/man7/build.7
788 ↗(On Diff #69971)

Though there was a bug introduced in my last version that made it imply that. Thanks for the catch..

Opps, UNIVERSE_TARGET shoulnd't turn of __DO_WORLDS. thanks brooks

  • Fix make kernels to match original commit message
  • Document universe better
  • Add powerpcspe to the EXTRA_TARGETS
imp retitled this revision from Add 'WITHOUT_WORLDS' and 'WITHOUT_KERNELS' as aliases for the inconsistently named MAKE_JUST_KERNELS and MAKE_JUST_WORLDS respectively. I always forget the MAKE_ part, and it's inconsistent with everything else. to Various universe fixes.Mar 31 2020, 3:19 PM
imp edited the summary of this revision. (Show Details)
imp added a reviewer: bdrewery.
This revision is now accepted and ready to land.Mar 31 2020, 5:35 PM

LGTM

Makefile
482 ↗(On Diff #70058)

curious about this one

Makefile
482 ↗(On Diff #70058)
Fix make kernels to match original commit message

make kernels was originally documented as the same as make universe
-DJUST_BUILD_KERNELS. However, it used the UNIVERSE_TARGET=buildkernel which is
subtly different in that it also builds the toolchains and doesn't build the
LINT modules unless they happened to already exist in the tree. This unbreaks
POLA and just builds the kernels, including LINT, now rather than all that other
stuff as well. When the commit originally happened, the two just differed by the
LINT bug.

is the commit message for this change. Ian's original commit log says:

Author: ian <ian@FreeBSD.org>
Date: Sun Jan 31 17:32:58 2016 +0000
r295099

Add make universe targets "kernels" and "worlds".

"make kernels" is now shorthand for "make universe -DMAKE_JUST_KERNELS"
"make worlds"  is now shorthand for "make universe -DMAKE_JUST_WORLDS"

The kernels target includes modules (unless you add -DNO_MODULES).

And of course you can still add all the other universe options, such as
"make kernels TARGETS=arm" to build kernels for all arm arches, or
TARGET_ARCH=armv6 to build all armv6 kernels, etc.

Reviewed by:    imp

Looks like I missed spotting the bug at the time. Then later, bdrewery added universal toolchain support:

Author: bdrewery <bdrewery@FreeBSD.org>
Date: Wed Jun 27 16:58:10 2018 +0000

tinderbox: Only build clang/lld once if needed.

Need to handle LLD_BOOTSTRAP separately (for archs like i386).
This would be much better off with an off-by-default option like
SHARED_TOOLCHAIN that universe force-enabled.  Then a normal buildworld
would store the toolchain there if enabled and otherwise in WORLDTMP
with only the 1 arch selected.

MFC after:      3 weeks
Sponsored by:   Dell EMC
revision=335711

So 2 1/2 years later the breakage became apparent. I didn't notice until I tried to do a make kernels (which I'd forgotten about) to test this stuff that the bugs were here.

This revision was automatically updated to reflect the committed changes.
imp marked an inline comment as done.