[scudo][test] Link with -no-pie to be agnostic of CLANG_DEFAULT_PIE_ON_LINUX
authorFangrui Song <i@maskray.me>
Sat, 9 Apr 2022 06:30:07 +0000 (23:30 -0700)
committerFangrui Song <i@maskray.me>
Sat, 9 Apr 2022 06:30:07 +0000 (23:30 -0700)
This keeps the test behavior unchanged when CLANG_DEFAULT_PIE_ON_LINUX switches
to ON by default.

Note: current clang --target=mips64el-linux-gnu -fpie -pie -fuse-ld=lld
does not link with C++ exceptions, using -pie would lead to

```
ld.lld: error: cannot preempt symbol: DW.ref.__gxx_personality_v0
...
ld.lld: error: relocation R_MIPS_64 cannot be used against local symbol; recompile with -fPIC
...
```

when linking `ScudoUnitTests`: https://lab.llvm.org/buildbot/#/builders/169/builds/7311/steps/18/logs/stdio

compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt

index 7be58f4..b6b60a2 100644 (file)
@@ -37,7 +37,7 @@ set(LINK_FLAGS
   ${COMPILER_RT_UNITTEST_LINK_FLAGS}
   ${SANITIZER_TEST_CXX_LIBRARIES}
   )
-list(APPEND LINK_FLAGS -pthread)
+list(APPEND LINK_FLAGS -pthread -no-pie)
 # Linking against libatomic is required with some compilers
 check_library_exists(atomic __atomic_load_8 "" COMPILER_RT_HAS_LIBATOMIC)
 if (COMPILER_RT_HAS_LIBATOMIC)