[all-commits] [llvm/llvm-project] 1c53b9: [sanitizer_common] Don't use syscall(SYS_clone) on...

Rainer Orth via All-commits all-commits at lists.llvm.org
Mon Jul 29 23:57:46 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1c53b907bd6348138a59da270836fc9b4c161a07
      https://github.com/llvm/llvm-project/commit/1c53b907bd6348138a59da270836fc9b4c161a07
  Author: Rainer Orth <ro at gcc.gnu.org>
  Date:   2024-07-30 (Tue, 30 Jul 2024)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp

  Log Message:
  -----------
  [sanitizer_common] Don't use syscall(SYS_clone) on Linux/sparc64 (#100534)

```
  SanitizerCommon-Unit :: ./Sanitizer-sparc-Test/SanitizerCommon/StartSubprocessTest
```
and every single test using the `llvm-symbolizer` `FAIL` on
Linux/sparc64 in a very weird way: when using `StartSubprocess`, there's
a call to `internal_fork`, but we never reach `internal_execve`.
`internal_fork` is implemented using `syscall(SYS_clone)`. The calling
convention of that syscall already varies considerably between targets,
but as documented in `clone(2)`, SPARC again is widely different.
Instead of trying to match `glibc` here, this patch just calls `__fork`.

Tested on `sparc64-unknown-linux-gnu` and `x86_64-pc-linux-gnu`.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list