[sanitizer] Fix vfork interception on loongarch64
authorXi Ruoyao <xry111@mengyan1223.wang>
Thu, 3 Nov 2022 03:07:53 +0000 (11:07 +0800)
committerWeining Lu <luweining@loongson.cn>
Thu, 3 Nov 2022 03:08:15 +0000 (11:08 +0800)
commit061426df572552bc839e1a80cb29070d4242a32f
tree3c050ce08cc831bdbeff1ceafcb78a9374e13db9
parentd16b5c350473f04aae4f39344242e140b0dfd79d
[sanitizer] Fix vfork interception on loongarch64

Fix a brown paper bag error made by me in D129418.  I didn't set
ASAN_INTERCEPT_VFORK correctly for loongarch64, but created an all-zero
object for __interception::real_vfork.  This caused anything calling
vfork() to die instantly.

Fix this issue by setting ASAN_INTERCEPT_VFORK and remove the bad
all-zero definition.  Other ports have an all-zero common definition but
we don't need it at least for now.

And, enable ASAN vfork test for loongarch64 to prevent regression in the
future.

Differential Revision: https://reviews.llvm.org/D137160
compiler-rt/lib/asan/asan_interceptors.h
compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_vfork_loongarch64.inc.S
compiler-rt/test/asan/TestCases/Linux/vfork.cpp