s390: enable UBSAN
This enables UBSAN for s390. We have to disable the null sanitizer as s390 code does access memory via a null pointer (the prefix page). Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
725c4d22bb
commit
c42d8c7dbe
@ -74,6 +74,7 @@ config S390
|
|||||||
select ARCH_HAS_GCOV_PROFILE_ALL
|
select ARCH_HAS_GCOV_PROFILE_ALL
|
||||||
select ARCH_HAS_KCOV
|
select ARCH_HAS_KCOV
|
||||||
select ARCH_HAS_SG_CHAIN
|
select ARCH_HAS_SG_CHAIN
|
||||||
|
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
||||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
select ARCH_HAVE_NMI_SAFE_CMPXCHG
|
||||||
select ARCH_INLINE_READ_LOCK
|
select ARCH_INLINE_READ_LOCK
|
||||||
select ARCH_INLINE_READ_LOCK_BH
|
select ARCH_INLINE_READ_LOCK_BH
|
||||||
@ -110,6 +111,7 @@ config S390
|
|||||||
select ARCH_USE_CMPXCHG_LOCKREF
|
select ARCH_USE_CMPXCHG_LOCKREF
|
||||||
select ARCH_WANTS_DYNAMIC_TASK_STRUCT
|
select ARCH_WANTS_DYNAMIC_TASK_STRUCT
|
||||||
select ARCH_WANTS_PROT_NUMA_PROT_NONE
|
select ARCH_WANTS_PROT_NUMA_PROT_NONE
|
||||||
|
select ARCH_WANTS_UBSAN_NO_NULL
|
||||||
select ARCH_WANT_IPC_PARSE_VERSION
|
select ARCH_WANT_IPC_PARSE_VERSION
|
||||||
select BUILDTIME_EXTABLE_SORT
|
select BUILDTIME_EXTABLE_SORT
|
||||||
select CLONE_BACKWARDS2
|
select CLONE_BACKWARDS2
|
||||||
|
@ -17,6 +17,7 @@ KBUILD_CFLAGS += $(call cc-option,-mpacked-stack)
|
|||||||
KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
|
KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
|
||||||
|
|
||||||
GCOV_PROFILE := n
|
GCOV_PROFILE := n
|
||||||
|
UBSAN_SANITIZE := n
|
||||||
|
|
||||||
OBJECTS := $(addprefix $(objtree)/arch/s390/kernel/, head.o sclp.o ebcdic.o als.o)
|
OBJECTS := $(addprefix $(objtree)/arch/s390/kernel/, head.o sclp.o ebcdic.o als.o)
|
||||||
OBJECTS += $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o
|
OBJECTS += $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o
|
||||||
|
@ -48,6 +48,9 @@ AFLAGS_head.o += -march=z900
|
|||||||
endif
|
endif
|
||||||
GCOV_PROFILE_sclp.o := n
|
GCOV_PROFILE_sclp.o := n
|
||||||
GCOV_PROFILE_als.o := n
|
GCOV_PROFILE_als.o := n
|
||||||
|
UBSAN_SANITIZE_als.o := n
|
||||||
|
UBSAN_SANITIZE_early.o := n
|
||||||
|
UBSAN_SANITIZE_sclp.o := n
|
||||||
|
|
||||||
obj-y := traps.o time.o process.o base.o early.o setup.o idle.o vtime.o
|
obj-y := traps.o time.o process.o base.o early.o setup.o idle.o vtime.o
|
||||||
obj-y += processor.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o
|
obj-y += processor.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o nmi.o
|
||||||
|
@ -24,8 +24,9 @@ obj-y += vdso32_wrapper.o
|
|||||||
extra-y += vdso32.lds
|
extra-y += vdso32.lds
|
||||||
CPPFLAGS_vdso32.lds += -P -C -U$(ARCH)
|
CPPFLAGS_vdso32.lds += -P -C -U$(ARCH)
|
||||||
|
|
||||||
# Disable gcov profiling for VDSO code
|
# Disable gcov profiling and ubsan for VDSO code
|
||||||
GCOV_PROFILE := n
|
GCOV_PROFILE := n
|
||||||
|
UBSAN_SANITIZE := n
|
||||||
|
|
||||||
# Force dependency (incbin is bad)
|
# Force dependency (incbin is bad)
|
||||||
$(obj)/vdso32_wrapper.o : $(obj)/vdso32.so
|
$(obj)/vdso32_wrapper.o : $(obj)/vdso32.so
|
||||||
|
@ -24,8 +24,9 @@ obj-y += vdso64_wrapper.o
|
|||||||
extra-y += vdso64.lds
|
extra-y += vdso64.lds
|
||||||
CPPFLAGS_vdso64.lds += -P -C -U$(ARCH)
|
CPPFLAGS_vdso64.lds += -P -C -U$(ARCH)
|
||||||
|
|
||||||
# Disable gcov profiling for VDSO code
|
# Disable gcov profiling and ubsan for VDSO code
|
||||||
GCOV_PROFILE := n
|
GCOV_PROFILE := n
|
||||||
|
UBSAN_SANITIZE := n
|
||||||
|
|
||||||
# Force dependency (incbin is bad)
|
# Force dependency (incbin is bad)
|
||||||
$(obj)/vdso64_wrapper.o : $(obj)/vdso64.so
|
$(obj)/vdso64_wrapper.o : $(obj)/vdso64.so
|
||||||
|
Loading…
Reference in New Issue
Block a user