LLVM currently emits .note.GNU-stack sections on all ELF targets.
However, Solaris ld doesn't know/care about them. Even worse, with the revised Solaris GNU ld patch (D85309), there are hundreds of warnings:
/usr/gnu/bin/ld: warning: /usr/lib/amd64/crtn.o: missing .note.GNU-stack section implies executable stack /usr/gnu/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
The Solaris crts are not going to change here, and even if they were, GNU ld would emit PT_GNU_STACK segments that Solaris ld.so.1 ignores.
So the note sections are completely useless on Solaris and this patch disables their creation.
Instead, Solaris has its own mechanisms to control stack executability: PT_SUNW_STACK, DT_SUNW_SX_NXSTACK and the system-wide control via sxadm where nxstack defaults to on.
Tested on amd64-pc-solaris2.11 and sparcv9-sun-solaris2.11 with Solaris ld and GNU ld, and x86_64-pc-linux-gnu.
The prevailing style is to omit else here