1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 >> 2 ifdef CONFIG_UBSAN >> 3 CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift) >> 4 CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) >> 5 CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) >> 6 CFLAGS_UBSAN += $(call cc-option, -fsanitize=vla-bound) >> 7 CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) >> 8 CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) >> 9 CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) >> 10 CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool) >> 11 CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum) 2 12 3 # Enable available and selected UBSAN features !! 13 ifdef CONFIG_UBSAN_ALIGNMENT 4 ubsan-cflags-$(CONFIG_UBSAN_ALIGNMENT) !! 14 CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) 5 ubsan-cflags-$(CONFIG_UBSAN_BOUNDS_STRICT) !! 15 endif 6 ubsan-cflags-$(CONFIG_UBSAN_ARRAY_BOUNDS) << 7 ubsan-cflags-$(CONFIG_UBSAN_LOCAL_BOUNDS) << 8 ubsan-cflags-$(CONFIG_UBSAN_SHIFT) << 9 ubsan-cflags-$(CONFIG_UBSAN_DIV_ZERO) << 10 ubsan-cflags-$(CONFIG_UBSAN_UNREACHABLE) << 11 ubsan-cflags-$(CONFIG_UBSAN_BOOL) << 12 ubsan-cflags-$(CONFIG_UBSAN_ENUM) << 13 ubsan-cflags-$(CONFIG_UBSAN_TRAP) << 14 16 15 export CFLAGS_UBSAN := $(ubsan-cflags-y) !! 17 # -fsanitize=* options makes GCC less smart than usual and 16 !! 18 # increase number of 'maybe-uninitialized false-positives 17 ubsan-signed-wrap-cflags-$(CONFIG_UBSAN_SIGNED !! 19 CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) 18 export CFLAGS_UBSAN_SIGNED_WRAP := $(ubsan-sig !! 20 endif
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.