Update tools/shlib-compat.

- Update dwarfdump / compiler support.
  Use hex instead of decimal for integers.
  Add boolean and restrict type definitions.
  Add options for specifing dwarfdump and objdump executables.

- Fix reporting missing symbol definitions as matching.

- Compare external variable definitions.

- Exclude special symbols like _init, _end by default.

- Fix test build.
Face the fact that we have no idea where the ports tree really lives.
Start process of removing the use of the deprecated "M_FLOWID" flag
from the FreeBSD network code. The flag is still kept around in the
"sys/mbuf.h" header file, but does no longer have any users. Instead
the "m_pkthdr.rsstype" field in the mbuf structure is now used to
decide the meaning of the "m_pkthdr.flowid" field. To modify the
"m_pkthdr.rsstype" field please use the existing "M_HASHTYPE_XXX"
macros as defined in the "sys/mbuf.h" header file.

This patch introduces new behaviour in the transmit direction.
Previously network drivers checked if "M_FLOWID" was set in "m_flags"
before using the "m_pkthdr.flowid" field. This check has now now been
replaced by checking if "M_HASHTYPE_GET(m)" is different from
"M_HASHTYPE_NONE". In the future more hashtypes will be added, for
example hashtypes for hardware dedicated flows.

"M_HASHTYPE_OPAQUE" indicates that the "m_pkthdr.flowid" value is
valid and has no particular type. This change removes the need for an
"if" statement in TCP transmit code checking for the presence of a
valid flowid value. The "if" statement mentioned above is now a direct
variable assignment which is then later checked by the respective
network drivers like before.

Additional notes:
- The SCTP code changes will be committed as a separate patch.
- Removal of the "M_FLOWID" flag will also be done separately.
- The FreeBSD version has been bumped.

MFC after:	1 month
Sponsored by:	Mellanox Technologies
Allow load_rc_config to be called without a service name.

MFC after:	1 week
The early-late divider was originally set to mountcritlocal.  Since that
service does not run in jails, it was necessary to change it to something
else when jailed, and NETWORKING was arbitrarily chosen.  The divider was
later moved to FILESYSTEMS when it was introduced, but the logic to change
it to NETWORKING when jailed remained.  Remove it, as it no longer serves
any purpose.

PR:		194975
MFC after:	1 week
Disable the vxlan code until the people reponsible for it can come up with
new command names that don't conflict with existing commands.

Pointy hat to:	bryanv
Move ctlfe_onoffline() out of lock to let it sleep when needed.

Do some more other polishing while there.

MFC after:	2 weeks
Pull in r209785 from upstream libc++ trunk (by Marshall Clow):

  Fix a problem exposed by r208825, which caused bind (and other bits of
  libc++) to stop working. And tests

This fix is needed to support clang 3.5.0 and higher, which are more
strict about forming pointer-to-function types with cv-qualifiers or
ref-qualifiers.  See also the upstream PR <http://llvm.org/PR19742> and
<http://llvm.org/viewvc/llvm-project?rev=208825&view=rev>

Reported by:	amdmi3
MFC after:	3 days
When passing LUN IDs through treat ASCII values as fixed-length, not
interpreating NULLs as EOLs, but converting them to spaces.

SPC-4 does not tell that T10-based IDs should be NULL-terminated/padded.
And while it tells that it should include only ASCII chars (0x20-0x7F),
there are some USB sticks (SanDisk Ultra Fit), that have NULLs inside
the value.  Treating NULLs as EOLs there made those LUN IDs non-unique.

MFC after:	1 week
Fix elftoolchain tools in-tree build

 * make variables static
 * add header for uint*_t typedefs
Temporarily disable non-FreeBSD NT_ note types
Track libarchive API change
Disable recursion for the process spinlock.

Tested by:	pho
Discussed with:	jhb
Sponsored by:	The FreeBSD Foundation
MFC after:	1 month
Build infrastructure for elftoolchain tools

Set WITH_ELFTOOLCHAIN_TOOLS in src.conf to use the elftoolchain version
of the following tools:

 * addr2line
 * elfcopy (strip / mcs)
 * nm
 * size
 * strings

Reviewed by:	bapt (earlier version)
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1224
Document ISP 2532 support and hint.isp.0.vports tunable.

MFC after:	1 week
Allow multiple devices to mmap.  It's impossible to prevent this with
checks on the open/close functions.

MFC after:	1 week
Fix inverted logic introduced in r272154.

Noticed by:	trasz
MFC after:	2 weeks
Pull in the NetBSD global offset table handling code. Clang 3.5 creates
relocations the linker complains about.

Obtained from:	NetBSD
MFC after:	1 Week
Set the correct architecture when targeting ARMv7

MFC after:	1 Week
Sponsored by:	ABT Systems Ltd
Use the floating-point instruction on ARMv7 as the clang 3.5 integrated
assembler doesn't allow these two instructions to use co-processor 11.

MFC after:	1 Week
Sponsored by:	ABT Systems Ltd