From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2106.outbound.protection.outlook.com [40.107.255.106]) by sourceware.org (Postfix) with ESMTPS id 7A0DD3858D20 for ; Fri, 14 Apr 2023 07:21:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7A0DD3858D20 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=OPMvKhFNS2vWTbDi7XI1o4/qy2XiYJV14J5pDfI/FxqS55l2M38Sv0i9cQj1mcVIfvVV/Fze0dO+roIOWXKgKjYBsMcWgJuf7x2gmZ9RdR4G7SX4hixNOlVHOiDRdIqAqlvFlftGo9JhECv4CSBhz+S81N+hutvW3v1B6pewF5lHP6dNVUabhERKgouq4K9bkBnDEFS7y+0Na1n4RYMEvz78G2/6l6nIRRnn9RwYO031z3GoIFvhS7Qonds041YSAqgmg5GolIE4VTqZgsSVnCx3dLDM+6SSBpg2ARNz4/MaleIDINIJ1XyaGuqEO19KBU/1RsMTkCzIeA9DnCLTLQ== 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=PvGovfLjfvi1oT8raHw4HyXemX3EgmD8crogBUnZkbA=; b=J3GzvNvWhaiGWhP4z8MSeJsBXtgHXRvzRlrfDGwzqc4t+LDXC/scLbjYAsDE+jZSh3YjDpfXIoLskS+unqv3YTBxyFQwHegsSB0yrRQlbXKS+F7E5k8axnRTq4Dbn8BjNmqcZXRTG3JunfjzTjmkWDe18kurcFUEm/rI06F3AfxAnjsWR6Y9Fz/HarW87eYKxm/pIl5GdJrb5aLoCH+9jsdjFESo5f4NA7nNaGKL5oF+PLeSxxBsZxWGpjYtSb3G8PUdCBpv7pZKfQxZ1CnIYIsTZcHbo+uHa2nC1BXULzXdJJbGgrwtXzEBUlOA0+SfK2ThLrErfVz8ut4Dmc5rVg== 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=PvGovfLjfvi1oT8raHw4HyXemX3EgmD8crogBUnZkbA=; b=L+5UBBaKU6SxCvqAT/I/kziMeDZFaZ6WbuTJ+p2d9jWIE1A9+f3DMvU9py5dh3B4eYkx8vjZADp8sMAYwRhkaYyF6JBxOOSQgs7XVEN/yg1cO7XjE/TBWHSL4HB1dhhJEoN2AGuCGQo4kSUUT0xu4ZiB1eecoju9akATrYPK+R0= 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 TYUPR04MB6792.apcprd04.prod.outlook.com (2603:1096:400:35f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6298.28; Fri, 14 Apr 2023 07:21:07 +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.6298.030; Fri, 14 Apr 2023 07:21:06 +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 v3] MIPS: the default output fellows triple Date: Fri, 14 Apr 2023 15:20:46 +0800 Message-Id: <20230414072046.1639896-1-yunqiang.su@cipunited.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230403110635.23391-1-yunqiang.su@cipunited.com> References: <20230403110635.23391-1-yunqiang.su@cipunited.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: TYCPR01CA0018.jpnprd01.prod.outlook.com (2603:1096:405::30) To TYZPR04MB6117.apcprd04.prod.outlook.com (2603:1096:400:25a::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR04MB6117:EE_|TYUPR04MB6792:EE_ X-MS-Office365-Filtering-Correlation-Id: 949d625e-928b-4b31-c0cb-08db3cb8d009 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jjDIw6cfVGKiSNhHEvrIyFY6X20u+pe77kO6btGjFtsKPhcBSUzW+a0TNjwmr5STY7VWvSwKqy9jWglmKXbg+hR71nPQw+68Zl3GefCOus8wxnYhBdY38EO//VyhsBqh6nYob7K8zz5IquNlcc6AzdWdwmK/UkkSwl9Kz1gAI2ioQbR2gWN4rJnEcP0CHx7yG/xv6ML+sWk/qT4ikz2TTE0vrfbq1+RE5LioizYTucuFIgWlsCqLiLnAKhuaY3KUncfpddPmbn2CrjAw++FHUOr7bVRpqrNRnKPhg/y5LIG4vko4e2fZqPvPv8YOfeLIxImNaxKPxQBsooeDs8zP2rg0mjpvdfgWhw1zAYu5xDAqQW7Dj9lfrSNRCKMol56oG2pjO+weqkcDdoans20TUG2RaigTNz2nA9auxoCt7qNh7trpbYjavsbOcaohuL9KEQGavejY+VX9kpUbCJkAFkXq6BqgmpyBsStC640HcTftn3rXPdUl0r1t7b1K0DKNtrefKh6cYaPCZ55QRiKX5WtrfvVz6/H5zUp1S+t6xr1hYlCZUEoj2TecKmp41GuSdcvt5AhtU10ufX8l03crqzZCiXXsAyCj7WiGshn0kwe8L9AG1ZlwY4Zepz8gj8ov 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)(136003)(376002)(396003)(346002)(366004)(39830400003)(451199021)(6486002)(36756003)(38350700002)(5660300002)(38100700002)(86362001)(41300700001)(8936002)(2906002)(6916009)(66476007)(66946007)(4326008)(8676002)(66556008)(2616005)(83380400001)(107886003)(478600001)(316002)(1076003)(6506007)(26005)(6512007)(52116002)(186003)(6666004);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6iY4sJm2V59m74/Zq8lPLs6s9V/fJgXRODlDxSRwCExg/HXTatKi5k+BKgn2?= =?us-ascii?Q?RdrU567NLmk+Xk+DPLoVI6pDbVz6fkPV0j80ot79lO6QOg2uyiYKRo6dW9X5?= =?us-ascii?Q?NMuIfgwJtdVhHMbEAYKgPhCKugyZ6ptCdfM2GHj/5nOz0gUvd/8GYj55eN7q?= =?us-ascii?Q?SgRcaG+cQex4URMRYrL9lO1NdFUYjgCZN9sbvVTMiW90YO5nLeYjXGt1wEz4?= =?us-ascii?Q?1N8D1bhQcIPSFcwUo5r/FMA96BjgzW6B1YNkITKYLXarMDO2k22+ixYz3juT?= =?us-ascii?Q?j0hxhDVmxChZarYjwLJXM43WWE3WsnWeBPEfPJjT9UJ4X9QK1Q2tM7U+76pY?= =?us-ascii?Q?nJ5P1jmXQ10kjfVigl3mCuXHh4Jm1pl2Jdr3ZfhnI7OM/4d7TFitMbamRdqe?= =?us-ascii?Q?683I3kLyd3yvkYEUO1FdObqrB4FFbAuKKJaCyCfX6pQluZmb4dzNRBRpSOxe?= =?us-ascii?Q?HMH+82EO/o0gHojznle07MD3LpxfMT7iQIurtMgYG5kUumv7NNomBKwCAKGW?= =?us-ascii?Q?/S0vg8fGrycL8PorOrSNr4IQGIjN8oXFSVhpaylmKdEGsOLTYH3FyHj2zkHS?= =?us-ascii?Q?/1FSO0KeHeVcXJaVS72hMYkvc7RTN8dbqqktSIK4QZ6ALEzZlyfZ9V0yoLt+?= =?us-ascii?Q?yM+xTD6mkSjmXlNfjOVJzAdxXEqkV0v5lknwda8B9cG6KU1LpysxStyICjqi?= =?us-ascii?Q?XDS9FemzXi2s7tDWxJanKC/nNrrRNbomTijD2KkmuHn0ERVrcNWr10d/ZRhy?= =?us-ascii?Q?MiLc9OM3Glqd/V00+Yj3RbvJkPiwJgC5U+J5U6c9CeyyTpQD6PDXxH2yfkCH?= =?us-ascii?Q?IjKuzA9p0m1K8D3aj1joiHOAiy+NxbxRprohj1A/No+4LfPMHqeyLfWbmDAe?= =?us-ascii?Q?KEYlNcT8p2wUp908cE2PyBIhet0xYt9TwJNmnMEaO2CTDc5lqC262gYAKJPz?= =?us-ascii?Q?ZY9VvMx/FQ32a4QzGH1w97/5NXLJIY8G/w9M3x+ohdhElNFLzW8qKn/wwage?= =?us-ascii?Q?XOBqZBxejOtvJhka8Ep2/jrmEbyzhQKtRnm7dW0k3iAU+1fUSFltT1cFa/ib?= =?us-ascii?Q?rfcqWlzy2iJgPRjml89tM5TrR18msG3/7vWFvZcY007T4bjitQlcKDjxgvor?= =?us-ascii?Q?fflGKxxC16XpNTHEtfJ1c6lj4mUzYUKfNlHbYYitGEGDboxEpzv0a0wRu+yN?= =?us-ascii?Q?6NfYT9U0+gPmu2QMQSApENXaaPTDQxLIj0o2xjvZBjCyBlgFOnoJCNuP8DrA?= =?us-ascii?Q?PFkNEZjLsrHMAxGnEx9RiQuUWdKpKN69WPxVfWJpG2UUraZkUFeZ1sLea/KD?= =?us-ascii?Q?VInEgHRvakcH6mWUnm590Coh+PPky6raZGPtWMfNhEDTAElt67icpHTGljVm?= =?us-ascii?Q?F17uFtnt8iqDq0ImmwTdE3XLPdIxY875RYBwB/7hckodIUicdWqqXoyq2ZHH?= =?us-ascii?Q?7vCjDWMwgM25YXEwupG0V2O/4MkBiUVfxTiScjZwEUFgqT3lsf3Pqsg+RpYo?= =?us-ascii?Q?kCdzYcPlCt20j4/zm5xq1r8WMA++3x6ju464HWyu2vtGhmasVAsbr7qffQ32?= =?us-ascii?Q?vxfxFX/uO+ZvhkPnKrcemBsfcEhoH2FeCv2JLSEhyLtrEzEjYCTBJ9wbUWBu?= =?us-ascii?Q?nQ=3D=3D?= X-OriginatorOrg: cipunited.com X-MS-Exchange-CrossTenant-Network-Message-Id: 949d625e-928b-4b31-c0cb-08db3cb8d009 X-MS-Exchange-CrossTenant-AuthSource: TYZPR04MB6117.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2023 07:21:06.7855 (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: +fBybFJVRTvLCrtmOgZlVa8CyptZZUJSMkTF7vZ+tyC96M1+B7Qc8Q9NOylHkRL5WCJIVM6YFvGHOWmyXxYK2enbPCPua5ze3xCgkZZ5nsw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYUPR04MB6792 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: PR 25494. 1. as fellows the isa level in triple of target > as xx.s 2. ld fellows the isa level in triple of target > ld -r -b binary xx.dat -o xx.o These rules include: 1. *-gnuabi64: will use N64 ABI by default 2. *-img-* (vendor): will use MIPS r6 by default 3. mipsisa32r6*/mipsisa64r6*: will use MIPS r6 by default --- bfd/config.bfd | 21 +++++++++++++++++-- bfd/elfxx-mips.c | 10 +++++++-- .../binutils-all/mips/mips-note-2-n32.d | 1 + gas/configure | 14 ++++++++++++- gas/configure.ac | 14 ++++++++++++- gold/configure.tgt | 14 +++++++++++++ ld/configure.tgt | 12 +++++++++-- 7 files changed, 78 insertions(+), 8 deletions(-) diff --git a/bfd/config.bfd b/bfd/config.bfd index 7af481048db..a57105097a8 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" ;; @@ -1525,3 +1535,10 @@ case "${targ_defvec} ${targ_selvecs}" in targ_archs="$targ_archs bfd_iamcu_arch" ;; esac + +case "${targ}" in + mipsisa32r6* | mipsisa64r6* | mips*-img-*) + targ_cflags="$targ_cflags -DMIPS_DEFAULT_R6=1" + ;; +esac + diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 13a89953293..336c32b48ec 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -12327,9 +12327,15 @@ mips_set_isa_flags (bfd *abfd) { default: if (ABI_N32_P (abfd) || ABI_64_P (abfd)) - val = E_MIPS_ARCH_3; +#ifdef MIPS_DEFAULT_R6 + val = E_MIPS_ARCH_64R6; else - val = E_MIPS_ARCH_1; + val = E_MIPS_ARCH_32R6; +#else + val = E_MIPS_ARCH_3; + else + val = E_MIPS_ARCH_1; +#endif break; case bfd_mach_mips3000: 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..0daa80d5b4c 100755 --- a/gas/configure +++ b/gas/configure @@ -12211,6 +12211,15 @@ _ACEOF use_e_mips_abi_o32=1 ;; esac + # If Vendor is IMG, then MIPSr6 is used + case ${target} in + mips*64*-img-*) + mips_cpu=mips64r6 + ;; + mips*-img-*) + mips_cpu=mips32r6 + ;; + esac # Decide whether to generate 32-bit or 64-bit code by default. # Used to resolve -march=from-abi when an embedded ABI is selected. case ${target} in @@ -12223,7 +12232,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..2b91f9ec616 100644 --- a/gas/configure.ac +++ b/gas/configure.ac @@ -380,6 +380,15 @@ changequote([,])dnl use_e_mips_abi_o32=1 ;; esac + # If Vendor is IMG, then MIPSr6 is used + case ${target} in + mips*64*-img-*) + mips_cpu=mips64r6 + ;; + mips*-img-*) + mips_cpu=mips32r6 + ;; + esac # Decide whether to generate 32-bit or 64-bit code by default. # Used to resolve -march=from-abi when an embedded ABI is selected. case ${target} in @@ -392,7 +401,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