[cmake] Don't pass -z discard-unused to Illumos ld
I'm currently working to port libc++ to Solaris. There exists a slightly
bitrotten port already, which was done on Illumos, an OpenSolaris
derivative. In order not to break that port with my work, I need to test
the result on both Solaris and Illumos. While doing so, it turned out that
Illumos ld doesn't support the -z discard-sections=unused option
currently used on SunOS unconditionally.
While there exists a patch
for LLVM 9.0 in the OpenIndiana repository, it apparently hasn't been
submitted upstream and is completely wrong: it replaces
-z discard-sections=unused with -z ignore. In terms of the equivalent
gld options, this means replacing --gc-sections with --as-needed.
This patch instead tests if the linker actually supports the option before
Tested on amd64-pc-solaris2.11 (all of Solaris 11.4, 11.3 and OpenIndiana
Differential Revision: https://reviews.llvm.org/D81545