Merge tag 'bitmap-for-6.9' of https://github.com/norov/linux
[linux.git] / scripts / Makefile.ubsan
1 # SPDX-License-Identifier: GPL-2.0
2
3 # Enable available and selected UBSAN features.
4 ubsan-cflags-$(CONFIG_UBSAN_ALIGNMENT)          += -fsanitize=alignment
5 ubsan-cflags-$(CONFIG_UBSAN_BOUNDS_STRICT)      += -fsanitize=bounds-strict
6 ubsan-cflags-$(CONFIG_UBSAN_ARRAY_BOUNDS)       += -fsanitize=array-bounds
7 ubsan-cflags-$(CONFIG_UBSAN_LOCAL_BOUNDS)       += -fsanitize=local-bounds
8 ubsan-cflags-$(CONFIG_UBSAN_SHIFT)              += -fsanitize=shift
9 ubsan-cflags-$(CONFIG_UBSAN_DIV_ZERO)           += -fsanitize=integer-divide-by-zero
10 ubsan-cflags-$(CONFIG_UBSAN_UNREACHABLE)        += -fsanitize=unreachable
11 ubsan-cflags-$(CONFIG_UBSAN_BOOL)               += -fsanitize=bool
12 ubsan-cflags-$(CONFIG_UBSAN_ENUM)               += -fsanitize=enum
13 ubsan-cflags-$(CONFIG_UBSAN_TRAP)               += $(call cc-option,-fsanitize-trap=undefined,-fsanitize-undefined-trap-on-error)
14
15 export CFLAGS_UBSAN := $(ubsan-cflags-y)
16
17 ubsan-signed-wrap-cflags-$(CONFIG_UBSAN_SIGNED_WRAP)     += -fsanitize=signed-integer-overflow
18 export CFLAGS_UBSAN_SIGNED_WRAP := $(ubsan-signed-wrap-cflags-y)