cngetc: use cpu_spinwait to ease the cncheckc loop a tiny bit

Reviewed by:	julian
MFC after:	10 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@241295 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
g_part_taste: directly destroy consumer and geom here, no need for withering

Besides withered but still alive consumers may interfere with
re-tatsing.

MFC after:	16 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@241296 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
zvol: set mediasize in geom provider right upon its creation

... instead of deferring the action until first open.
Unlike upstream this has no benefit on FreeBSD.
We know that as soon as the provider is created it is going to be tasted
and thus opened.  Initial mediasize of zero causes tasting failure
and subsequent retasting because of the size change.

MFC after:	14 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@241297 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add support for bmake. This includes:
1.  Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE,
    there's a bootstrap complication in ths respect. Avoid it. Make the
    necessary changes to have upgrade_checks work wth bmake anyway.
2.  Remove the use of -E. It's not needed in our build because we use ?= for
    the respective variables, which means that we'll take the environment
    value (if any) anyway.
3.  Properly declare phony targets as phony as bmake is a lot smarter (and
    thus agressive) about build avoidance.
4.  Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot
    smarter about build avoidance and should not find files we generate in
    the source tree. We should not have files in the repository we want to
    generate, but this is an easier way to cross this hurdle.
5.  Have behavior under bmake the same as it is under make with respect to
    halting when sub-commands fail. Add "set -e" to compound commands so
    that bmake is informed when sub-commands fail.
6.  Make sure crunchgen uses the same make as the rest of the build. This
    is important when the make utility isn't called make (but bmake for
    example).
7.  While here, add support for using MAKEOBJDIR to set the object tree
    location. It's the second alternative bmake looks for when determining
    the actual object directory (= .OBJDIR).

Submitted by:	Simon Gerraty <sjg@juniper.net>
Submitted by:	John Van Horne <jvanhorne@juniper.net>


git-svn-id: svn+ssh://svn.freebsd.org/base/head@241298 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
boot/console: handle consoles that fail to probe

- clarify meaning of console flags
- perform i/o via a console only if both of the following conditions are met:
   o console is active (selected by user or config)
   o console flags that it can perform the operation
- warn if a chosen console can not work (the warning may go nowhere without
  working and active console, though)

Reviewed by:	jhb
Tested by:	Uffe Jakobsen <uffe@uffe.org>,
		Olivier Cochard-Labbe' <olivier@cochard.me>
MFC after:	26 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@241299 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
i386 comconsole: don't loop forever if hardware doesn't respond

- clear capability flags when hw timeouts
- retire comc_started status variable and directly use c_flags to see
  if comconsole is selected for use

Reviewed by:	jhb
Tested by:	Uffe Jakobsen <uffe@uffe.org>,
		Olivier Cochard-Labbe <olivier@cochard.me>
MFC after:	26 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@241300 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f