Due to a previous effort that saw binutils support DragonFly, the
config.bfd file no longer needs to be modified. Unfortunately the
official binutils version wasn't modified the same way as it was in
base, so the auto-merge didn't catch that there were two versions of
each DragonFly entry. Luckily the good version came first, so this
is simply a cleanup.

Also the README.DRAGONFLY file was updated to include a new set of
local modifications introduced with the FAKE_PROCESS_ID changes.

The fix for 7.2 seems to break on gdb 7.3 with addition of JIT
initialization which assumes at least one inferior defined. The problem
is that this inferior isn't defined before the JIT routine is run.

Changing the fake process ID from zero has a lot of risk (miss some,
accidently change zero's that need to remain zero, etc), but it seems to
be the only way to fix it cleanly.

* australasia: Samoa moves from east to west of the international date line
(changes from UTC-11 to UTC+13). It will skip December 30, 2011.
Thanks to David Zuelke and Mark Sim-Smith.

* europe: Use KALT as abbreviation for Europe/Kalinigrad from spring 2011
forward (thanks to Yoshito Umaoka).

* iso3166.tab: Add SS (South Sudan) entry.

* northamerica:
- Newfoundland changes time of day for DST start and end to 2:00 a.m.
starting fall 2011 and forward (thanks to Michael Pelley).
- Change America/Resolute use of EST to 2006-2007 only (thanks to
Chris Walton).
- Assume Metlakatla abandoned use of daylight saving as a result of
its 1983 vote.
- Avoid unnecessary use of US rule in America/Honolulu; fix two
typos in America/Honolulu comments.
- Adjust America/Goose_Bay as well as America/St_Johns from fall 2011
forward (thanks to Chris Walton).

-Default to displaying bits/s for the rate, and bytes for the totals.
-kilo, mega, giga, tera are all powers of 1000, not 1024.
-Add two new commands: autobyte and autobit which will automatically
change the scale factor in bytes or bits, respectively. auto defaults
to displaying bits.

* dsched_bfq is a budget fair queuing scheduling policy for the dsched
framework.

* NOTE: this scheduler is still highly experimental and
work-in-progress, it's not recommended for widespread use (yet).
There are several well-known issues, such as a possible deadlock on
unloading the module.

* Fix several ptrace signal races which could cause the parent's wait()
function to block forever (or until the parent is killed). Generally
speaking we have to use the process token to interlock the wakeup()/tsleep()
sequence used by the ptrace code.

* Fix a MP race in the wait code, we must hold the child process's token
when manipulating its p_flag field.

* Add a request polling emulation layer to dsched. This emulated
request polling as if a disk driver would poll for requests instead
of requests being actively pushed down.

* The policy->polling_func() callback is called whenever a BIO
completes.

* A field in the diskctx that shows the current tag queue depth and the
maximum tag queue depth (currently fixed value of 32) are used in the
policies using request polling directly and is not enforced in the
dsched layer. That is, a policy using request polling emulation
should take care of not having (many) more BIOs in flight than
max_tag_queue_depth.

* A deadlock can occur if a lock is held around the strategy call when
the completion is synchronous and ends up in the destruction of a
tdio, as both will acquire the same diskctx lock.

* Refactor the code around strategy calls so that the bios are first
prepared, under the protection of the lock, and inserted into a local
array. Once that is ready and the bios are ready and taken out of
their respective queues, the locks are dropped and the strategy call
occurs locklessly.

The problem with fixing this was that the mly(4) driver modifies
the SCSI inquiry data and uses it for its own purposes (to show
the disk type and status). So I had to make these fields a bit
more recognizable to the quirks code because the previous strings
were too generic for my taste.

Because sh executes commands in subshell environments without forking in
more and more cases, it makes sense to describe subshell environments
more precisely using ideas from POSIX, together with some
DragonFly-specific items.

In particular, the hash and times builtins may not behave as if their
state is copied for a subshell environment while leaving the parent
shell environment unchanged.

* Shell patterns are also for ${var#pat} and the like.
* An '!' by itself will not trigger pathname generation so do not call
it a meta-character, even though it has a special meaning directly
after an '['.
* Character ranges are locale-dependent.
* A '^' will complement a character class like '!' but is non-standard.

POSIX requires a -h option to sh and set, to locate and remember
utilities invoked by functions as they are defined. Given that this
locate-and-remember process is optional elsewhere, it seems safe enough
to make this option do nothing.

POSIX does not specify a long name for this option. Follow ksh in
calling it "trackall".

Replacing ;; with the new control operator ;& will cause the next list
to be executed as well without checking its pattern, continuing until
a list ends with ;; or until the end of the case statement. This is
like omitting "break" in a C "switch" statement.

The sequence ;& was formerly invalid.

This feature is proposed for the next POSIX issue in Austin Group
issue #449.

Have mkbuiltins write the prototypes for the *cmd functions to
builtins.h instead of builtins.c and include builtins.h in more
.c files instead of duplicating prototypes for *cmd functions in
other headers.

Note that \u/\U are processed using the locale that was active when the
shell started. This is necessary to avoid behaviour that depends on the
parse/execute split (for example when placing braces around an entire
script). Therefore, UTF-8 encoding is implemented manually.

?, [...] patterns match codepoints instead of bytes. They do not match
invalid sequences. [...] patterns must not contain invalid sequences
otherwise they will not match anything. This is so that ${var#?} removes
the first codepoint, not the first byte, without putting UTF-8 knowledge
into the ${var#pattern} code. However, * continues to match any string
and an invalid sequence matches an identical invalid sequence. (This
differs from fnmatch(3).)

A string between $' and ' may contain backslash escape sequences similar
to the ones in a C string constant (except that a single-quote must be
escaped and a double-quote need not be). Details are in the sh(1) man
page.

This construct is useful to include unprintable characters, tabs and
newlines in strings; while this can be done with a command substitution
containing a printf command, that needs ugly workarounds if the result
is to end with a newline as command substitution removes all trailing
newlines.

The construct may also be useful in future to describe unprintable
characters without needing to write those characters themselves in 'set
-x', 'export -p' and the like.

The implementation attempts to comply to the proposal for the next issue
of the POSIX specification. Because this construct is not in
POSIX.1-2008, using it in scripts intended to be portable is unwise.

Matching the minimal locale support in the rest of sh, the \u and \U
sequences are currently not useful.