[all-commits] [llvm/llvm-project] db07e0: [TSan] Omit vfork interceptor iOS simulator runtime

Julian Lettner via All-commits all-commits at lists.llvm.org
Fri Jan 21 17:37:16 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: db07e082abafb1494ba674047645e6113316673c
      https://github.com/llvm/llvm-project/commit/db07e082abafb1494ba674047645e6113316673c
  Author: Julian Lettner <julian.lettner at apple.com>
  Date:   2022-01-21 (Fri, 21 Jan 2022)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp

  Log Message:
  -----------
  [TSan] Omit vfork interceptor iOS simulator runtime

`_vfork` moved from libsystem_kernel.dylib to libsystem_c.dylib as part
of the below changes.  The iOS simulator does not actually have
libsystem_kernel.dylib of its own, it only has the host Mac's.  The
umbrella-nature of Libsystem makes this movement transparent to
everyone; except the simulator! So when we "back deploy", i.e., use the
current version of TSan with an older simulator runtime then this symbol
is now missing, when we run on the latest OS (but an older simulator
runtime).

Note we use `SANITIZER_IOS` because usage of vfork is forbidden on iOS
and the API is completely unavailable on watchOS and tvOS, even if this
problem is specific to the iOS simulator.

Caused by:
rdar://74818691 (Shim vfork() to fork syscall on iOS)
rdar://76762076 (Shim vfork() to fork syscall on macOS)

Radar-Id: rdar://8634734




More information about the All-commits mailing list