version 1.1, 2018/08/11 12:14:52
|
version 1.5, 2018/08/11 12:26:35
|
Line 43 The compiler-rt package ships with libBl
|
Line 43 The compiler-rt package ships with libBl
|
As a NetBSD specific extension, there is a micro-UBSan runtime developed and maintained in the NetBSD source code. |
As a NetBSD specific extension, there is a micro-UBSan runtime developed and maintained in the NetBSD source code. |
It is designed to function inside libc (uUBSan - usermode-UBSan) and inside the kernel (kUBSan - kernel-UBSan). |
It is designed to function inside libc (uUBSan - usermode-UBSan) and inside the kernel (kUBSan - kernel-UBSan). |
|
|
|
# Types of runtimes |
|
|
|
There are two types of sanitizer runtimes: |
|
|
|
* dynamically linked ones (default in GCC) |
|
* statically linked ones (default in Clang) |
|
|
|
Base GCC/NetBSD works with the former, upstream HEAD version of LLVM/NetBSD works with the latter. |
|
|
|
Both compilers should support both of them, but the other options (GCC/NetBSD & static runtime, LLVM/NetBSD & dynamic runtime) are to be done. |
|
|
# Sanitizers in NetBSD |
# Sanitizers in NetBSD |
|
|
Sanitizers in NetBSD are shipped with the following options: |
Sanitizers in NetBSD are shipped with the following options: |
Line 86 The GCC compiler assumed the version in
|
Line 97 The GCC compiler assumed the version in
|
### GCC with the default runtime |
### GCC with the default runtime |
|
|
Name | NetBSD status |
Name | NetBSD status |
----------+--------------------------------- |
----------|--------------------------------- |
UBSan | mostly works with all ports |
UBSan | mostly works with all ports |
ASan | mostly works with amd64 and i386 |
ASan | mostly works with amd64 and i386 |
LSan | might work with amd64 and i386 |
LSan | might work with amd64 and i386 |
Line 98 Untested.
|
Line 109 Untested.
|
### GCC with MKLIBCSANITIZER |
### GCC with MKLIBCSANITIZER |
|
|
Name | NetBSD status |
Name | NetBSD status |
----------+--------------------------------- |
----------|--------------------------------- |
UBSan | works with micro-UBSan |
UBSan | works with micro-UBSan |
|
|
### GCC with kernel sanitizers |
### GCC with kernel sanitizers |
|
|
Name | NetBSD status |
Name | NetBSD status |
----------+--------------------------------- |
----------|--------------------------------- |
UBSan | works with micro-UBSan |
UBSan | works with micro-UBSan |
|
|
## LLVM |
## LLVM |
Line 114 The LLVM support is available only with
|
Line 125 The LLVM support is available only with
|
### LLVM with the default runtime |
### LLVM with the default runtime |
|
|
Name | NetBSD status |
Name | NetBSD status |
----------+--------------------------------- |
----------|--------------------------------- |
UBSan | works with all ports |
UBSan | mostly works with all LLVM ports |
ASan | works with amd64 and i386 |
ASan | mostly works with amd64 and i386 |
MSan | works with amd64 |
MSan | mostly works with amd64 |
TSan | works with amd64 |
TSan | mostly works with amd64 |
|
|
### LLVM with MKSANITIZER |
### LLVM with MKSANITIZER |
|
|
Untested. |
Name | NetBSD status |
|
----------|--------------------------------- |
|
UBSan | mostly works with all LLVM ports |
|
ASan | mostly works with amd64 and i386 |
|
|
### LLVM with MKLIBCSANITIZER |
### LLVM with MKLIBCSANITIZER |
|
|
Name | NetBSD status |
Name | NetBSD status |
----------+--------------------------------- |
----------|--------------------------------- |
UBSan | works with micro-UBSan |
UBSan | works with micro-UBSan |
|
|
### LLVM with kernel sanitizers |
### LLVM with kernel sanitizers |
|
|
Name | NetBSD status |
Name | NetBSD status |
----------+--------------------------------- |
----------|--------------------------------- |
UBSan | works with micro-UBSan |
UBSan | works with micro-UBSan |