From patchwork Fri Sep 6 14:46:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Malcomson X-Patchwork-Id: 1159045 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-508509-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="Zgxf+LwV"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.b="CDDFywok"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.b="CDDFywok"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46Q0pY0zxDz9s7T for ; Sat, 7 Sep 2019 00:50:12 +1000 (AEST) 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:cc:subject:date:message-id:references:in-reply-to :content-type:mime-version; q=dns; s=default; b=B6IO1vBGTh9TOFb2 +PfHjG6Yby0dqIyyAgbrHTYQgA/kD70CkAVJRVVgxSD2wQHKsr2ZLN2hl5Olbcvn YKQXEWx12Amq2lSZM5lN6teU2V2tiimhLt0oVKJ1VbKKi898CZYpJX+LGdOIm6zJ vsUkZ2oZnakfvMKcTgUEPWRWtiA= 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:cc:subject:date:message-id:references:in-reply-to :content-type:mime-version; s=default; bh=IampvZMgri2phfTx1eNTqC ymgHk=; b=Zgxf+LwVLjsOUh0oT+GgBVy/4jrTshu/rYXwlhrOygMFa5iltX/X48 kFwMxryYJIcjIPM28+k+m0uQ9kwY4ADP8sI653biUggcdix1GU3gmZexlfcRAXP9 XkS5SaV6zxTXNab5wrK/K1jMqQisn8GlhhQM8sB1gsob/uIe6w49k= Received: (qmail 59203 invoked by alias); 6 Sep 2019 14:46:45 -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 59001 invoked by uid 89); 6 Sep 2019 14:46:44 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: EUR03-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr30057.outbound.protection.outlook.com (HELO EUR03-AM5-obe.outbound.protection.outlook.com) (40.107.3.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Sep 2019 14:46:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J79waA+0TlUGCbpJfgc2F1q05u2TCRLZyGKyqOjCo2M=; b=CDDFywokIpfrpy+7Hr2Mj702ISFEF+UWlvWBPYq1PZFi2Clp3Xz8vCRpoUVoeiWvquT+fsC4QInx1qnBhTaVbxEXH1Mn744EdhhODKx93FyNN83MzaO3OfJm/f2Xn980bCY/YJ02YnrxVpAqAA1tYpfJ2L2vZj+KwXkmDe4kYiA= Received: from VE1PR08CA0025.eurprd08.prod.outlook.com (2603:10a6:803:104::38) by AM6PR08MB3941.eurprd08.prod.outlook.com (2603:10a6:20b:ab::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.14; Fri, 6 Sep 2019 14:46:36 +0000 Received: from DB5EUR03FT062.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::207) by VE1PR08CA0025.outlook.office365.com (2603:10a6:803:104::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2241.14 via Frontend Transport; Fri, 6 Sep 2019 14:46:36 +0000 Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; gcc.gnu.org; dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT062.mail.protection.outlook.com (10.152.20.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.2241.14 via Frontend Transport; Fri, 6 Sep 2019 14:46:34 +0000 Received: ("Tessian outbound eec90fc31dfb:v27"); Fri, 06 Sep 2019 14:46:33 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 6ef6a355e5033cd6 X-CR-MTA-TID: 64aa7808 Received: from 69168a46d1c5.1 (cr-mta-lb-1.cr-mta-net [104.47.2.55]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id CCE6686A-09E6-4BD2-B880-24D31BC20858.1; Fri, 06 Sep 2019 14:46:28 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01lp2055.outbound.protection.outlook.com [104.47.2.55]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 69168a46d1c5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 06 Sep 2019 14:46:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ls8I/976DLASOfkhCvedA2DYGIORmDr6mixqw+q+VKew3xCwoME5HIViBIhfWWzosNNDSvrFLgxHS9F7/YGDuNkuNhZHdq0OiYCepGvOlYTMnkrCi5vbqxjb/slxYNxeqec5xQV9XPYS01oTni45mnP0eKVsPAmP847Ik6SZ5YGnB7bEe2xRCORLKtvLnMMOXE+rPjp1QzbK2LY7ENlqVXmojzPeAgWu1sXZAaKMPGXXfuE5AK+QDIBESXNE8mbbtFD7gIMRcfXDxdjzGYWFAVZBj3AiY4+HKdL/CB1GklRZH8YSh5EmpMaBt9Dq09d6TTIecpHPkEu/eQLK1KiVIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J79waA+0TlUGCbpJfgc2F1q05u2TCRLZyGKyqOjCo2M=; b=csrPIy9anvR0jtY7nnJr3ODzI8xBN6VOQ/IK+PSVQ6vWvCNpPgJjfTBTE9om1kh7sU3gqDRCahjN+Bd3/JGnxhEv2gajc/UPW21dcDSFmpX2G9A501YdHYqihT+Wf8FM2vSvzOBNcKOaiE5vB1Dc1a51HN6Xtj+0c2Mt2LLyrdY6flp2Bp1Zer3QofFju8fvj1HCL5aDm2QecZ6f9AEpULgYJ0LoCNXqw1eFBKs3NhVUltcO6VI99M6OtHoWCiPv3etA8MPdwl3X8FdI5dHhGUEaKK6/voTuJadgaRAnxUAyezv2lkiOSjUuS9m3R+e3D1JzgUx5/2M1xkp5XO8xig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J79waA+0TlUGCbpJfgc2F1q05u2TCRLZyGKyqOjCo2M=; b=CDDFywokIpfrpy+7Hr2Mj702ISFEF+UWlvWBPYq1PZFi2Clp3Xz8vCRpoUVoeiWvquT+fsC4QInx1qnBhTaVbxEXH1Mn744EdhhODKx93FyNN83MzaO3OfJm/f2Xn980bCY/YJ02YnrxVpAqAA1tYpfJ2L2vZj+KwXkmDe4kYiA= Received: from VI1PR08MB5471.eurprd08.prod.outlook.com (52.133.246.83) by VI1PR08MB3488.eurprd08.prod.outlook.com (20.177.59.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2241.14; Fri, 6 Sep 2019 14:46:26 +0000 Received: from VI1PR08MB5471.eurprd08.prod.outlook.com ([fe80::206a:65bd:e6a9:536b]) by VI1PR08MB5471.eurprd08.prod.outlook.com ([fe80::206a:65bd:e6a9:536b%2]) with mapi id 15.20.2241.018; Fri, 6 Sep 2019 14:46:26 +0000 From: Matthew Malcomson To: "gcc-patches@gcc.gnu.org" CC: "mliska@suse.cz" , "dodji@redhat.com" , nd , "kcc@google.com" , "jakub@redhat.com" , "dvyukov@google.com" Subject: [RFC][PATCH 16/X][libsanitizer] Build libhwasan with interceptors Date: Fri, 6 Sep 2019 14:46:25 +0000 Message-ID: References: <156778058239.16148.17480879484406897649.scripted-patch-series@arm.com> In-Reply-To: <156778058239.16148.17480879484406897649.scripted-patch-series@arm.com> Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Matthew.Malcomson@arm.com; X-Microsoft-Antispam-Untrusted: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(4618075)(2017052603328)(49563074)(7193020); SRVR:VI1PR08MB3488; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:4125;OLM:4125; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(396003)(346002)(376002)(136003)(366004)(54534003)(189003)(199004)(3846002)(6436002)(54906003)(53936002)(52536014)(6916009)(6116002)(5660300002)(71200400001)(8936002)(71190400001)(14454004)(14444005)(81166006)(2351001)(81156014)(256004)(446003)(8676002)(5640700003)(52116002)(5024004)(66446008)(44832011)(25786009)(9686003)(2501003)(86362001)(186003)(305945005)(486006)(476003)(6506007)(102836004)(11346002)(26005)(7696005)(74316002)(99286004)(7736002)(386003)(33656002)(316002)(55016002)(2906002)(66556008)(99936001)(478600001)(4326008)(76176011)(66946007)(64756008)(66616009)(66476007)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR08MB3488; H:VI1PR08MB5471.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info-Original: bLH0soOyFk3hfcLuqBXQugEZKuIW9ZQ3E9WOcvGqaQ7n8czyR75nxbX85BpdfpAFe01ux744q8J7bJ5tjTaonMerCsSSqUk711ZiDPBPBaGtxA10+061XARXeWcFn2PxV+8R2buji5jCP9R09ERR3Mjwl/t8u6feKsQqFSZGkii4KFY5y2q5PZGUNJVfnGV8Hu61NU6aW5dFSriRsxqB92bTLjcUgMHuJC0lDThuOskpdjeVXLG0BjwTWWB9RqDSi3dmw73VWO0yfPyGfWAWLBg24xu0Lvry4HVKSytRZE4H/ZerYFWXVExpatc1zx7oTUgf0hrJtb24NIWjzcqRZRliUCV4GnHJBrEnk7jrk5VQsgEW7jrjPp/nHWv5ToWaVpmM0YPyuErW+h8seJoHvzsdwL+DSXgDN64Jns7VLBs= x-ms-exchange-transport-forked: True MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Matthew.Malcomson@arm.com; X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: d3692fb3-2e70-404b-261d-08d732d8fe5c X-IsSubscribed: yes This builds the library in the way designed for userspace rather than for kernel space. This means intercepting allocation routines so they now tag memory at the same time, and intercepting setjmp/longjmp so that it clears tags on the stack when called. libsanitizer/ChangeLog: 2019-09-06 Matthew Malcomson * hwasan/Makefile.am: Set HWASAN_WITH_INTERCEPTORS macro. * hwasan/Makefile.in: Regenerate. ############### Attachment also inlined for ease of reply ############### diff --git a/libsanitizer/hwasan/Makefile.am b/libsanitizer/hwasan/Makefile.am index 36c0fc4d9e832dfc81c72d2d05c2b327589daee2..4d9f6b9bfb6ce81fa26d028ba37be055ad0d645f 100644 --- a/libsanitizer/hwasan/Makefile.am +++ b/libsanitizer/hwasan/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) -DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 +DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 -DHWASAN_WITH_INTERCEPTORS=1 AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -fno-ipa-icf AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) AM_CXXFLAGS += -std=gnu++11 diff --git a/libsanitizer/hwasan/Makefile.in b/libsanitizer/hwasan/Makefile.in index 472fbf7d8d2a5311db8fe4c14376f9213cdddde4..5fec6788f2c87c86812b6ac81f7705608f49b4e0 100644 --- a/libsanitizer/hwasan/Makefile.in +++ b/libsanitizer/hwasan/Makefile.in @@ -270,7 +270,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ -DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 +DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 -DHWASAN_WITH_INTERCEPTORS=1 DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ diff --git a/libsanitizer/hwasan/Makefile.am b/libsanitizer/hwasan/Makefile.am index 36c0fc4d9e832dfc81c72d2d05c2b327589daee2..4d9f6b9bfb6ce81fa26d028ba37be055ad0d645f 100644 --- a/libsanitizer/hwasan/Makefile.am +++ b/libsanitizer/hwasan/Makefile.am @@ -3,7 +3,7 @@ AM_CPPFLAGS = -I $(top_srcdir)/include -I $(top_srcdir) # May be used by toolexeclibdir. gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) -DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 +DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 -DHWASAN_WITH_INTERCEPTORS=1 AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti -fomit-frame-pointer -funwind-tables -fvisibility=hidden -Wno-variadic-macros -fno-ipa-icf AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) AM_CXXFLAGS += -std=gnu++11 diff --git a/libsanitizer/hwasan/Makefile.in b/libsanitizer/hwasan/Makefile.in index 472fbf7d8d2a5311db8fe4c14376f9213cdddde4..5fec6788f2c87c86812b6ac81f7705608f49b4e0 100644 --- a/libsanitizer/hwasan/Makefile.in +++ b/libsanitizer/hwasan/Makefile.in @@ -270,7 +270,7 @@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ -DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 +DEFS = -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -DCAN_SANITIZE_UB=0 -DHWASAN_WITH_INTERCEPTORS=1 DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@