From patchwork Tue Aug 2 11:10:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: YunQiang Su X-Patchwork-Id: 1662951 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=cipunited.onmicrosoft.com header.i=@cipunited.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-cipunited-onmicrosoft-com header.b=tL7/vDjy; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LxskB516Pz9sCD for ; Tue, 2 Aug 2022 21:11:13 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6B45D3853834 for ; Tue, 2 Aug 2022 11:11:07 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2096.outbound.protection.outlook.com [40.107.215.96]) by sourceware.org (Postfix) with ESMTPS id BCBD33856DDE for ; Tue, 2 Aug 2022 11:10:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BCBD33856DDE Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cipunited.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cipunited.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SvgA0XJcWREztQWXmCYMH24kfZGMV9Gf4FrJVNSZukwKjU9veIKON3v0+VJc2CeFbATTV9fjNBN2KWu/JK+orFvfC31Ree0BK+18RcovFYVXBNGMjUEjpSfw/NHuU43Yq9KHCvqCrIsME3cpB7QQRWDFv5jNkOp64jq6xVLLO7N4k80nC62Xxz5wZoZmM30BY+I4QGCDZHpiyd5T4pdo9e5EGoCDHV11qirSMfXYFT+QMZse50Z38At4INRi1Vq5axRcVFU9yyT8lZCRGZEX1+B1CBDm7fuc9T2S2OU9Ut512TQTxZVXiDNSoBzeCP3wihLoRN6f6ssz4tPlv8h8sw== 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=QWyviEQv8s8zBwTDB6QzxJarG58gzzjP9UqofUVA8Pw=; b=U0kNHLx1o0B7TAPRJsSSwUHDCU6Tbh3Ip4zaqku/xdO4O9IqqIMjc5TVDvlev35cMtWCCnnB1a5fOPP9Na/hOpa3LbPCKVUDJ7wBzz0e89l3IeOSJGnSepBWUsxYUiAjZFPoICCy6kxua9nQhY3ta4Q3oF5UVTIjoGTzLbI5hM5zoXbUHuMYt5zgtWXA/hfseemBcUjY9MCt7SdyZxteXWqNTOxrSXV8RC/Ly1BmXfAaol4aoPVbjZ0bjOwDTCTXRCYGI7MFBp+oVo31BFzRFUt1g53Ts0Hmz4s3WCCAkAIXdzNGNmLX1nRu5WngkBYSyj3rfMdaspX/1m/SPYMkMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cipunited.com; dmarc=pass action=none header.from=cipunited.com; dkim=pass header.d=cipunited.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cipunited.onmicrosoft.com; s=selector1-cipunited-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QWyviEQv8s8zBwTDB6QzxJarG58gzzjP9UqofUVA8Pw=; b=tL7/vDjydwsov2fQYuwnB3uU/y/GNoMorOeTxnPf/CxYznocry/1n5ny+b8Z5jJGu3nFOhKzPwKQpIsnLNRe4zePytoh1St1oGfqQWVkYlfD5q8NL7zHsMvqfZdrlIHCfO7ny3SWXRBSkOhEIjWvs96u9V07tcpcgjTsf89kxik= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cipunited.com; Received: from HKAPR04MB3956.apcprd04.prod.outlook.com (2603:1096:203:d5::13) by TYZPR04MB4654.apcprd04.prod.outlook.com (2603:1096:400:59::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.11; Tue, 2 Aug 2022 11:10:45 +0000 Received: from HKAPR04MB3956.apcprd04.prod.outlook.com ([fe80::a553:a63a:459a:363e]) by HKAPR04MB3956.apcprd04.prod.outlook.com ([fe80::a553:a63a:459a:363e%5]) with mapi id 15.20.5482.016; Tue, 2 Aug 2022 11:10:45 +0000 From: YunQiang Su To: gcc-patches@gcc.gnu.org Subject: [PATCH] MIPS: improve -march=native arch detection Date: Tue, 2 Aug 2022 11:10:09 +0000 Message-Id: <20220802111009.35536-1-yunqiang.su@cipunited.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: BY5PR17CA0049.namprd17.prod.outlook.com (2603:10b6:a03:167::26) To HKAPR04MB3956.apcprd04.prod.outlook.com (2603:1096:203:d5::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1fa4b22f-b684-4ae8-533c-08da7477a4ff X-MS-TrafficTypeDiagnostic: TYZPR04MB4654:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K940Nc03jLvv34Se/p9BV6Ek0i7rZ8qxsDze32YqNaJf882GznojWX4C01zQ/M5YXrJRfHFe9ynNnFcxgZZFNuL5w/XiVFk/8vx8Ypy1nNHkCk2pMedus24IqfeK8vbWmT7xVtVLz6SuTl2K2iq1h69yO6gYdMCnT97FhvI9M57lptdArCnE4HAj63mpJIMyvashE/eGL+FLdFN6+iXQp/TFlO45hlYIuA2vuZb5lXUlyNgeHZ3UGt53BDbQOQHTHdgOt/qGrKcxfi2iW3zOgu6aI9UdJvrxFpsf+2XKvH4JHlQMmjjJNS5hlFdW8TlA3aMcMEIaLfTfKQYNMdHMBQdvAmMfVNVe9STSAuX5ySll4ikqZ0hqQEuk8Rrt3tlDr1Qw5DVOK9wxEHxmYNmtwko9nUEnv/2FORdFpZcebWUcDrtTHrFFNP4blEa5fVIrtKnpWf/A93ZV9EKQ/c8N+0sYvt97QagpMiwbXUMe+VRZ30peNgzxTvfE3zU6oPpou+0OIMqRqvIvMaVUNz/l+aEG4N9hAsZelOMoZUWVleehRmOYoCRNt230FKecW7hfrzr7KNzPlVUbWSzMAzFv6fJ1nxGCxnUCn1JbPWjeV/FP0ttbtRJljPpUsO3S9a3lqT5RUfQFVqTC5LrZg0sskubQVfV1vcJi/efMhNWvHrUum/Jrt5N/nGO7+M9Jy7kPuZ2ZUe35aMOekoT6Lkk3wmAwC5o4PF0gHGkV344oSrXjYWnz3m5k7pBW/kIBWp37 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HKAPR04MB3956.apcprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(396003)(39830400003)(136003)(366004)(376002)(346002)(41300700001)(52116002)(6666004)(6506007)(6512007)(316002)(6916009)(86362001)(478600001)(6486002)(38100700002)(1076003)(107886003)(83380400001)(186003)(4326008)(2616005)(2906002)(36756003)(66946007)(66556008)(8676002)(66476007)(8936002)(5660300002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WL0cUEfvcVF0eZ220lLeSrhDOinr4ruuG+jf0WgHMvyZ9vJimOnTyOANqG04eVV3RVRDF6U725WD24zjLJMcD7cGbPU4I2Xva+mLyv4AbI348icTuyeFJNNqa4LMqJ7sOtJfIYawrSUCX+r0gtf9s+IJLR1roRqHHzl3q/ODevgz3ad7cIjq+jTcLJOLobV/BKUSIekeLKSVuK19rA6U3XrT4JCX1MqulHUbyoQSwSGlI47wb31BTi/x/alYPl1Djz9ZLDq2r83Lot/prPkjegjaVpQwR91BX1zK22gS9EjrueITlacsoDgP7VS5MlSvrrRLWfYp9AYuBVPmvL1+i3qb/gmxjb95Q7VeZwtuYP7ssGn5kkmNHo28EHmX7jWXi8Dra3NJmZ3gNLv3swY2/rJ8aS9L+2NsSlNqbq/E8GB36xxkqqu3b3gaoBcgkDQCnJkpFjgGytVWiDOjTMD5WBIkm7uQWwm8D6Cg378SAKKryC3R0viA0uLfxYEuq4bovrPZfkOWBrvSHyT6bg6m5JajwdAhVp8LkQh058Mi+oHhGYQsR8jBmFKkoc+b/J3SIGjFVd0Iet343xzTiejuIYkIYjiW1xxKa/sSo0I95wpnc9vQzb/b1BLPvYr7hBHg6VwWdf/YPVonQ08k8BeqnzrtlstLJLCn+bArnJEnp4ct+hOMiChz55Zs4rjg4heThIPJtUM+TBByiAu/y+HqE/lvz80CRufQOTjlHwad5iYa00GYBXGr2OtAu0ubRjopGns1hbN4uhRWzeRHsqa2wjyuCzOw+JY0Ow0dK8xEsgNOnUXnY1+7F8tDfH9I+thLHkbmQ00BK9ODMr8t3SfP68ErvlKOcbWPrc2qlyXwgBvmqFC1N0PEcStHi9YhltpyiGSs11Z1Vup1y88gCno+MbGPvxuGYiv/zbiRNXCRNHfccjmlIVa9L2yIM4Y27273GGRN6nKS96v31OtLHrwfL82xkKWIpeY73Uf3WJsVzzklnwaZCQlbrwUHed4BiWtB6bxznXzKqFeBkOSwHsQZt/2au/ipeww8iB3rnjP9DM+Z0XrWGFSm464FiH2uCaT5XY2TqI05J/BynmQPGclfcFQVMGjOGnfgZVD3LMDV5EWnNOiGtxfKfnDijS7/k5fXx2Db+REP/V2myHrZ0XjArHKoGPH9bKC0lXko/nITeJB+JJCgiqD1UaGoBqOPuXQSalU5TCNBGvmFyd6Gu3tPq7CWt3tFNHIc8zr67nnFkiqM8m6Wx7E+NBIgf9TCUmynwgmv9XF48uhOuSK/qb8AaJnVnjWeIKrBQjVqGDr4LXop6JFsaUQrqqqtlefTG0lmF0qd/T1rizqi5eHyE/OavQUAakj+MKLbE9SAtxi4RGVHRmQMzIYmK8EU9qcpzV96owrPiF/Vsrp/yqaEe2AttNplaIFwKGLKmHGQVB3bRclcSNIn3gla/Pwa/1m2PycC67mb034m57QdNblxOslD+ddqdMOqKehYFHlz5nYel+g6RaZ56WqEENTgFsf03YKyJAbnifzwXgFHBNrENezsLOlLoK92PIYisrbcPfnMQQDxwxy5mL4dJFZKltIVjpWq9Fma/s5D8VamhDmE2sugHAeIrHPZhSa3b06Ae9XNM+AcwGED/rzLvqM1Ci7bQokwF5fER9v7Ln1UyQkHwdpf6A== X-OriginatorOrg: cipunited.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fa4b22f-b684-4ae8-533c-08da7477a4ff X-MS-Exchange-CrossTenant-AuthSource: HKAPR04MB3956.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2022 11:10:44.8847 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e31cf5b5-ee69-4d5f-9c69-edeeda2458c0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sZPiJGGWYLYVxcqnNwo8JnLggPObfr6aotIOOL/TdPQIRQpZxd8o9oZJIZUEo5QBZj2/OR7hpB/iKXCCHEPsGzlr53Jc72kJamg+W6Hl24Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB4654 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: YunQiang Su , macro@orcam.me.uk Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" If we cannot get info from options and cpuinfo, we try to get from: 1. getauxval(AT_BASE_PLATFORM), introduced since Linux 5.7 2. _MIPS_ARCH from host compiler. This can fix the wrong loader usage on r5/r6 platform with -march=native. gcc/ChangeLog: * config/mips/driver-native.cc (host_detect_local_cpu): try getauxval(AT_BASE_PLATFORM) and _MIPS_ARCH, too. --- gcc/config/mips/driver-native.cc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/gcc/config/mips/driver-native.cc b/gcc/config/mips/driver-native.cc index 47627f85ce1..9aa7044c0b8 100644 --- a/gcc/config/mips/driver-native.cc +++ b/gcc/config/mips/driver-native.cc @@ -19,6 +19,7 @@ along with GCC; see the file COPYING3. If not see #define IN_TARGET_CODE 1 +#include #include "config.h" #include "system.h" #include "coretypes.h" @@ -46,15 +47,15 @@ host_detect_local_cpu (int argc, const char **argv) bool arch; if (argc < 1) - return NULL; + goto fallback_cpu; arch = strcmp (argv[0], "arch") == 0; if (!arch && strcmp (argv[0], "tune")) - return NULL; + goto fallback_cpu; f = fopen ("/proc/cpuinfo", "r"); if (f == NULL) - return NULL; + goto fallback_cpu; while (fgets (buf, sizeof (buf), f) != NULL) if (startswith (buf, "cpu model")) @@ -84,8 +85,23 @@ host_detect_local_cpu (int argc, const char **argv) fclose (f); +fallback_cpu: +/*FIXME: how about other OSes, like FreeBSD? */ +#ifdef __linux__ + /*Note: getauxval may return NULL as: + * AT_BASE_PLATFORM is supported since Linux 5.7 + * Or from older version of qemu-user + * */ + if (cpu == NULL) + cpu = (const char *) getauxval (AT_BASE_PLATFORM); +#endif + if (cpu == NULL) +#if defined (_MIPS_ARCH) + cpu = _MIPS_ARCH; +#else return NULL; +#endif return concat ("-m", argv[0], "=", cpu, NULL); }