Issue 141723
Summary Regression for RISC-V caused by b754e40 "MC: Remove redundant relocations for label differences"
Labels backend:RISC-V, regression, mc
Assignees MaskRay
Reporter asb
    After b754e40 commit, the `XRay-riscv64-linux :: TestCases/Posix/coverage-sample.cpp` test case starts to fail:

```
/home/buildbot-worker/bbroot/clang-riscv-rva23-2stage/stage2/./bin/clang --driver-mode=g++ -fxray-instrument   -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta    -std=c++11 /home/buildbot-worker/bbroot/clang-riscv-rva23-2stage/llvm/compiler-rt/test/xray/TestCases/Posix/coverage-sample.cpp -o /home/buildbot-worker/bbroot/clang-riscv-rva23-2stage/stage2/runtimes/runtimes-bins/compiler-rt/test/xray/RISCV64LinuxConfig/TestCases/Posix/Output/coverage-sample.cpp.tmp # RUN: at line 3
+ /home/buildbot-worker/bbroot/clang-riscv-rva23-2stage/stage2/./bin/clang --driver-mode=g++ -fxray-instrument -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -std=c++11 /home/buildbot-worker/bbroot/clang-riscv-rva23-2stage/llvm/compiler-rt/test/xray/TestCases/Posix/coverage-sample.cpp -o /home/buildbot-worker/bbroot/clang-riscv-rva23-2stage/stage2/runtimes/runtimes-bins/compiler-rt/test/xray/RISCV64LinuxConfig/TestCases/Posix/Output/coverage-sample.cpp.tmp
/usr/bin/ld: .eh_frame_hdr refers to overlapping FDEs
/usr/bin/ld: final link failed: bad value
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

The following recipe is sufficient to reproduce (and a variant of it was used to do the bisect and confirm the problematic commit):

```sh
cmake -G Ninja \
  -DLLVM_TARGETS_TO_BUILD="X86;RISCV" \
  -DLLVM_ENABLE_PROJECTS='clang;lld' \
 -DLLVM_ENABLE_RUNTIMES=compiler-rt \
  -DLLVM_CCACHE_BUILD=ON \
 -DLLVM_USE_RELATIVE_PATHS_IN_FILES=ON \
  -DCMAKE_C_COMPILER=clang \
 -DCMAKE_CXX_COMPILER=clang++ \
  -DLLVM_ENABLE_LLD=ON \
 -DCMAKE_BUILD_TYPE=Release \
  -DLLVM_ENABLE_ASSERTIONS=ON \
 -DLLVM_RUNTIME_TARGETS=riscv64-linux-gnu \
 -DRUNTIMES_riscv64-linux-gnu_CMAKE_SYSTEM_NAME=Linux \
 -DRUNTIMES_riscv64-linux-gnu_CMAKE_SYSROOT=$HOME/rvsysroot \
  -S llvm \
 -B build/rvregression
cmake --build build/rvregression --target runtimes
./build/rvregression/bin/clang --target=riscv64-linux-gnu --sysroot=$HOME/rvsysroot --driver-mode=g++ -fxray-instrument -std=c++11 compiler-rt/test/xray/TestCases/Posix/coverage-sample.cpp

```
The riscv64-linux-gnu-ld on my system is 2.43.1.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to