Skip to content

Backport 801b519dfd01 ("[sanitizer_common] Fix build on ppc64+musl (#120036)") to LLVM 20 #138437

Open
@ziyao233

Description

@ziyao233

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Needs Triage

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions