[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1/2] xen/ubsan: Don't perform alignment checking on supporting compilers
GCC 5 introduced -fsanitize=alignment which is enabled by default by CONFIG_UBSAN. This trips a load of wont-fix cases in the ACPI tables and the hypercall page and stubs writing logic. It also causes the native Xen boot to crash before the console is set up, for an as-yet unidentified reason (most likley a wont-fix case earlier on boot). Disable alignment sanitisation on compilers which would try using it. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Wei Liu <wl@xxxxxxx> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien.grall@xxxxxxx> This isn't ideal, but we can't do better without a bit of an overhaul which I don't have time for now. Linux uses a whitelist of sanitisers but I'm not entirely sure we want to go that route. ARM currently isn't working well with UBSAN, but AFACIT, all ARM platforms that we support also disable alignment sanitisation in Linux. --- xen/Rules.mk | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/Rules.mk b/xen/Rules.mk index a151b3f625..61cd8ed5d9 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -138,7 +138,9 @@ $(filter-out %.init.o $(nocov-y),$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS += $( endif ifeq ($(CONFIG_UBSAN),y) -$(filter-out %.init.o $(noubsan-y),$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS += -fsanitize=undefined +UBSAN_FLAGS := -fsanitize=undefined +$(call cc-option-add,UBSAN_FLAGS,CC,-fno-sanitize=alignment) +$(filter-out %.init.o $(noubsan-y),$(obj-y) $(obj-bin-y) $(extra-y)): CFLAGS += $(UBSAN_FLAGS) endif ifeq ($(CONFIG_LTO),y) -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |