Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0 |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 2 | ifdef CONFIG_UBSAN |
Kees Cook | 0887a7e | 2020-04-06 20:12:27 -0700 | [diff] [blame] | 3 | |
| 4 | ifdef CONFIG_UBSAN_ALIGNMENT |
| 5 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) |
| 6 | endif |
| 7 | |
Kees Cook | 277a108 | 2020-04-06 20:12:31 -0700 | [diff] [blame] | 8 | ifdef CONFIG_UBSAN_BOUNDS |
| 9 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) |
| 10 | endif |
| 11 | |
| 12 | ifdef CONFIG_UBSAN_MISC |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 13 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift) |
| 14 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) |
| 15 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 16 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 17 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 18 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool) |
| 19 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum) |
Kees Cook | 277a108 | 2020-04-06 20:12:31 -0700 | [diff] [blame] | 20 | endif |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 21 | |
Kees Cook | 0887a7e | 2020-04-06 20:12:27 -0700 | [diff] [blame] | 22 | ifdef CONFIG_UBSAN_TRAP |
| 23 | CFLAGS_UBSAN += $(call cc-option, -fsanitize-undefined-trap-on-error) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 24 | endif |
Christian Borntraeger | 725c4d2 | 2016-09-12 14:37:19 +0200 | [diff] [blame] | 25 | |
Arnd Bergmann | a76bcf5 | 2016-11-10 17:44:44 +0100 | [diff] [blame] | 26 | # -fsanitize=* options makes GCC less smart than usual and |
| 27 | # increase number of 'maybe-uninitialized false-positives |
| 28 | CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 29 | endif |