do not mark GNU_STACK WX in ELFs generated from assembly

When generating ELF objects from assembly, gcc and clang mark the
GNU_STACK program headers as RWX by default. This is a security issue,
so we make sure it is marked only RW.

This modifies Anthony G. Basile's original patch for Linux to set
.note.GNU-stack whenever the assembler supports it. It is surprising
that any modern toolchain would enable an executable stack without an
explicit request. The number of programs that need an executable stack
is surely much smaller than the number of programs that include assembly.
enable __STRICT_ALIGNMENT on sparc
do not double-link libcrypto

libssl already has LIBFLAGS for libcrypto, so adding -lcrypto is superfluous.
Revert "do not double-link libcrypto"

This reverts commit c83d468cfd5d3ca60a499b69c0b7c9d0b159d405.
It wasn't as superfluous as I thought on all platforms.
Merge recent upstream changes with compiler hardening

Conflicts:
	configure.ac