<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55543>55543</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
SANITIZER_NO_UNDEFINED_SYMBOLS in practice always enabled and can't be disabled
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
glandium
</td>
</tr>
</table>
<pre>
When building `runtimes` (not `llvm`) using `-DLLVM_ENABLE_RUNTIMES=compiler-rt;...`, llvm/cmake/modules/HandleLLVMOptions.cmake adds `-Wl,-z,defs` to the linker flags, which virtually makes `SANITIZER_NO_UNDEFINED_SYMBOLS` a no-op that always defaults to on (in practice, what happens is that when `SANITIZER_NO_UNDEFINED_SYMBOLS` is on, `-Wl,-z,defs` is passed twice when building sanitizers).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNkkuPmzAQxz8NXKwgYh4JBw5JQ9RICZE2u121l8jgAdw1NsJmo91P38HZPg5VVQkxfsz8f_Nwpflb_tyBItUkJBeqJV4ajpOyogeDS-LRtdJ2PpXytUfj0YxM5sNzsTsev5yuRbnZHovrw1P5eDgVFy_a1bofhIRxMVov2gZB4CI_ESdC93XPXgBtr_kkEUT3n5niEma182CFViZwPoRxbhzpWWL84h1_HBqXmtXEdkCkUC8wkkay1syIWyfqjryK0U5MyjcyyziJy6Y8PB6-FQ_X8nx9KnfF_lAWu-vl62l7Pl5mRUaUXugBZZklTN7YmyFIY5O0ZsZpNfdDKDKMrLaihjsPnTs2DKAMEeYefJt7-l9MjNBq1vl7kXg9MGOAE3tD4F3417AMU8KKdxix8izweR7xLMqYb4WVkP8bTv6o42exoFglkYXDIDXDtFaWVEC4MO7cn0aZd9YOxos2ODT8WmG7qQpw3rj5mO5sFsOov0NtcSuMmdyMkySJI7_LIVstYQVVk65hSeN4XSUhD1dNyldZXIfUl6wCaXIv2XqUKrgRJ4FrL9n5IqchpWGyXIdhGC2zgKYJNGlKwyptmogmXhxCz4QM5jwCPbb-mLuUqglfSBxKYaz5fYndFa0CcDjUZ5Pt9Ji3Epsgpt537Nzl_gPoGgV5">