From patchwork Mon Jun 24 10:17:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 11012881 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BA629112C for ; Mon, 24 Jun 2019 10:19:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A8BF128A01 for ; Mon, 24 Jun 2019 10:19:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8E2FE28B52; Mon, 24 Jun 2019 10:19:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7C58128A59 for ; Mon, 24 Jun 2019 10:19:45 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hfM2Y-00025x-5G; Mon, 24 Jun 2019 10:17:34 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hfM2W-00025r-TQ for xen-devel@lists.xenproject.org; Mon, 24 Jun 2019 10:17:32 +0000 X-Inumbo-ID: 44818092-9669-11e9-9a83-5333c333f460 Received: from esa4.hc3370-68.iphmx.com (unknown [216.71.155.144]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 44818092-9669-11e9-9a83-5333c333f460; Mon, 24 Jun 2019 10:17:28 +0000 (UTC) Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa4.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa4.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa4.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: H3eK4YqKYhfCQc//pP0YFWwGqDECrf3/EpaEjDOaystK3aSZT8Y3KG6JsQngcxhuPxdkdyrA1G HGmzNh+dTNEMNF9r6yOEci+aq0V+urKRA4/BrWgTjzvjw3f1abpW34u0oVBeCfQAZ7EJiKNaca 623RURNov0Eo/YYvM6lLKHIAZ6w8YryPQ/EIuy/lId8Kc7zIK/heP3YHMs74Lmegdksw8leNUu RAXCx5WRZNI+9HK28J+W5ItmjYuyTiIw40Rm+4DEuOeww8gtAIEnCzCaHfx8xhGTQRC/xVQ+pZ PIA= X-SBRS: 2.7 X-MesageID: 2154245 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.63,411,1557201600"; d="scan'208";a="2154245" From: Andrew Cooper To: Xen-devel Date: Mon, 24 Jun 2019 11:17:22 +0100 Message-ID: <20190624101723.23291-2-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190624101723.23291-1-andrew.cooper3@citrix.com> References: <20190624101723.23291-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 1/2] xen/ubsan: Don't perform alignment checking on supporting compilers X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , =?utf-8?q?Roger_Pau_Monn=C3=A9?= Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP 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 --- CC: Jan Beulich CC: Wei Liu CC: Roger Pau Monné CC: Stefano Stabellini CC: Julien Grall 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)