[CMake] Enable -z defs on Solaris
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 27 Jul 2022 10:33:51 +0000 (12:33 +0200)
committerRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Wed, 27 Jul 2022 10:33:51 +0000 (12:33 +0200)
commit415b1e872cb33b3354f2b7a11ec52d236cea46a1
treea7ebfc793cb044999bb32c618e12c1a9d47c0e13
parent42f87bb62d0719848842da60d2a8180b9e4d7c52
[CMake] Enable -z defs on Solaris

I wondered why I hadn't seen the link failures in D130571
<https://reviews.llvm.org/D130571> on Solaris/sparcv9 and found that
Solaris, unlike Linux, doesn't use `-Wl,-z,defs` when linking shared
objects.  The three affected shared objects indeed have undefined
references to several 64-bit atomics.

This patch will expose such issues in the future by defaulting to
`-Wl,-z,defs` on Solaris, as recommended in `ld(1)`.

Tested on `sparcv9-sun-solaris2.11` and `amd64-pc-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D130572
llvm/cmake/modules/HandleLLVMOptions.cmake