From patchwork Fri Jan 13 08:19:19 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maxim Ostapenko X-Patchwork-Id: 91286 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp80899qgi; Fri, 13 Jan 2017 00:19:59 -0800 (PST) X-Received: by 10.98.133.11 with SMTP id u11mr21452704pfd.132.1484295598912; Fri, 13 Jan 2017 00:19:58 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id 3si11981285ple.301.2017.01.13.00.19.58 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Jan 2017 00:19:58 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-return-446040-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org; spf=pass (google.com: domain of gcc-patches-return-446040-patch=linaro.org@gcc.gnu.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=gcc-patches-return-446040-patch=linaro.org@gcc.gnu.org DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:message-id:date:mime-version:content-type :references; q=dns; s=default; b=eNuuHZ3HMkIQkNc8MAHM5sieyGAevOB cGZufZDAqmyNVA5+smP62DD0hQbwGsEYeFeHG/bACjDG9Hr9Fz170tqvk0NJKKFQ NFSYtxUVuYcx1QrUBkeZlcVZrKAPqLCmFOKXtfvSRuBrD7iiPEl1Oxq02o3fggr1 nEuZUpLYMON4= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:subject:message-id:date:mime-version:content-type :references; s=default; bh=rEKexXpIoalak3gB/+xttNEWfSI=; b=MwrIJ 2Wx5IORJQACDNv/zEGv94RSxK5pxhDbpks/7bBm5n+CAGA2CiFiGJlUidPDpNBIo lJkx6yjjDXkHoorT/jajuVZ7cm+LHFCUHWHXuUCGKOdBue8QXt93JoC0kxMkSAVE Nkbwh4tYmaNi1knDHyzF/1bYLKy2gXnmtADcqY= Received: (qmail 68749 invoked by alias); 13 Jan 2017 08:19:44 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 68729 invoked by uid 89); 13 Jan 2017 08:19:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-4.1 required=5.0 tests=BAYES_00, KAM_LAZY_DOMAIN_SECURITY, RP_MATCHES_RCVD, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1177, indicators, HContent-type:multipart, HContent-type:boundary X-HELO: mailout3.w1.samsung.com Received: from mailout3.w1.samsung.com (HELO mailout3.w1.samsung.com) (210.118.77.13) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 13 Jan 2017 08:19:33 +0000 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OJP00D2GLSG1S40@mailout3.w1.samsung.com> for gcc-patches@gcc.gnu.org; Fri, 13 Jan 2017 08:19:28 +0000 (GMT) Received: from eusmges4.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20170113081927eucas1p12162e443a5228512f558aba25a20c8ba~ZRvRV0Vsv1890918909eucas1p1w for ; Fri, 13 Jan 2017 08:19:27 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges4.samsung.com (EUCPMTA) with SMTP id 70.79.28517.F8D88785; Fri, 13 Jan 2017 08:19:27 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20170113081926eucas1p2182a7b44313074dab4efc7d75d2362e2~ZRvQlasX41053310533eucas1p2M for ; Fri, 13 Jan 2017 08:19:26 +0000 (GMT) Received: from eusync1.samsung.com ( [203.254.199.211]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 40.06.06687.4CD88785; Fri, 13 Jan 2017 08:20:20 +0000 (GMT) Received: from [106.109.129.18] by eusync1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OJP00KF5LSC5Y60@eusync1.samsung.com> for gcc-patches@gcc.gnu.org; Fri, 13 Jan 2017 08:19:26 +0000 (GMT) From: Maxim Ostapenko To: GCC Patches Subject: [PATCH][PR sanitizer/78887] Don't emit ODR indicators if -fsanitize=kernel-address is present. Message-id: <58788D87.7040104@samsung.com> Date: Fri, 13 Jan 2017 11:19:19 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-version: 1.0 Content-type: multipart/mixed; boundary=------------050505060501080508040009 X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170113081926eucas1p2182a7b44313074dab4efc7d75d2362e2 X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?TWFrc2ltIE9zdGFwZW5rbxtTUlItU1cgVG9vbHMgTGFiGw==?= =?UTF-8?B?7IK87ISx7KCE7J6QG0VuZ2luZWVy?= X-Global-Sender: =?UTF-8?B?TWF4aW0gT3N0YXBlbmtvG1NSUi1TVyBUb29scyBMYWIbU2Ft?= =?UTF-8?B?c3VuZ8KgRWxlY3Ryb25pY3MbRW5naW5lZXI=?= X-Sender-Code: =?UTF-8?B?QzEwG0NJU0hRG0MxMEdEMDFHRDAxMDE1Nw==?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170113081926eucas1p2182a7b44313074dab4efc7d75d2362e2 X-RootMTR: 20170113081926eucas1p2182a7b44313074dab4efc7d75d2362e2 References: X-IsSubscribed: yes Hi, as mentioned in PR, Linux kernel 4.9 fails to build with ASan due to wrong handling of emitted ODR indicator symbols. Although this might be a kernel bug (relying on specific pattern in symbol name sounds questionable), kernel doesn't need ODR indicators at all thus we can just disable them if -fsanitize=kernel-address is present. Tested on x86_64-unknown-linux-gnu, OK for trunk? -Maxim gcc/ChangeLog: 2017-01-13 Maxim Ostapenko PR sanitizer/78887 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators if -fsanitize=kernel-address is present. diff --git a/gcc/asan.c b/gcc/asan.c index bc7ebc8..157d468 100644 --- a/gcc/asan.c +++ b/gcc/asan.c @@ -2360,7 +2360,8 @@ create_odr_indicator (tree decl, tree type) static bool asan_needs_odr_indicator_p (tree decl) { - return !DECL_ARTIFICIAL (decl) && !DECL_WEAK (decl) && TREE_PUBLIC (decl); + return !(flag_sanitize & SANITIZE_KERNEL_ADDRESS) && !DECL_ARTIFICIAL (decl) + && !DECL_WEAK (decl) && TREE_PUBLIC (decl); } /* Append description of a single global DECL into vector V.