gcc4: emit warning when ignoring alignment constraints

Currently, GCC 4.2 silently ignores the "aligned" attribute for
objects allocated on the stack if the specified minimum alignment
exceeds the platform's natural stack alignment.  This has bitten us in
the past, so we shouldn't allow this to continue.

Fixing the "ignores" problem seems hard, so this commit settles for
tackling the "silently" problem instead.

ok miod, and possibly guenther and deraadt
Add regress test for SIGSEGV and SIGBUS siginfo semantics.

According to POSIX, SIGSEGV should specify SEGV_ACCERR if the memory
pages are mapped, but the protections don't match the user's access
attempts, while SEGV_MAPERR should only be specified for pages that
are unmapped.  Some platforms currently handle this correctly, but not
all.

Additionally, SIGBUS/BUS_ADRERR should be generated instead of SIGSEGV
for access to file mapped pages that exceed the end of the file.
(Thanks to kettenis@ for suggesting this test.)

Currently failing, so not linked into the regress tree yet.
Below DIAGNOSTICS, document the SYSERR message level;
jmc@ wondered what it meant and agrees with this patch.
Since this is a library, place issetugid() before every getenv()
ok miod