<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">