From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from APC01-TYZ-obe.outbound.protection.outlook.com (mail-tyzapc01on2103.outbound.protection.outlook.com [40.107.117.103]) by sourceware.org (Postfix) with ESMTPS id 35BF23858D37 for ; Thu, 20 Apr 2023 13:31:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 35BF23858D37 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=cPU7FM0suL5n0/c4jyv3CsC3VMGVKtlbJ/RY9rj7eSsXRI4rBWxDMVjEPTqMFkkwY9+2LnCIaN4p+htg7AFgqGzQwojEX86kbYxbJ1ZrJKMfzQ3bRqjPI1+RQkClM/LhrGIqHOD0Unc5Y8jt4drpn6L923sUdmjETqLWE/MKE2iIVaDKM6LQL5VH5Fep0VoRLsyg4JSmO4hh9ACx0y33svVjcadnsP9qe9Mr3q1IkAajg8x7f9RRX2xjLT91MNO82Y2QvpfcAq7foUNatJWmxF/hhv/PifsiDq1SLMcswXsV9wS3EpG0AJXuxpLUA5fX4Bz3xXfoAupN/B17b59F7Q== 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=A1KYNdpviDEdXRlhYJ/jNpDz0TKWx5d2AtdSGPPAXqo=; b=iTlPy5DVNI7s+q4A1FusexOXyIpcwijG7PXIjU/ZfnqKsxJePrsP9RFq3W9BcSN1G+2dQLipSYBReV1Y2ejwTNzKLTJHSkDf/4gdBmtDlAJxAgq1xHDKdHclb9peVngj7ULY2Vf7PgIF9Dbrzy0AzBKG6xA8f6fThj3a+EkU5ITBnb8eNAKfDVAiXpJ7/Kr9jZRs9h73R+Iq/jCGdVPheJWtWQFry+InFfAGrJCe7V2eLIaqaA8wLWGdu+BjYGGv3lgEXOMm8x5Vy9EMT0Mfxw/E4V8hp3c1M5sEtPy4XngfuBwPpbAElpzFRRnHP+gIP8xZ7EOzUzfrPHnS3FJa7A== 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=A1KYNdpviDEdXRlhYJ/jNpDz0TKWx5d2AtdSGPPAXqo=; b=dADK3iWpYrGHeL69BMueOfO1R3cLRZ7szEF5OFzskGLUq6Ijod0WNBdq2Lo78SaW4HMaBdGUMncvOZjbxeoUbcR/YGL9i8FMpdiBce4XqqWnjX6NTRDifRXLR/rf7wtsgU77UzOrtC9WcgmKJW2/BibMxXTLsb2ad9WWoFXy79w= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cipunited.com; Received: from TYZPR04MB6117.apcprd04.prod.outlook.com (2603:1096:400:25a::9) by SEZPR04MB6172.apcprd04.prod.outlook.com (2603:1096:101:ce::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.22; Thu, 20 Apr 2023 13:31:25 +0000 Received: from TYZPR04MB6117.apcprd04.prod.outlook.com ([fe80::4016:87b:f0d1:b150]) by TYZPR04MB6117.apcprd04.prod.outlook.com ([fe80::4016:87b:f0d1:b150%6]) with mapi id 15.20.6319.022; Thu, 20 Apr 2023 13:31:24 +0000 From: YunQiang Su To: binutils@sourceware.org Cc: syq@debian.org, macro@orcam.me.uk, xry111@xry111.site, richard.sandiford@arm.com, jiaxun.yang@flygoat.com, YunQiang Su Subject: [PATCH v5 1/2] MIPS: support mips*64 as CPU and gnuabi64 as ABI Date: Thu, 20 Apr 2023 21:31:01 +0800 Message-Id: <20230420133102.2422583-1-yunqiang.su@cipunited.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230418140019.2195551-2-yunqiang.su@cipunited.com> References: <20230418140019.2195551-2-yunqiang.su@cipunited.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: TYCP301CA0017.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:381::8) To TYZPR04MB6117.apcprd04.prod.outlook.com (2603:1096:400:25a::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR04MB6117:EE_|SEZPR04MB6172:EE_ X-MS-Office365-Filtering-Correlation-Id: 048a6368-6683-4e61-1344-08db41a38911 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iuTF4mrcnoTzr/N6s6FPDru0+oS/VfRT+I3K2PTQfJj84HknP9Rir0Qzgz7pobuE7iQn+SKBy3RF14NtKQrqre6zJEyhkyXJaund7BaktvtSE+Y46srHOlUzzL0NXwfLoYaH/wm1aqPw2ngWNrMD/WS9tR3aCNDO1PmKuyVO8DQLNzV+GcWEdhuYG1CDgXrU0vXnplyjQ+VwXoGi+/1BAbfAgGCCpem27/im+xsXJg5E3f5kNn0HFOoek48AVtgpyOgbdFjx2/YAvIfU4hwjqGMzHOYqpfZIE+CnO2OSeC3b/5aD3EX8Sf//q8eClKDycVczdIlnoznjNfdILKNBaOmAO9o5ZnSwrGE9Fs3w4DpPBF6Px7mUcSvBDVq33X9Zo5EvsUAZ5p0wfJFx+30gt4FECjB6lO4suvyAuESnpZz1u2G1TQQ2UX1bHZhZvC11f7h2a/Pi4T10mFl/8T9Hilt7/L0X5pH6eX0q3v1giwrBJhbRZG1bqmGj+1L/C4Ww7esiEmNZT2tF3Z3kkeXcwlxP3Fn0vKgrEXIlqymP9amxugckoJ2Y8hK4p6Pam2GKJTcuK+P+eDmlF721Lh+k5hqzk0BGj+51rnl0DrtJIc8CYsUtzJ9o/nLDeKylQTwn X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR04MB6117.apcprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39830400003)(136003)(376002)(396003)(451199021)(36756003)(4326008)(316002)(6916009)(66556008)(66476007)(66946007)(478600001)(52116002)(6666004)(6486002)(8936002)(5660300002)(41300700001)(8676002)(2906002)(86362001)(38100700002)(38350700002)(2616005)(1076003)(107886003)(6512007)(26005)(6506007)(83380400001)(186003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rNbJpsChNN8vTFRPVXQ5frRjYifY7hw4iM2VWOrlHRPV3PANK81NWkZE6Qj+?= =?us-ascii?Q?r6kYo4AuGPX8Zn1XFhRvAZGdFTYVtMW0Mn6EG+jVAr5qplf2eH1anOii+QbZ?= =?us-ascii?Q?sRxrq172Iru1MMBPUDOC/ihuFiVda64M+3nqNW9bDKCUDMnFdFX2gwJ/WFiG?= =?us-ascii?Q?PVwgb6BlxDtZeRnZShoAAv9uleRFG9y84ak83HcgDdTj8R75EuzcZOLIrWLP?= =?us-ascii?Q?CWF6HBL1cKqcDqGWw8QX5P9IrVPNwNgNHp7F1gKFKktptQJ2/jiKsmchidmt?= =?us-ascii?Q?Gbw+TXvv2S8w2yh0UiZkLIEXtK2yyaaZD33g4oEnpTHT8IO1rXE6K9bOOLHD?= =?us-ascii?Q?4Dl7BvrccIf4LGTUBlRPaJLYl7pOC9pW3TYArr/2mq6EpzcUVQzKpgKW8c/f?= =?us-ascii?Q?8rsL0ZteOeVDUAYytFR8u6aLLv0G9PBV+PsqgQ0kROyXPRUESRgb/dtcQebT?= =?us-ascii?Q?9sy6z7O9hDFP20HROP4XZsNxPmPnXppuNcYgNL+q9E+5ZkvW8jbtsE1zX+vP?= =?us-ascii?Q?u0/wu+ePc+Mpz7s11IFO4IMckBm0lcpFdR7hCxBxgk1ZHukM2oTqnrINGrUE?= =?us-ascii?Q?kS9kEpgljunXo304/keWRoZTO9h1sSYtTh4L/nk3kmSUs62+S5e0nQcxokbl?= =?us-ascii?Q?iPlToHdYyE1Y7rJkFv8EUEAkmD0MICjmGBw1LNyfJcA9Ikw3/g19zCIoaFpF?= =?us-ascii?Q?U2m5vOnvNoms9o8p+i5Ba1ttn/Xy/MwmT2Yv2mew/rMbOe8KMsCk4WCCd7RT?= =?us-ascii?Q?Vra4L4sy99We+rpf2dmYRPmB4b2W/Sq5zyWtmyfr6Bwt7vSX2utIKDYWqlub?= =?us-ascii?Q?h8QYTTYzFVMWKG6OlOdcCnwh27FrKZ3MZ9oG2X+Pi4MzL0VHNRZFkaUgf/yu?= =?us-ascii?Q?wzqIQRdkD1vAllqwi7jStdPSPFE/bcLxJ35UIo/Oj9UnWBQLN/p39tc7idmv?= =?us-ascii?Q?IelFWBTnR0T1PCilWk5imZX/RRAkFE12M6BrRoVZMvITpdTcyNHxtw0EXcFL?= =?us-ascii?Q?ezOp2piMFw/uoKYManAIV8P3qY5lxUs+R4abmSwrWLsckwGkXv+LOsug4Ldd?= =?us-ascii?Q?yT9mNTk4SOSA/Fy2XE2p4X+6Qo9RRnGvGqE5dGIJwdPJGSn0iDEgB5Z7IWCt?= =?us-ascii?Q?cpbmYri8VOjrKFQvnknwkr5hgjrIX7KINx8cHCLJylOrEe+lCvmrOPRlSIT9?= =?us-ascii?Q?TeZQgHPFP6+5YY+9DGqnxWzNKvyiKHeTK7bRJQbDq2zcY7ykzvDMt88VGwKi?= =?us-ascii?Q?06pSmulNw6Y/NlG7OrgKQbpHjlNywPHQAA8DkgaytSROog9aSc+c40qdLQzN?= =?us-ascii?Q?K3X/PxTu4POq8SpxFyj6aaV7Kpbo5xmwOVstohoNd7nkK84MtZSivkdJ/Gmh?= =?us-ascii?Q?D1U+/w+OJUrC/CPTfgiXlo93bKHtRMtmp6zt2qYSN9cbl2foG78pA1aopNl2?= =?us-ascii?Q?/t1nQMiD2+P59gxrsFMkqSne0riswKmDPq5FKlTrv3D4AOLjiJ2RFAgF5BHP?= =?us-ascii?Q?YqTprYCR57goUOqrGqmqwS1XZ3H81EnR6KOhotlQfeZfJjD1usBvgbxYNlUj?= =?us-ascii?Q?swTyiEgiTNp96L4CHYqMkAyNaDNBrfmPYYjrK3N5ybMVRBcdUNF+LMdSk1gP?= =?us-ascii?Q?vg=3D=3D?= X-OriginatorOrg: cipunited.com X-MS-Exchange-CrossTenant-Network-Message-Id: 048a6368-6683-4e61-1344-08db41a38911 X-MS-Exchange-CrossTenant-AuthSource: TYZPR04MB6117.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Apr 2023 13:31:24.0284 (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: Oq9Y2Y0ZVD1Wjtqe0Tq3kyndONX3dc4o0PH7N/88/EetJQ1jyF9GyH6hNZW+XSTom1TaTAhZuk8OzWrTrDL4rOJ3nlRXhqWPqRZVOU9ENiI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR04MB6172 X-Spam-Status: No, score=-13.1 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,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: For MIPS64r6 ports, Debian as an example, `mipsisa64r6el` is used as the cpu name in triple. Let's recognize them by `mips*64*(el)`. For 64bit Ports, like Debian's mips64el and mips64r6el ports, `gnuabi64` is used as the abi section. Let's use N64 abi by default for the triple with gnuabi64. --- bfd/config.bfd | 14 ++++++++++++-- .../testsuite/binutils-all/mips/mips-note-2-n32.d | 1 + gas/configure | 5 ++++- gas/configure.ac | 5 ++++- gold/configure.tgt | 14 ++++++++++++++ ld/configure.tgt | 12 ++++++++++-- 6 files changed, 45 insertions(+), 6 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd index 7af481048db..1e4bea191dd 100644 --- a/bfd/config.bfd +++ b/bfd/config.bfd @@ -941,11 +941,21 @@ case "${targ}" in targ_defvec=mips_elf32_be_vec targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" ;; - mips64*el-*-linux*) + mips*64*el-*-linux*-gnuabi64) + targ_defvec=mips_elf64_trad_le_vec + targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec" + want64=true + ;; + mips*64*-*-linux*-gnuabi64) + targ_defvec=mips_elf64_trad_be_vec + targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_le_vec" + want64=true + ;; + mips*64*el-*-linux*) targ_defvec=mips_elf32_ntrad_le_vec targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec" ;; - mips64*-*-linux*) + mips*64*-*-linux*) targ_defvec=mips_elf32_ntrad_be_vec targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec" ;; diff --git a/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d b/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d index c2a581858ed..5e24e7a115e 100644 --- a/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d +++ b/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d @@ -1,4 +1,5 @@ #PROG: objcopy +#as: -n32 #readelf: --notes --wide #objcopy: --merge-notes #name: MIPS merge notes section (n32) diff --git a/gas/configure b/gas/configure index b56836998ef..868f4a911a9 100755 --- a/gas/configure +++ b/gas/configure @@ -12223,7 +12223,10 @@ _ACEOF esac # Decide which ABI to target by default. case ${target} in - mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ + mips*64*-linux-gnuabi64) + mips_default_abi=N64_ABI + ;; + mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) mips_default_abi=N32_ABI ;; diff --git a/gas/configure.ac b/gas/configure.ac index 6a68fd7c4e6..03728ffce4d 100644 --- a/gas/configure.ac +++ b/gas/configure.ac @@ -392,7 +392,10 @@ changequote([,])dnl esac # Decide which ABI to target by default. case ${target} in - mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ + mips*64*-linux-gnuabi64) + mips_default_abi=N64_ABI + ;; + mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) mips_default_abi=N32_ABI ;; diff --git a/gold/configure.tgt b/gold/configure.tgt index 4b54e08d27f..ef47ce079f1 100644 --- a/gold/configure.tgt +++ b/gold/configure.tgt @@ -153,6 +153,13 @@ aarch64*-*) targ_big_endian=false targ_extra_big_endian=true ;; +mips*64*el*-*-*|mips*64*le*-*-*) + targ_obj=mips + targ_machine=EM_MIPS_RS3_LE + targ_size=64 + targ_big_endian=false + targ_extra_big_endian=true + ;; mips*el*-*-*|mips*le*-*-*) targ_obj=mips targ_machine=EM_MIPS_RS3_LE @@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*) targ_big_endian=false targ_extra_big_endian=true ;; +mips*64*-*-*) + targ_obj=mips + targ_machine=EM_MIPS + targ_size=64 + targ_big_endian=true + targ_extra_big_endian=false + ;; mips*-*-*) targ_obj=mips targ_machine=EM_MIPS diff --git a/ld/configure.tgt b/ld/configure.tgt index 34c9d67c365..4a71f679e29 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -580,11 +580,19 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks ;; mips*-*-windiss) targ_emul=elf32mipswindiss ;; -mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 +mips*64*el-*-linux-gnuabi64) targ_emul=elf64ltsmip + targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip" + targ_extra_libpath=$targ_extra_emuls + ;; +mips*64*el-*-linux-*) targ_emul=elf32ltsmipn32 targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" targ_extra_libpath=$targ_extra_emuls ;; -mips64*-*-linux-*) targ_emul=elf32btsmipn32 +mips*64*-*-linux-gnuabi64) targ_emul=elf64btsmip + targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip" + targ_extra_libpath=$targ_extra_emuls + ;; +mips*64*-*-linux-*) targ_emul=elf32btsmipn32 targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" targ_extra_libpath=$targ_extra_emuls ;; -- 2.30.2