pktgen: Use atomic for pktgen and module reference count

Module's token is no longer needed in many places.  Ease the upcoming
changes to support multiple hardware TX queues.
gcc47: Fix plugin mechanism

There were two problems with gcc 4.7 LTO plugin:
1) It needed a number of object files from libiberty.
   Unfortunately the previous object files couldn't be used as they need
   to be built with -fPIC and libiberty is only an internal (non-pic) lib.
2) The plugin header directory was missing completely, as seen with
   gcc -print-file-name=plugin only returning "plugin".
Unbreak world (gcc47 plugin)

The installincludes target is run before "depend" target, so gtype.state
hasn't been created by the time "installincludes" is executed in stage 4.
Luckily there is a similar functionality for FILES that is executed at
the install phase, which will unbreak world (broken on previous commit).

Other headers are generated as well, so swap INCSGROUPS with FILESGROUPS
for everything to avoid having to figure which ones.  The headers are
needed at runtime, not buildtime, so this is okay.
Promote GCC 4.7 to be the default compiler

This commit causes world and kernel to be built by GCC 4.7 if the compiler
is not specified.  As a side effect, the make variable "NO_GCC47" no longer
functions.  GCC 4.7 will always be built.  In addition to changing the
default of WORLD_CCVER, the CCVER variable also defaults to "gcc47" now.

The variable "NO_GCC44" has been resurrected to prevent GCC 4.4 from
being built.  As noted in the UPDATING file, using this option is highly
discouraged.  GCC 4.4 is very useful in building some packages in pkgsrc
that fail to build with GCC 4.7's stricter standards.  The new DPorts
system is designed to use GCC 4.4 by default, regardless of the base's
default compiler setting.  If at all possible, build *both* compilers
for the maximum flexibility to build packages.
Unbreak world with NO_GCC44

gcc44 in now optional, do not require its use during buildworld
anymore.
Merge branch 'master' into gsocdrm_merger
pktgen: Move buflist and stop callout into per-cpu data struct

Prepare for the multiple TX queue support.
pktgen: Factor out pktgen_ref

Will be needed for multiple TX queue support
pktgen: Support multiple TX queues

- Dispatch start operation to subqueue owner CPU's netisr.
- Add PKTGENMQSTART to utilize multiple TX queues
kernel -- ffs: Softdep lock fix (lk unheld in process_worklist_item)

In process_worklist_item, from newdirrem/request_cleanup, the softdep
lock was not held before removing workitems. Make newdirrem take the
softdep lock around request_cleanup.

Reported-by: swildner@
Bug: 2501
UPDATING: Adjust heading.
Fix some more things related to the switch to gcc47.

* Adjust make.conf and its manual page.

* Create gcc47 MLINKS properly (clean up the Makefile a bit, too).

* Exclude gcc44 in the qemu setup.
libm: Exclude -Woverflow from -Werror in s_csqrtl.c for gcc47/i386.

The issue is that a long double in gcc47 on i386 doesn't seem to be
able to hold LDBL_MAX. At least a warning is generated. Cause
unknown, might be a bug in gcc (or our gcc's configuration).

gcc47 on FreeBSD/i386 does not show this behavior (no warning
generated at least).

Until we have a better clue, don't turn this warning into an error,
even if -Werror is specified, so that building can go on.

FreeBSD-testing: tuxillo
Remove xlint. It's outdated and there are much better checkers around.

clang static analyzer, cppcheck, coccinelle et al.

So there's no need to maintain it in base.
Enable -Werror for world building with gcc47.

The kernel still has warnings to be reviewed.
ig_hal: Merge intel em-7.3.4 and igb-2.3.7 hardware abstraction layer
emx: Sync w/ intel em-7.3.4

Move PBA configuration into emx_reset(); mainly to put hardware into
stable state after the driver attached.
em: Sync w/ intel em-7.3.4

- Move PBA configuration into em_reset(); mainly to put hardware into
  stable state after the driver attached.
- Add workaround for PCH2 chips during resuming.
- Fixup flow control parameters for PCH, ICH9, ICH10 and ES2LAN chips.
- Remove no longer needed ERT setting for PCH2, ICH9 and ICH10 chips.
igb: Sync w/ intel igb-2.3.7

- Support I210 and I211
- EEE settings are only applied to copper chips
- Explicitly disable DMA coalesce, if not requested
Add manual pages for kether_ntoa and kether_aton functions.