Allow the use of the 'depends_on provider' directive when dtrace(1)
isn't running as root. This is done by looking up providers in the
debug.dtrace.providers sysctl before trying an ioctl.
Don't call dt_provider_lookup() twice if we failed to read the sysctl.
Import part of r1712 from elftoolchain.

This revision makes it possible to update an ELF object opened in RDWR
mode, required by libdtrace.
Use official libelf APIs to add new symbols, rather than injecting a
buffer. The latter approach introduces some dependencies on libelf
internals, and in particular causes a double free on FreeBSD.
Tighten the bounds used in IS_OUT_OF_BOUNDS; j must be a valid index
into the input buffer, but the current code allows j to be -1 in the
reverse QS case.
Copy a kernel config from GENERIC.
Add KDB_UNATTENDED to my kernel config.
Don't compile umass(4) into the kernel.
Remove a bunch of devices I don't need, and set MODULES_OVERRIDE.
Fix a mutex recursion which occurs when a DTrace victim process forks.
Make sure to initialize $OBJS consistently regardless of whether $SRCS
is defined or not.
When newsyslog is used with the -t option, interval-based rotations
don't work properly. This because newsyslog always looks at the mtime of
${LOGNAME}.0 to see whether or not to do a rotation. Fix things so that
newsyslog looks for the most recently archived log when using the -t
option.
Remove an incorrect cast from my last commit.
Check j <= 0 instead of j - 1 < 0.
Make sure we don't exec anything before checking that the binary uses
the FreeBSD ABI.
Add a comment explaining the difference between the FreeBSD and Solaris
code.