From patchwork Fri May 15 14:40:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 39269 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2C6B3398600E; Fri, 15 May 2020 14:41:38 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80082.outbound.protection.outlook.com [40.107.8.82]) by sourceware.org (Postfix) with ESMTPS id D65B93985830 for ; Fri, 15 May 2020 14:41:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D65B93985830 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Szabolcs.Nagy@arm.com 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=lzWHS6DnogbMcOCjVaiRlRk8FYN3VjXA+n3Ze8B8xbM=; b=XjVHEFTsx6TodIvLKLJNUSe93saFCxlVIzR94kB4vq3fTjCIXrXuIzKUu/VxHGxhTR76VnNONjkBCanTE5xCx5Ch++Q3HhZXIpWRC3g8oR9VwHhZsFyFP6gH5WyzJYdrSfXzMLPygRprvT9T7CPpuPnJJV3J0UZd9l4ijQVlWLQ= Received: from AM6P191CA0018.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:8b::31) by DB7PR08MB3785.eurprd08.prod.outlook.com (2603:10a6:10:32::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.25; Fri, 15 May 2020 14:41:14 +0000 Received: from AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8b:cafe::a2) by AM6P191CA0018.outlook.office365.com (2603:10a6:209:8b::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.25 via Frontend Transport; Fri, 15 May 2020 14:41:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; sourceware.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT043.mail.protection.outlook.com (10.152.17.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.19 via Frontend Transport; Fri, 15 May 2020 14:41:14 +0000 Received: ("Tessian outbound ff098c684b24:v54"); Fri, 15 May 2020 14:41:14 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 50997078280f8a36 X-CR-MTA-TID: 64aa7808 Received: from 49b6e27cf6d5.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 774A30B3-F03D-4620-BFD4-EF419AACDB42.1; Fri, 15 May 2020 14:41:08 +0000 Received: from EUR03-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 49b6e27cf6d5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 15 May 2020 14:41:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iaGdOEmQsDUbiUMewN7v2Qg6/i3rT4jJsMKeN06+Ta6/KHXQDKZ+8w0Tw1+Mf7H9g1D0cGLKO1qAYryr0YrFwG1BNHwoBaFUcmdtn97omG8dOeNQ5uubveOQbuMIo02LFfYN+vm7UvLklkvahhk7qVOpSXN3B8mniFjMGQlt7Azbfae1W3Zkqt0i9mzWvGgenp32RBd3DmawXEcJBS1b+oNgmvwD6KI/g7GC2NU5NBw4ZECQwIleBcHACI0lQKJeGFc/lQtabcmXZjnWztELVNLc8u3Uu/aBHCNJNU/gcL7ej8cXQkJV96K9aMGkR0eLyGI4arS8Njdv2FrXHB/j3Q== 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=lzWHS6DnogbMcOCjVaiRlRk8FYN3VjXA+n3Ze8B8xbM=; b=NeurzTpTTcJiOhTU3M0vCjNN33tNfUndDwrIw5/4GOf3UJrRUvnW6Gwk5leFxooAUxuurkGvCI2EXEGptP9ZsSl89HVFSxKrqfTQSUWctBLMkLSNvrymeSsxzJy6xGvn5FEpbNHjVmUXYIK+me+2KlHvGSJ7Fa566DDTVXPwrJKjTcFozqayQr9N6UsDv+e2Wa52aFdLFqeYYmQEMkdR8zph53lu0eXlWhsQoRqwfXdCCBiMCEmy7rGXZnw3ap/INXgVXsQC8ENxDVDSV6+g0viQVBvl2CFz7GPIQkuZX6XIW6i07LO4XJDy3cIxK3HaOOx5qntZvMmAdmKEvgiyoQ== 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=lzWHS6DnogbMcOCjVaiRlRk8FYN3VjXA+n3Ze8B8xbM=; b=XjVHEFTsx6TodIvLKLJNUSe93saFCxlVIzR94kB4vq3fTjCIXrXuIzKUu/VxHGxhTR76VnNONjkBCanTE5xCx5Ch++Q3HhZXIpWRC3g8oR9VwHhZsFyFP6gH5WyzJYdrSfXzMLPygRprvT9T7CPpuPnJJV3J0UZd9l4ijQVlWLQ= Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from AM6PR08MB3047.eurprd08.prod.outlook.com (2603:10a6:209:4c::23) by AM6PR08MB3528.eurprd08.prod.outlook.com (2603:10a6:20b:4b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.34; Fri, 15 May 2020 14:41:08 +0000 Received: from AM6PR08MB3047.eurprd08.prod.outlook.com ([fe80::49fd:6ded:4da7:8862]) by AM6PR08MB3047.eurprd08.prod.outlook.com ([fe80::49fd:6ded:4da7:8862%7]) with mapi id 15.20.2979.033; Fri, 15 May 2020 14:41:08 +0000 From: Szabolcs Nagy To: libc-alpha@sourceware.org Subject: [PATCH v3 12/13] aarch64: redefine RETURN_ADDRESS to strip PAC Date: Fri, 15 May 2020 15:40:56 +0100 Message-Id: <07c221c020bfa0e03566e06e036ff5a923d6a324.1589552055.git.szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-ClientProxiedBy: LO2P265CA0309.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a5::33) To AM6PR08MB3047.eurprd08.prod.outlook.com (2603:10a6:209:4c::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.55) by LO2P265CA0309.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a5::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.24 via Frontend Transport; Fri, 15 May 2020 14:41:07 +0000 X-Mailer: git-send-email 2.17.1 X-Originating-IP: [217.140.106.55] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 89f5fea7-c9ab-4aeb-f3c7-08d7f8de04cb X-MS-TrafficTypeDiagnostic: AM6PR08MB3528:|DB7PR08MB3785: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000; X-Forefront-PRVS: 04041A2886 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: RUzaLWg/gqFqZp4OcFBcin/nziP5Z4wKMbhcZIFOXKeEXkHdWrqZCsMAUblVjJ5d9u2B1uBXO+b/kD821CdeHUulW3qIQMbC8oUiQslDmYhuBwBrPr40BowoxXRf1yt+lnxK4/CHEFyNTOiD48+o4+QUGVSAKwTRS7eJi6P3BGKVqN3/I6J9zzmI2udLQERrRIBmq+EqGZvLf18N8RUEUKkuBsjp1OUNT3nkJVnYw69y9CkRvN6tfXjprhoqBypr6yP4214JrXRHzVbHMri8i59eO5mmD+JqDX/V5iqeMtrJW2YopqT1IEnG1syyR34C2qFHB1jnyJU4Hg87HQIwbYz/FU0rWi9wEa4tUtc4kP9Ou6acMs943RKmzTD/3IseVTxV/M8T2VBB3hWphf0NBXUQJy+95FUJdfPdE84H2FUhYaS6QvU4LQ0O4qFLqJX46edcVhbBSYbexwWLQXNBD3d20ZtgRERhTQpoMAHJIx+ZWu9HyQuWw2vIeP3P3flYN3C7RpGU0FEc2Qh82qvpa9nhC2eH4nGs6pacpnv8PCBvoGB7REP+zZHEagOMoCNGFa9X6hfE5BFKjiTYpy3Vaaa32XxRGCviBLn6KOa49jwIz3GzcZiD7J/IainZq1tg X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM6PR08MB3047.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(136003)(376002)(39860400002)(346002)(366004)(396003)(86362001)(6506007)(69590400007)(52116002)(478600001)(966005)(316002)(6666004)(6916009)(6486002)(66556008)(44832011)(6512007)(5660300002)(2906002)(956004)(66476007)(8936002)(66946007)(36756003)(186003)(26005)(2616005)(8676002)(16526019)(136400200001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: BC+cYFxbvpdBpoVOV5Nlc2aCC+PDOkYZXHOQ4wpOIs63bTQusW0tIN6xXVn+310jWdPxPCbLhScmI42JgdsXOMptxF1VzmNTBZq8fjplCf7fVA5lxadfzxDZdsDfRC8r9wpJPBqM1IqxwdqEetur/QWbLELYeaFjhTVFxZDYUaxgzkpbbL/3h1xAK5e/IuOPLnzaeF+ye2BV9RtoDqHcYIJNNKpIcHFC76XMeqjYsc9Iu55B+Gxjze9UaJi8jwhJuSTOluEejU3m0iAovLGUuCtN4R0kvdkSrznZCraoJ3V+r3Hu36TWaMcmVHVCu5PIrhFFV2LUnNf7uwPgqdFPuZrA5QZJX7pjeO6Otak136FvmMSHAPk3puAkXI49rHSlHHEv7ym0a24lP9TJ4V8TSkB+g2WSeKKZriy4N6ySqxRXt/aq9vUsYe/+Vm8XJAIf41b96spXWR3P3DbixGLdTBT5hRLaIRgAvEDSSltckWM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3528 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(4636009)(396003)(39860400002)(346002)(376002)(136003)(46966005)(6512007)(47076004)(36756003)(6486002)(82740400003)(356005)(86362001)(81166007)(8676002)(8936002)(69590400007)(5660300002)(82310400002)(70206006)(6666004)(6916009)(966005)(478600001)(6506007)(186003)(70586007)(2616005)(36906005)(336012)(956004)(16526019)(26005)(2906002)(316002)(44832011)(136400200001); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: b6d334e1-c271-49a3-d349-08d7f8de00fd X-Forefront-PRVS: 04041A2886 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ik3FP3bzQJ7jdryGO+O0TUHt5ObyNY0p/Om5e4nbd9yh5fSTTpdyz7+tnlPrsLRkbHAoyz17prYoQjasXtInsATSO21iSgmOIz5sFu9z24PeMboaHIQoXE8PuIFSDqwhFP7buQPWyQibs2Xdfx0aYtSMzF/yK7Eo8/L6bO2mo41RW55GOf8P0mqWd+GtYdhV0NvnXWbu4G1Clf8eCl69MA/z9Pbrwm2tzKpronxqQ7Je86yd+M+bnT10xtC4m4Cm5QdxAtQgpz5qK0IXGhkOcew0BURVRicTWPSwzWONwiOKtyJH/WItbFFje+i+11al2R65IpxaB62g3W6N12Ivy6Y5qUZjarnaQT8iDK7EKP+6lotWxvgT5qx2bolCUuXuBzjskdYrxARXLamiWxaSmDtAb4xYiu6UDmL+2Jn9ocIHJsheqMgh9a9FWXW+aYcSSz4yQF1q2b28yX3vRGcgadpzNhITPAbU/TjKYrnUXmYuVP9C0aNwPxOGM5mM337wxw4kSDl5PO9oMPILseFPfRwgIyJBqLlhSRGsLM6WHacB50jrTiYIMUi+lMfKPJR809vzttKcraRVcBYZ7qwjGKX9tdt6NuDL9Leigmihnvd4CIv+2Fjp6LV5rRNAmHp4MhyB45sJIuDJPf3w4XUmkoZmvLCypcB+OQesxO/ad4A= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2020 14:41:14.2324 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 89f5fea7-c9ab-4aeb-f3c7-08d7f8de04cb X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3785 X-Spam-Status: No, score=-19.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" RETURN_ADDRESS is used at several places in glibc to mean a valid code address of the call site, but with pac-ret it has a pointer authentication code (PAC), so its definition is adjusted. strip_pac is omitted if glibc is bulit without pac-ret, but it could be added unconditionally (that's just unnecessary operations). Inline asm is used instead of __builtin_aarch64_xpaclri since that is an undocumented builtin and not available in all supported gccs. Note: such change indicates a problem in the pac-ret design: it can break code that uses __builtin_return_address and the breakage is only visible at runtime on a system with pac-ret enabled. It is not ideal that users need target specific inline asm to fix this up. For now we can recommend disabling pac-ret where this is a problem, but gcc might need improvements in this are to make pac-ret usable. TODO: __builtin_return_address handling with pac-ret: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94891 Reviewed-by: Adhemerval Zanella --- sysdeps/aarch64/sysdep.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sysdeps/aarch64/sysdep.h b/sysdeps/aarch64/sysdep.h index c51572a690..7a70cf7a2b 100644 --- a/sysdeps/aarch64/sysdep.h +++ b/sysdeps/aarch64/sysdep.h @@ -35,6 +35,23 @@ #define PTR_SIZE (1<