| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[compiler-rt] Allow 3 simultaneous interceptors on Linux Rework Linux (and *BSD) interceptors to allow for up to 3 (2 for *BSD) simultaneous interceptors. See code comments for details. The main motivation is to support new sampling sanitizers (in the spirit of GWP-ASan), that have to intercept few functions. Unfortunately, the reality is that there are user interceptors that exist in the wild. To support foreign user interceptors, foreign dynamic analysis interceptors, and compiler-rt interceptors all at the same time, including any combination of them, this change enables up to 3 interceptors on Linux (2 on *BSD). v2: * Revert to to the simpler "weak wrapper -(alias)-> __interceptor" scheme on architectures that cannot implement a trampoline efficiently due to complexities of resolving a preemptible symbol (PowerPC64 ELFv2 global entry, and i386 PIC). * Avoid duplicate intercepted functions in gen_dynamic_list.py, due to matching __interceptor_X and ___interceptor_X. * Fix s390 __tls_get_offset. Reviewed By: dvyukov, MaskRay, vitalybuka Differential Revision: https://reviews.llvm.org/D151085 | 3 年前 | |
Revert "sanitizers: increase .clang-format columns to 100" This reverts commit 5d1df6d220f1d6f726d9643848679d781750db64. There is a strong objection to this change: https://reviews.llvm.org/D106436#2905618 Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D106847 | 4 年前 | |
[compiler-rt][cmake] Fix clang-cl warnings introduced in ae4c643bcdf2 See report in https://reviews.llvm.org/D116872#3245667 | 4 年前 | |
[compiler-rt] Use .globl for FreeBSD/NetBSD interceptor wrappers On FreeBSD and NetBSD we don't use .weak due to differing semantics. Currently we end up using no directive, which gives a local symbol, whereas the closer thing to a weak symbol would be a global one. In particular, both GNU and LLVM toolchains cannot handle a GOT-indirect reference to a local symbol at a non-zero offset within a section on AArch64 (see https://github.com/ARM-software/abi-aa/issues/217), and so interceptors do not work on FreeBSD/arm64, failing to link with LLD. Switching to .globl both works around this bug and more closely aligns such non-weak platforms with weak ones. Fixes https://github.com/llvm/llvm-project/issues/63418 Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D158552 (cherry picked from commit 7e1afab1b1821550c5f8d0d6a50636236fa02e2c) | 2 年前 | |
[compiler-rt] Introduce the notion of an interceptor trampoline To make the interceptor implementation more flexible, allowing for 2 levels of indirection instead of just 1 in the current scheme (where the intercepted function aliases the interceptor implementation), introduce the notion of an interceptor "trampoline". A trampoline may be a real function (and not just an alias, where aliases of aliases do not work), which will simply forward to the interceptor implementation; the intercepted function will then alias the trampoline: func -[alias]-> trampoline -[call]-> interceptor Make the necessary changes to prepare for introducing real trampolines. This change does not yet introduce any real trampolines, and so trampoline == interceptor, and we currently still just have: func -[alias]-> interceptor NFC. Reviewed By: dvyukov, vitalybuka, MaskRay Differential Revision: https://reviews.llvm.org/D151316 | 3 年前 | |
[compiler-rt] Reformat interception macros Reformat interception macros to be more readable. NFC. | 3 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[Sanitizers][Darwin] Replace SANITIZER_MAC with SANITIZER_APPLE in source files This is a follow up to [Sanitizers][Darwin] Rename Apple macro SANITIZER_MAC -> SANITIZER_APPLE (D125816) Performed a global search/replace as in title against LLVM sources Differential Revision: https://reviews.llvm.org/D126263 | 4 年前 | |
[sanitizer] Don't intercept LFS64 symbols on musl LFS64 symbols in musl are for glibc-ABI-compat and not intended for linking (correct usage will not create LFS64 references). The next release 1.2.4 will disallow linking against LFS64 symbols[1]. For sanitizers, let's just remove LFS64 interceptors. In case of erroneous LFS64 references, asan/tsan will detect fewer problems and msan may have false positives. [1]: https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4 Reviewed By: thesamesam Differential Revision: https://reviews.llvm.org/D141186 | 3 年前 | |
[compiler-rt][interception][win] Add error messages for some errors Depends on D149002 Differential Revision: https://reviews.llvm.org/D149346 | 3 年前 | |
[compiler-rt][interception][asan][win] Improve error reporting Add a callback from interception to allow asan on Windows to produce better error messages. If an unrecoverable error occured when intercepting functions, print a message before terminating. Additionally, when encountering unknown instructions, a more helpful message containing the address and the bytes of the unknown instruction is now printed to help identify the issue and make it easier to propose a fix. Depends on D149549 Differential Revision: https://reviews.llvm.org/D149002 | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 |