Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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


Development

Status
colourGreen
titleCOMPLETED


Development Timeline2H 2023
Upstreaming

Status
colourBlue
titleONGOING


Upstream Version

N/A

depend on the definition of TASK_UNMAPPED_BASE in ABI.

Contacts

dillon (T-Head)

Joshua

shangyunhai@gmail.com
Dependencies

32bit - Linux Kernel 

ABI for 32bit application( definition of TASK_UNMAPPED_BASE)




 

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.