| .. | .. |
|---|
| 1 | 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) |
|---|
| 12 | 2 | |
|---|
| 13 | | -ifdef CONFIG_UBSAN_ALIGNMENT |
|---|
| 14 | | - CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) |
|---|
| 15 | | -endif |
|---|
| 3 | +# Enable available and selected UBSAN features. |
|---|
| 4 | +ubsan-cflags-$(CONFIG_UBSAN_ALIGNMENT) += -fsanitize=alignment |
|---|
| 5 | +ubsan-cflags-$(CONFIG_UBSAN_ONLY_BOUNDS) += -fsanitize=bounds |
|---|
| 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) += -fsanitize-undefined-trap-on-error |
|---|
| 16 | 14 | |
|---|
| 17 | | - # -fsanitize=* options makes GCC less smart than usual and |
|---|
| 18 | | - # increase number of 'maybe-uninitialized false-positives |
|---|
| 19 | | - CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) |
|---|
| 20 | | -endif |
|---|
| 15 | +export CFLAGS_UBSAN := $(ubsan-cflags-y) |
|---|