forked from gregkh/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ubsan: move cc-option tests into Kconfig
Instead of doing if/endif blocks with cc-option calls in the UBSAN Makefile, move all the tests into Kconfig and use the Makefile to collect the results. Link: https://lkml.kernel.org/r/[email protected] Link: https://lore.kernel.org/lkml/CAHk-=wjPasyJrDuwDnpHJS2TuQfExwe=px-SzLeN8GFMAQJPmQ@mail.gmail.com/ Signed-off-by: Kees Cook <[email protected]> Suggested-by: Linus Torvalds <[email protected]> Reviewed-by: Nathan Chancellor <[email protected]> Tested-by: Nathan Chancellor <[email protected]> Cc: Andrey Ryabinin <[email protected]> Cc: Ard Biesheuvel <[email protected]> Cc: Arnd Bergmann <[email protected]> Cc: Dmitry Vyukov <[email protected]> Cc: George Popescu <[email protected]> Cc: Herbert Xu <[email protected]> Cc: Marco Elver <[email protected]> Cc: Masahiro Yamada <[email protected]> Cc: Michal Marek <[email protected]> Cc: Nick Desaulniers <[email protected]> Cc: Peter Oberparleiter <[email protected]> Cc: Randy Dunlap <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
- Loading branch information
Showing
2 changed files
with
73 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,18 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
export CFLAGS_UBSAN := | ||
# Enable available and selected UBSAN features. | ||
ubsan-cflags-$(CONFIG_UBSAN_ALIGNMENT) += -fsanitize=alignment | ||
ubsan-cflags-$(CONFIG_UBSAN_ONLY_BOUNDS) += -fsanitize=bounds | ||
ubsan-cflags-$(CONFIG_UBSAN_ARRAY_BOUNDS) += -fsanitize=array-bounds | ||
ubsan-cflags-$(CONFIG_UBSAN_LOCAL_BOUNDS) += -fsanitize=local-bounds | ||
ubsan-cflags-$(CONFIG_UBSAN_SHIFT) += -fsanitize=shift | ||
ubsan-cflags-$(CONFIG_UBSAN_DIV_ZERO) += -fsanitize=integer-divide-by-zero | ||
ubsan-cflags-$(CONFIG_UBSAN_UNREACHABLE) += -fsanitize=unreachable | ||
ubsan-cflags-$(CONFIG_UBSAN_SIGNED_OVERFLOW) += -fsanitize=signed-integer-overflow | ||
ubsan-cflags-$(CONFIG_UBSAN_UNSIGNED_OVERFLOW) += -fsanitize=unsigned-integer-overflow | ||
ubsan-cflags-$(CONFIG_UBSAN_OBJECT_SIZE) += -fsanitize=object-size | ||
ubsan-cflags-$(CONFIG_UBSAN_BOOL) += -fsanitize=bool | ||
ubsan-cflags-$(CONFIG_UBSAN_ENUM) += -fsanitize=enum | ||
ubsan-cflags-$(CONFIG_UBSAN_TRAP) += -fsanitize-undefined-trap-on-error | ||
|
||
ifdef CONFIG_UBSAN_ALIGNMENT | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) | ||
endif | ||
|
||
ifdef CONFIG_UBSAN_BOUNDS | ||
ifdef CONFIG_CC_IS_CLANG | ||
CFLAGS_UBSAN += -fsanitize=array-bounds | ||
else | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) | ||
endif | ||
endif | ||
|
||
ifdef CONFIG_UBSAN_LOCAL_BOUNDS | ||
CFLAGS_UBSAN += -fsanitize=local-bounds | ||
endif | ||
|
||
ifdef CONFIG_UBSAN_MISC | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift) | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool) | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum) | ||
endif | ||
|
||
ifdef CONFIG_UBSAN_TRAP | ||
CFLAGS_UBSAN += $(call cc-option, -fsanitize-undefined-trap-on-error) | ||
endif | ||
export CFLAGS_UBSAN := $(ubsan-cflags-y) |