kernel/drm2: Some build and warning fixes.
sh: Sync with FreeBSD

* Recognize "--" and explicitly reject options in wait builtin.
* Mention possible ambiguities with $(( and ((.
* Write as much into the heredoc pipe as possible, to avoid forking.
* Don't modify exit status when break/continue/return passes !.
* Document a few expansions for the $PS1 and $PS2 environmental
  variables.
* Don't consider jobs -s/-p as reporting the status of jobs.
* Improve error handling in read builtin.
* Use O_CLOEXEC and F_DUPFD_CLOEXEC instead of separate fcntl() call.
* Remove linked list of stack marks.
* Allow multiple operands in wait builtin.
* Return status 127 for unknown jobs in wait builtin.
* Do not read from stdin if an error occurs during -i -c cmd.
* Remove mkinit.

Obtained-from:   FreeBSD
test: Sync with FreeBSD.

* Add examples and non-standard primaries to the manual page.
* Reduce code size of ops table.
* Put some static keywords in the source code.
* Accept == as an alias of = which is a popular GNU extension.
* Add more regression tests.

-We have eaccess(2) now, so use it.

Obtained-from:   FreeBSD