gcc/libsanitizer
Rainer Orth 7c6071a66f libsanitizer: Intercept __makecontext_v2 on Solaris/SPARC [PR113785]
c-c++-common/asan/swapcontext-test-1.c FAILs on Solaris/SPARC:

FAIL: c-c++-common/asan/swapcontext-test-1.c   -O0  execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c   -O1  execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c   -O2  execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c   -O2 -flto  execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c -O2 -flto -flto-partition=none
execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c   -O3 -g  execution test
FAIL: c-c++-common/asan/swapcontext-test-1.c   -Os  execution test

As detailed in PR sanitizer/113785, this happens because an ABI change
in Solaris 10/SPARC caused the external symbol for makecontext to be
changed to __makecontext_v2, which isn't intercepted.

The following patch, submitted upstream at
https://github.com/llvm/llvm-project/pull/81588, fixes that.

Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11.

2024-02-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libsanitizer:
	PR sanitizer/113785
	* asan/asan_interceptors.cpp: Cherry-pick llvm-project revision
	8c2033719a843a1880427a5e8caa5563248bce78.
2024-02-16 14:06:24 +01:00
..
asan libsanitizer: Intercept __makecontext_v2 on Solaris/SPARC [PR113785] 2024-02-16 14:06:24 +01:00
builtins libsanitizer: merge from upstream (3185e47b5a8444e9fd). 2023-04-26 15:51:56 +02:00
hwasan libsanitizer: Sync fixes for asan interceptors from upstream 2024-01-31 14:49:21 +00:00
include libsanitizer: merge from upstream (c425db2eb558c263) 2023-11-15 12:45:58 +01:00
interception Sanitizer/MIPS: Use $t9 for preemptible function call 2024-01-17 17:03:08 +08:00
libbacktrace libsanitizer: Check assembler support for symbol assignment [PR112563] 2023-11-28 14:54:34 +01:00
lsan libsanitizer: Check assembler support for symbol assignment [PR112563] 2023-11-28 14:54:34 +01:00
sanitizer_common libsanitizer: Replace memcpy with internal version in sanitizer_common 2024-01-19 10:40:10 +01:00
tsan LoongArch: libsanitizer: Enable Lsan and Tsan for loongarch64. 2024-02-06 09:38:13 +08:00
ubsan libsanitizer: Check assembler support for symbol assignment [PR112563] 2023-11-28 14:54:34 +01:00
acinclude.m4
aclocal.m4 make -Werror optional in libatomic/libbacktrace/libgomp/libitm/libsanitizer 2022-02-03 16:10:18 +01:00
ChangeLog Daily bump. 2024-02-07 00:18:31 +00:00
config.h.in
configure libsanitizer: Check assembler support for symbol assignment [PR112563] 2023-11-28 14:54:34 +01:00
configure.ac libsanitizer: Check assembler support for symbol assignment [PR112563] 2023-11-28 14:54:34 +01:00
configure.tgt LoongArch: libsanitizer: Enable Lsan and Tsan for loongarch64. 2024-02-06 09:38:13 +08:00
HOWTO_MERGE
libsanitizer.spec.in libsanitizer: Tie the hwasan library into our build system 2020-11-25 16:35:33 +00:00
LICENSE.TXT
LOCAL_PATCHES libsanitizer: Update LOCAL_PATCHES 2023-11-28 15:00:31 +01:00
Makefile.am Fix PR 62157: disclean in libsanitizer not working 2021-11-28 22:40:36 +00:00
Makefile.in libsanitizer: Check assembler support for symbol assignment [PR112563] 2023-11-28 14:54:34 +01:00
MERGE libsanitizer: merge from upstream (c425db2eb558c263) 2023-11-15 12:45:58 +01:00
merge.sh libsanitizer: use git clone --depth 1 2022-11-15 14:18:27 +01:00
README.gcc libsanitizer: add hwasan. 2020-11-25 16:35:30 +00:00

AddressSanitizer and ThreadSanitizer (https://github.com/google/sanitizers) are
projects initially developed by Google Inc.

Both tools consist of a compiler module and a run-time library.
The sources of the run-time library for these projects are hosted at
https://github.com/llvm/llvm-project in the following directories:
  compiler-rt/include/sanitizer
  compiler-rt/lib/sanitizer_common
  compiler-rt/lib/interception
  compiler-rt/lib/asan
  compiler-rt/lib/tsan
  compiler-rt/lib/lsan
  compiler-rt/lib/ubsan
  compiler-rt/lib/hwasan

Trivial and urgent fixes (portability, build fixes, etc.) may go directly to the
GCC tree.  All non-trivial changes, functionality improvements, etc. should go
through the upstream tree first and then be merged back to the GCC tree.
The merges from upstream should be done with the aid of the merge.sh script;
it will also update the file MERGE to contain the upstream revision
we merged with.