From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2070.outbound.protection.outlook.com [40.107.21.70]) by sourceware.org (Postfix) with ESMTPS id B0847385381B for ; Mon, 31 Oct 2022 15:36:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B0847385381B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=Sf9b4wwGlytFZ4E5c79ekmGczvHpQr67sE8xrzpjkGNjplDjy3REmIzOGn1Cb/aHRCuBdxzTJrUDH/fRcAnQ6fzTZvA/ZuPtq5Myzsm2c6vlcXkmVyjO76lFVBz+C/8RK7uYsAzgKXmQWbOqXkS6baj24PS51O3YM9ZMv9JU3OAaTGFSPe+empGisqZVHmX381X59BvElU6Z63X/2MpsZM+fkdWErPhwR5ki9SBfKBPCs8FmuphpEpLGJkt5tjQw1pybJvnGAYDrckhpnaW+PySKmCL8jNeRjNMY/1Lsi234WUtJmI0TXyRDiJUIrNidBNdDYee5RyESIdhDkXOLMg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lTPgr2H5ql69eIOW8ZmY22E54KJke+u9TVt3n8Bh7CI=; b=PtCQJVjsJLwetAIFmGDKpd20y91HU29idF+Z8biW9JB0wy0QCYkkxUVt66uBe+DuPyL/L/HAprvxyL6ucRlJXjTa86EjXwkQamUkHPAtho8UaOGHQFrQjr0acMus99G+N5SROOsFWE2hSae4r1SJVB4sQjbNOb6cY0nJ5Gxeo3lTiRk1+x2vv8vvjaOwquzegQ8dGBBx1i02mNrDdWaKdYJ0kffWAjycSqKxuq4P43amMxCgjt3lZMShDR71oSD64F6yFHcNFsmygrrMJ5L4HG/rmAd7XfZvfMUp4Ct0g9eH13ukNMFX8lT0RBC97+RLvS8amnihapqCyJjKuzXQwA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=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=lTPgr2H5ql69eIOW8ZmY22E54KJke+u9TVt3n8Bh7CI=; b=iXH1jTfqNcfeH2WEuOFbLk3feBU214d7f8pKlvgLqqt6u+GGUJsgleZ5ZeZk0ea29JplpHFcEVucRr9oBF1fERkdPVNWn+5MMklsRqZOVPd2ezLUjgxsMgbp2vQshC6Yfh52Kw0ONlhgyGS//7zBfVaxOsmN3OGSgjmqaTaL0H0= Received: from AM5PR0502CA0012.eurprd05.prod.outlook.com (2603:10a6:203:91::22) by AS8PR08MB6695.eurprd08.prod.outlook.com (2603:10a6:20b:399::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Mon, 31 Oct 2022 15:36:36 +0000 Received: from AM7EUR03FT057.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:91:cafe::75) by AM5PR0502CA0012.outlook.office365.com (2603:10a6:203:91::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.16 via Frontend Transport; Mon, 31 Oct 2022 15:36:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass 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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT057.mail.protection.outlook.com (100.127.140.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.14 via Frontend Transport; Mon, 31 Oct 2022 15:36:36 +0000 Received: ("Tessian outbound aeae1c7b66fd:v130"); Mon, 31 Oct 2022 15:36:36 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 9fcf4b0bea0d6621 X-CR-MTA-TID: 64aa7808 Received: from 2711a1517ec0.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8AC84389-B2CE-44F1-AD86-43371F6B510E.1; Mon, 31 Oct 2022 15:36:29 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2711a1517ec0.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 31 Oct 2022 15:36:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hR347RFKQXcIjtfI/TLh/SRVbfSC5xmoPp3c9ibfU01wCdUXXR8VChvN0VIQqc0uQd9oHDpMz9AfXwiZ8nDXmY3g0Dy/22P6sxAxcyPOu2UeRkpWsHd6VkG20horWU77BDbVKgmPyvdqjFKBpTCrYuIdC6kbuAPO7BgHOI7Nuwazq0FGCJcrq0Ul7RdodujbjMNMA6R+tV4jg1GweMr0Q9zLoQuBKtpdJr9MbHQ+BkW+1WskJPxdIIb8GECairEhdJ9nkAaayE7yPrruvz+zh6WZyV2U77hlxXRh14QA+iFDtR0Bfb7MZy/FSmRv0LPrXjbl2LnGcibDYO9AQZx/Uw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lTPgr2H5ql69eIOW8ZmY22E54KJke+u9TVt3n8Bh7CI=; b=Jo+Biq9DNoKSCVG0RXeSA3a2sHZ1drVI9a6I6s03qmRjmOtKCZzan/v2pCLiLq8pDqPDO4ZMOBBWY+L9SqlW4T/5qxFuA5ylj29BtKYpDUZV9iMUna4LJ68PpSI+yatXBlL7M2EdIaV44U07IExkdiymFYTJ4SEqgn/rdmLDYctKqstc393LPGIZ/rFVhxNU/hHuawn62rF/jMrTlKuJt9cmOLu/wSoYXbDLDCt+TJe8/Q2JiBn/46+PIuZCB4xSCFsi+O3Gdu4UBz8dud3oZxM9b3tju0P5jA3zVb6nPbTU827vxxN3p/0ESIvQDSLmfZ6/NM/OsQIPWcU6VWN+uQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); 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=lTPgr2H5ql69eIOW8ZmY22E54KJke+u9TVt3n8Bh7CI=; b=iXH1jTfqNcfeH2WEuOFbLk3feBU214d7f8pKlvgLqqt6u+GGUJsgleZ5ZeZk0ea29JplpHFcEVucRr9oBF1fERkdPVNWn+5MMklsRqZOVPd2ezLUjgxsMgbp2vQshC6Yfh52Kw0ONlhgyGS//7zBfVaxOsmN3OGSgjmqaTaL0H0= Received: from DB6PR0501CA0034.eurprd05.prod.outlook.com (2603:10a6:4:67::20) by AS2PR08MB9521.eurprd08.prod.outlook.com (2603:10a6:20b:60f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Mon, 31 Oct 2022 15:36:27 +0000 Received: from DBAEUR03FT062.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:67:cafe::28) by DB6PR0501CA0034.outlook.office365.com (2603:10a6:4:67::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15 via Frontend Transport; Mon, 31 Oct 2022 15:36:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DBAEUR03FT062.mail.protection.outlook.com (100.127.142.64) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5769.14 via Frontend Transport; Mon, 31 Oct 2022 15:36:27 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Mon, 31 Oct 2022 15:36:25 +0000 Received: from e120703.arm.com (10.2.81.20) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12 via Frontend Transport; Mon, 31 Oct 2022 15:36:25 +0000 Content-Type: multipart/mixed; boundary="===============1773537291952743222==" MIME-Version: 1.0 From: Srinath Parvathaneni To: CC: , Subject: [GCC][PATCH v2] arm: Add pacbti related multilib support for armv8.1-m.main. Date: Mon, 31 Oct 2022 15:36:25 +0000 Message-ID: <32a435b2-b9c4-4b51-b1f0-d9f304ddf8c7@AZ-NEU-EX04.Arm.com> X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT062:EE_|AS2PR08MB9521:EE_|AM7EUR03FT057:EE_|AS8PR08MB6695:EE_ X-MS-Office365-Filtering-Correlation-Id: a32e0528-a135-4638-3a9d-08dabb55b288 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: QbrLoSTPw3+FSQD76AF9WA5KckOUEbRmFFwKN1Ri8FDaJtiVe7lpalpjp+QAKjCWyj8jvV9pV9WEl3pX9t7o4IxK02HmCIWJlRU00S7fqFqPrfmVHH+/BVd4ZW5bnBT4H0iXj6nourlyw/OIaN2c9nP89gTOZZbryJ/RVjMMT6OlJVM7eYYW19GPnV9Ul7QrSj2pVNm5MWvUm7CeoU0TrhyGgcmVJPgSnaae7pDBtrn231D0NO3zf4BYIjQVy/bvivwJhdzp8kHKbIutcos1l0G7nv7pz96xsUEpbmdoOTV3wNIGlKGUlk77UQlD1KmsorwUC+CEsFG2WkcNnYOZGpD9PCBi672xJjiWxksGUtGh3rAZQROmV2ST0yKP0vSb0/K9oOhZofyeJxKgUy918EB1m6DECBcUySMLd7KjRFX5cnKvDJuoDK9Afxqx4bHFR+BvWNbpl0Pi5/G+cFd8iVGsE5U2vPs8dBioPFOa+VQwR8/SDwHq32jBcdJCkfG4SvgEmtBayKh+B+QdLV4gYT2mar9rRNoxXXrntHI2BBFE7SXe2K4rb4Eediy4ZbvxBjH6IkyIwoD5m/3oS5eao7ws7gi2Qp1AVVp5Zz8qSCYIfBWfMurW+2rhyDnvCayfGkDljEvG6+5nV0KWhVcRQyq4RVyymWwqGtgvmY9l4o6qUu7MDJeBeX4nJAf9DQ++E6LpjP36VSxCiLjgfUcfGtHErT/DNNhqjOJ/mOSPo5ftlzRkVIY+h6SHn0d38yMk67n/HbCuXrXFgIMQjqvxBnfZL0ML6yUj5+UNjejWEt0xUi6LLrBSejDsh8kJFDnW X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(136003)(39860400002)(396003)(376002)(346002)(451199015)(40470700004)(36840700001)(46966006)(8676002)(316002)(44832011)(4001150100001)(2906002)(8936002)(70206006)(31686004)(41300700001)(54906003)(70586007)(6916009)(82740400003)(36860700001)(356005)(81166007)(82310400005)(40480700001)(4326008)(478600001)(84970400001)(26005)(86362001)(5660300002)(336012)(235185007)(83380400001)(426003)(40460700003)(47076005)(31696002)(186003)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9521 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: ee065f85-73ca-4113-aaf1-08dabb55acf0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wcxvYEnOh6Olqw5A6vIw1sPYTBK4VhEA3tgkhAJwCJzxcQGzoH3dIMFZlrn5oeXplIj5TNBezxdwf/Z1cL73x8k0Hzy6a8a2mEL7jAbV6KN9B/AwSGhuITrFefBZNr7xsmPL0mogW0ImQrUMV1c8fi7Aic7+ZFNRXzwPFgdnAx61CjgJGKAq+t80OYAjV7K66y13JMS2Rsd7o68pSH0KrIgWtlogub+PSb6XLcKvQ0yOucTjS7VGilKqNqic3XLDU7ynLOWxXC6CZlShqNunewQd2Er8CTwAW8LpqL0jYhz7IqE6CDxWc1Y7vmp4iu+FjJQX8O4QcxYmru+2BZFhPAGJQkW/pwrD2R2AVu+rUNoQjwKoyxLfQI1Q5F/olwTO3/6bigzS23FwP03FO10SU1DYf56LU1h6xWZ/2YPzo+VTm14mAuiHp3gJE8BuCEtETmDN4qOCsiiqg/pm4EGnrQGsUcK27/tMhjY2XPozzkL/LJkEycoNI+3JJ97ynJ9H5KMK92qcESo0GWOEl9DlD3AaUfldTxSXdxgFdfjfu/EU+bBZRcYPXZRBUdC7kgtzk3u8BpJ5nTDpISNKP6397IEwXbAjbfKHYrkSnR75tbIAhyoDWrh4vPcN+74wRsEsWC/f7hFZAn2uQmUIg9SiOXZBfJt/oylFs4TAn0JWFYGxjhlwtTcxsBjaPhugfcFZtQwVsKqb0AK4+0tVc6sLK19O8CyR5IE7jdA+svjWbhflVKZ3ES70RmjL/2lEOB+PRp82k7Wvc0+byw1EJQgjshBY7T/4SZlmDiSUANAf1gE= 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;SFS:(13230022)(4636009)(39860400002)(376002)(396003)(346002)(136003)(451199015)(46966006)(40470700004)(36840700001)(83380400001)(40480700001)(82310400005)(81166007)(40460700003)(86362001)(82740400003)(31696002)(36860700001)(31686004)(316002)(6916009)(54906003)(478600001)(44832011)(5660300002)(235185007)(41300700001)(426003)(47076005)(186003)(8936002)(84970400001)(2906002)(70206006)(4001150100001)(26005)(4326008)(8676002)(336012)(70586007);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 15:36:36.7608 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a32e0528-a135-4638-3a9d-08dabb55b288 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-AuthSource: AM7EUR03FT057.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6695 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --===============1773537291952743222== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Hi, This patch adds the support for pacbti multlilib linking by making "-mbranch-protection=none" as default in the command line for all M-profile targets and uses "-mbranch-protection=none" for multilib matching. If any valid value is passed to "-mbranch-protection" in the command line, this new value overwrites the default value in the command line and uses "-mbranch-protection=standard" for multilib matching. Eg 1. If the passed command line flags are: a) -march=armv8.1-m.main+mve -mfloat-abi=hard -mfpu=auto b) -mcpu=cortex-m85+nopacbti -mfloat-abi=hard -mfpu=auto After this patch the command line flags the compiler receives will be: a) -march=armv8.1-m.main+mve -mfloat-abi=hard -mfpu=auto -mbranch-protection=none b) -mcpu=cortex-m85+nopacbti -mfloat-abi=hard -mfpu=auto -mbranch-protection=none "-mbranch-protection=none" will be used in the multilib matching. Eg 2. If the passed command line flags are: a) -march=armv8.1-m.main+mve+pacbti -mfloat-abi=hard -mfpu=auto -mbranch-protection=pac-ret b) -mcpu=cortex-m85 -mfloat-abi=hard -mfpu=auto -mbranch-protection=pac-ret+bti After this patch the command line flags the compiler receives will be: a) -march=armv8.1-m.main+mve+pacbti -mfloat-abi=hard -mfpu=auto -mbranch-protection=pac-ret b) -mcpu=cortex-m85 -mfloat-abi=hard -mfpu=auto -mbranch-protection=pac-ret+bti "-mbranch-protection=standard" will be used in the multilib matching. Eg 3. For A-profile target, if the passed command line flags are: -march=armv8-a+simd -mfloat-abi=hard -mfpu=auto Even after this patch the command line flags compiler receives will remain the same: -march=armv8-a+simd -mfloat-abi=hard -mfpu=auto Regression tested on arm-none-eabi and bootstrapped on arm-none-linux-gnueabihf. Ok for master? Regards, Srinath. gcc/ChangeLog: 2022-10-28 Srinath Parvathaneni * common/config/arm/arm-common.cc (arm_canon_branch_protection_option): Define new function. * config/arm/arm-cpus.in (armv8.1-m.main): Move dsp option below pacbti option. * config/arm/arm.h (arm_canon_branch_protection_option): Define function prototype. (CANON_BRANCH_PROTECTION_SPEC_FUNCTION): Define macro. (MBRANCH_PROTECTION_SPECS): Likewise. * config/arm/t-rmprofile (MULTI_ARCH_OPTS_RM): Add new options. (MULTI_ARCH_DIRS_RM): Add new directories. (MULTILIB_REQUIRED): Add new option. (MULTILIB_REUSE): Reuse existing multlibs. (MULTILIB_MATCHES): Match multilib strings. gcc/testsuite/ChangeLog: 2022-10-28 Srinath Parvathaneni * gcc.target/arm/multilib.exp (multilib_config "rmprofile"): Update tests. * gcc.target/arm/pac-10.c: New test. * gcc.target/arm/pac-11.c: Likewise. * gcc.target/arm/pac-12.c: Likewise. --===============1773537291952743222== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="rb16143.patch.gz" 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 --===============1773537291952743222==--