Table of Contents |
---|
Project Scope
Enable/optimize AddressSanitizer function on RISC-V architecture. The major work is to port AddressSanitizer to RISC-V architecture both in GCC and LLVM, both for RV32 and RV64, both from pure software and hardware-software co-design.
...
The tool consists of a compiler instrumentation module which works as an LLVM pass and a run-time library which replaces the malloc function.
- For LLVM:
The instrumentation module is maintained in LLVM backend. (llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp)
The run-time libraries tailored for AddressSanitizer can be found in compiler-rt/lib/asan and compiler-rt/lib/sanitizer_common.
- For GCC:
The instrumentation module is maintained in GCC backend.
...
- 32bit-linux kernel
- ABI for 32bit application
Status
Page Properties | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Replace malloc with Scudo in glibc, similar with what bionic does
Enable RISCV memory tagging for malloc in glibc
Enable AddressSanitizer for RISCV32 in GCC and LLVM. (develop completed, upstreaming)- depend on the timeline of 32bit linux kernel
Enable Scudo for RISCV64 in LLVM on both clang side and compiler-rt side.