<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/138437>138437</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Backport 801b519dfd01 ("[sanitizer_common] Fix build on ppc64+musl (#120036)") to LLVM 20
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ziyao233
      </td>
    </tr>
</table>

<pre>
    As described in the original commit, not only ppc64 but also riscv64 and mips platforms were affected by the missing guard, causing errors like,

```
[1/10] Building CXX object lib/sanitiz...cv64.dir/sanitizer_linux_libcdep.cpp.o
FAILED: lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.riscv64.dir/sanitizer_linux_libcdep.cpp.o 
/usr/sbin/riscv64-unknown-linux-musl-clang++ --target=riscv64-unknown-linux-musl -DHAVE_RPC_XDR_H=0 -D__func__=__FUNCTION__ -I/root/Source/llvm-project/compiler-rt/lib/sanitizer_common/.. -std=c++17 -O3 -MD -MT lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.riscv64.dir/sanitizer_linux_libcdep.cpp.o -MF lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.riscv64.dir/sanitizer_linux_libcdep.cpp.o.d -o lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.riscv64.dir/sanitizer_linux_libcdep.cpp.o -c /root/Source/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
/root/Source/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp:627:29: error: use of undeclared identifier 'TlsPreTcbSize'
  627 |   const uptr pre_tcb_size = TlsPreTcbSize();
      |                             ^
1 error generated.
[2/10] Building CXX object lib/sanitiz...cv64.dir/sanitizer_linux_libcdep.cpp.o
```

when building compiler-rt for riscv64-unknown-linux-musl platforms.

I've tested the referred patch does fix the problem and could be applied cleanly to branch release/20.x.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8VUuP3CgQ_jX0pWSLhnY_Dj6427Ey0kwSJbNRbhaPcjc7NFiA5_XrV7gnm81GifawGcTBBur91VciRnN0iDWp9qRqF2JKJx_qZ_MkPON8Ib1-qpsIGqMKRqIG4yCdEHwwR-OEBeXPZ5MIO4DzCbyzTzCOar0COSUQNnoIJqr79QqE03A2Y4TRijT4cI7wgAFBDAOqhBrk06z6bGI07gjHSQSdFSsxzQcYgg8RrLlDwg6ENnmv6cumDan2S8K6JSVVC_vJWJ2lDl--gJd_okpgjSSsi8KZZJ7LssxuldqEb4cYemvc9NhbI5XGsVTjWHpCm665un7TEt58rwRDnxPgHWHd4UbcYWcsRsK6j7efvr44zA-ujVTlSyr-i03IAbFuivNLabKFF_FicnfOP7hiFivOU7SFssIdCdsTtoeiSCIcMRHe_lwCivZt8_lN__HDof_SfuzfEt5SKNq-Hyan-p7wtu-7P94dbq_ev-t7KK6yA94nwrpPfgoKCeusvT8XY_A5u4R1yp9HYzEUIf_9NFFlCUVMmvBWXTxebqB4z6G4aaG4uX21DBc33WvZKjUU_vUCU_C_FesXli4I_f1meLNmG8Ibtsv9N7NA_pgigh9gchqVFSFzk0aXzGAwAGGbWxs_BLxV8pN5RsI2hDYAa7YBsjkAgPIuJpjGFGAM2Ccl-2ieEQhv4V-iW5JN72cFeV0U_HyR6g2hzfLiKhzRYRAJdXnhKPa7OOo7LqTNwwkdyK8m_lEHGHyAXzDD3_xcXhRdEba5R0gYM0tnig44YMgZH0VSJ9AeIwzmcb4bg5cWzzPdKz9ZDRJBjKM1qEFZFHlEJA8yCKdOENCiiBk4jJaP5ULXXO_4TiywXm5Wa87Xuy1dnGq5ksNWrfWOD4ptBNutdtuKiq1Y6RUTKBemZpRVtKIrWvE1oyVlg9yILW6364rzgZMVxbMwtswILX04LkyME9ZLvl3xzcIKiTbOg5Axhw8w3xLG8lwM9QxrOR0jWVFrYorf1CSTLNZ7oe5GHxJs6VJWy50eNF3CDB5Gqv0PmK9a6MzjpUDg3WVqErafSzCL8SWjlK8z-BgjbJezdn39-QYYXUzB1qeUxkh4bkLCuqNJp0mWyp9fmvDHXpwjyhTzEvJ9zf4KAAD__-kPqbo">