From patchwork Fri Jul 28 05:07:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Maciej W. Rozycki" X-Patchwork-Id: 127332 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:918b:0:b0:3e4:2afc:c1 with SMTP id s11csp206125vqg; Thu, 27 Jul 2023 22:18:08 -0700 (PDT) X-Google-Smtp-Source: APBJJlFeohANRL6OgIR/FcFPv2Z0uL4aCVojCze25hwBjU6Rz55G5lPtEGy8qhaF732aeQvl6U4s X-Received: by 2002:a17:906:7691:b0:994:34a2:8724 with SMTP id o17-20020a170906769100b0099434a28724mr1117094ejm.52.1690521488529; Thu, 27 Jul 2023 22:18:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690521488; cv=none; d=google.com; s=arc-20160816; b=gApJ+7lPyRyx6vLNwg3q/JgH0iC7o1Q8qtfnmezDSIZdujbTayg7uHtjU/59tDvv+s LpqC0/rIETmZGWZv3mrkzO3X5zzYI0q94BQ99pawRkejmxePRwYQCKqwYFlQ7H5GTdTi CQmFvQNr9H7r/uf/Xhtmz3Mt3/J4WRog0ad1Hkjsig1zbEVSrfbMxIxYT1vldUkghfX7 iAgYBtsT4LJAz2JfUq5Uf3T+zi846lrKEmsZD3d517vGtBBOksJQL1YOPSWLzYpi+4S7 9APVmH+ufrDxttqcBYcZVcR9HuCehGB7W+nMbP44bNJRBXxX0z90vaWEB5fzC+oHo//d lBmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:user-agent :references:message-id:in-reply-to:subject:cc:to:from:date :dmarc-filter:delivered-to; bh=2gPLwxyQ2Rr96f8PXU7ReWclGi6u+bpgPdGGOJHTfU0=; fh=Qo2J6dANwcPjQn140TSErRwEzDQnKw4Tx4jp1VOUUcA=; b=Csbeck1SDA4RXpo4hwoukwYBSu+AdIYxu+pcKJnNtir9GPnuw/DRE5XZ1P9f7DCBXG 1ygWc6KFCgN/Uc3sUMLT3z0ni2ULNBA1Ctpg4BbhwdtPLykW4h/J39w/aXdFXFjFmY2N J8+PHSIU6sNvPyOLjFRb/dUXBKMEFRuA55r6CoXV4xfZ7grQoFro69ssCKiAd6juwWIQ c2rZiC/VCzJAEQ8Fmy7EUOhXTqNbUORhLbwCh3PgEqGP5rXDreP0dN9Dy9aqdZRhPRnF K9xXgJN8u38lg4F3OfaefLBMDU/ES4GoXcBDajT4BzbmogfapIbZUE/e+V0M5K3wGyNz CtpA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id r19-20020a170906351300b009934b1eb56dsi2095348eja.11.2023.07.27.22.18.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Jul 2023 22:18:08 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 304703952008 for ; Fri, 28 Jul 2023 05:09:06 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from angie.orcam.me.uk (angie.orcam.me.uk [IPv6:2001:4190:8020::34]) by sourceware.org (Postfix) with ESMTP id 59FE23882644 for ; Fri, 28 Jul 2023 05:07:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 59FE23882644 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=orcam.me.uk Authentication-Results: sourceware.org; spf=none smtp.mailfrom=orcam.me.uk Received: by angie.orcam.me.uk (Postfix, from userid 500) id A4AFC92009D; Fri, 28 Jul 2023 07:07:42 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by angie.orcam.me.uk (Postfix) with ESMTP id A261292009C; Fri, 28 Jul 2023 06:07:42 +0100 (BST) Date: Fri, 28 Jul 2023 06:07:42 +0100 (BST) From: "Maciej W. Rozycki" To: Nick Clifton cc: YunQiang Su , binutils@sourceware.org Subject: [committed 16/16] MIPS: Support `-gnuabi64' target triplet suffix for 64-bit Linux targets In-Reply-To: Message-ID: References: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 X-Spam-Status: No, score=-3488.3 required=5.0 tests=BAYES_00, KAM_ASCII_DIVIDERS, KAM_DMARC_STATUS, KAM_INFOUSMEBIZ, KAM_LAZY_DOMAIN_SECURITY, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772640260460977582 X-GMAIL-MSGID: 1772640260460977582 From: YunQiang Su Make the n64 ABI the default for 64-bit Linux targets specified with `-gnuabi64' suffix included in the target triplet, for configurations such as the Debian mips64el and mips64r6el ports. Adjust testsuite configuration accordingly. There are the following regressions with the new target triplet: mips64-linux-gnuabi64 +FAIL: readelf -S bintest mips64-linux-gnuabi64 +FAIL: MIPS reloc estimation 1 mips64el-linux-gnuabi64 +FAIL: readelf -S bintest mips64el-linux-gnuabi64 +FAIL: MIPS reloc estimation 1 The `readelf' issue comes from a difference in section headers produced that the `binutils/testsuite/binutils-all/readelf.s-64' pattern template does not match. While there has been a precedent it does not appear to me that there is a clear advantage from adding more and more variations to the template rather than forking the existing template into multiple ones for a more exact match. So this is best deferred to a separate discussion. The MIPS reloc estimation issue is an actual bug in `objdump', which discards a number of trailing entries from output here for n64 composed relocations: DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE 0000000000000000 R_MIPS_NONE *ABS* 0000000000000000 R_MIPS_NONE *ABS* and consequently `ld/testsuite/ld-mips-elf/reloc-estimate-1.d' does not match even though ELF output produced is correct according to `readelf': Relocation section '.rel.dyn' at offset 0x10400 contains 2 entries: Offset Info Type Sym. Value Sym. Name 000000000000 000000000000 R_MIPS_NONE Type2: R_MIPS_NONE Type3: R_MIPS_NONE 000000010000 000300001203 R_MIPS_REL32 0000000000010010 foo@@V2 Type2: R_MIPS_64 Type3: R_MIPS_NONE As a genuine bug this has to be handled separately. Co-Authored by: Maciej W. Rozycki bfd/ * config.bfd: Add `mips64*el-*-linux*-gnuabi64' and `mips64*-*-linux*-gnuabi64' targets. binutils/ * testsuite/binutils-all/mips/mips.exp: Handle `*-*-*-gnuabi64' targets. * testsuite/binutils-all/objcopy.exp: Handle `mips64*-*-*-gnuabi64' targets. * testsuite/binutils-all/remove-relocs-01.d: Likewise. * testsuite/binutils-all/remove-relocs-04.d: Likewise. * testsuite/binutils-all/remove-relocs-05.d: Likewise. * testsuite/binutils-all/remove-relocs-06.d: Likewise. gas/ * configure.ac: Handle `mips64*-linux-gnuabi64' targets. * configure: Regenerate. * testsuite/gas/mips/compact-eh-eb-7.d: Handle `mips64*-*-*-gnuabi64' targets. * testsuite/gas/mips/compact-eh-el-7.d: Likewise. ld/ * configure.tgt: Add `mips64*el-*-linux-gnuabi64' and `mips64*-*-linux-gnuabi64' targets. * testsuite/ld-undefined/undefined.exp: Handle `mips64*-*-*-gnuabi64' targets. * testsuite/ld-mips-elf/attr-gnu-4-10.d: Likewise. * testsuite/ld-mips-elf/compact-eh6.d: Likewise. * testsuite/ld-mips-elf/mips-elf.exp: Handle `*-*-*-gnuabi64' targets. --- bfd/config.bfd | 10 ++++++++++ binutils/testsuite/binutils-all/mips/mips.exp | 18 ++++++++++++++---- binutils/testsuite/binutils-all/objcopy.exp | 3 ++- binutils/testsuite/binutils-all/remove-relocs-01.d | 2 +- binutils/testsuite/binutils-all/remove-relocs-04.d | 2 +- binutils/testsuite/binutils-all/remove-relocs-05.d | 2 +- binutils/testsuite/binutils-all/remove-relocs-06.d | 2 +- gas/configure | 6 +++--- gas/configure.ac | 6 +++--- gas/testsuite/gas/mips/compact-eh-eb-7.d | 2 +- gas/testsuite/gas/mips/compact-eh-el-7.d | 2 +- ld/configure.tgt | 10 ++++++++++ ld/testsuite/ld-mips-elf/attr-gnu-4-10.d | 2 +- ld/testsuite/ld-mips-elf/compact-eh6.d | 2 +- ld/testsuite/ld-mips-elf/mips-elf.exp | 21 ++++++++++++++++----- ld/testsuite/ld-undefined/undefined.exp | 3 ++- 16 files changed, 68 insertions(+), 25 deletions(-) binutils-yunqiang-mips-linux-gnuabi64.diff Index: binutils-gdb/bfd/config.bfd =================================================================== --- binutils-gdb.orig/bfd/config.bfd +++ binutils-gdb/bfd/config.bfd @@ -941,10 +941,20 @@ 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*-gnuabi64) + targ_defvec=mips_elf64_trad_le_vec + targ_selvecs="mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec" + want64=true + ;; mips64*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*-gnuabi64) + targ_defvec=mips_elf64_trad_be_vec + targ_selvecs="mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec" + want64=true + ;; mips64*-*-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" Index: binutils-gdb/binutils/testsuite/binutils-all/mips/mips.exp =================================================================== --- binutils-gdb.orig/binutils/testsuite/binutils-all/mips/mips.exp +++ binutils-gdb/binutils/testsuite/binutils-all/mips/mips.exp @@ -125,13 +125,23 @@ if {[istarget *-*-openbsd*] } { if [istarget *el-*-*] { set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32ltsmip - set abi_asflags(n64) "-march=from-abi -64" - set abi_ldflags(n64) -melf64ltsmip + if [istarget *-*-*-gnuabi64] { + set abi_asflags(n32) "-march=from-abi -n32" + set abi_ldflags(n32) -melf32ltsmipn32 + } else { + set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n64) -melf64ltsmip + } } else { set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32btsmip - set abi_asflags(n64) "-march=from-abi -64" - set abi_ldflags(n64) -melf64btsmip + if [istarget *-*-*-gnuabi64] { + set abi_asflags(n32) "-march=from-abi -n32" + set abi_ldflags(n32) -melf32btsmipn32 + } else { + set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n64) -melf64btsmip + } } set irixemul 0 } elseif {[istarget *-*-linux*] } { Index: binutils-gdb/binutils/testsuite/binutils-all/objcopy.exp =================================================================== --- binutils-gdb.orig/binutils/testsuite/binutils-all/objcopy.exp +++ binutils-gdb/binutils/testsuite/binutils-all/objcopy.exp @@ -1269,7 +1269,8 @@ if [is_elf_format] { run_dump_test "strip-9" run_dump_test "strip-12" - if { [istarget "mips64*-*-openbsd*"] } { + if { [istarget "mips64*-*-openbsd*"] \ + || [istarget "mips64*-*-*-gnuabi64"] } { set reloc_format mips64 } # A relocation type not supported by any target Index: binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-01.d =================================================================== --- binutils-gdb.orig/binutils/testsuite/binutils-all/remove-relocs-01.d +++ binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-01.d @@ -2,7 +2,7 @@ #source: remove-relocs-01.s #objcopy: --remove-relocations=.data.relocs.01 #readelf: -r -#notarget: "mips64*-*-openbsd*" +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 Relocation section '\.rela?\.data\.relocs\.02' at offset 0x[0-9a-f]+ contains 3 entries: .* Index: binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-04.d =================================================================== --- binutils-gdb.orig/binutils/testsuite/binutils-all/remove-relocs-04.d +++ binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-04.d @@ -2,7 +2,7 @@ #source: remove-relocs-01.s #objcopy: --remove-relocations=.data.relocs.0\[12\] #readelf: -r -#notarget: "mips64*-*-openbsd*" +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 Relocation section '\.rela?\.data\.relocs\.03' at offset 0x[0-9a-f]+ contains 3 entries: .* Index: binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-05.d =================================================================== --- binutils-gdb.orig/binutils/testsuite/binutils-all/remove-relocs-05.d +++ binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-05.d @@ -2,7 +2,7 @@ #source: remove-relocs-01.s #objcopy: --remove-section=.rela.data.relocs.01 --remove-section=.rel.data.relocs.01 #readelf: -r -#notarget: "mips64*-*-openbsd*" +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 Relocation section '\.rela?\.data\.relocs\.02' at offset 0x[0-9a-f]+ contains 3 entries: .* Index: binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-06.d =================================================================== --- binutils-gdb.orig/binutils/testsuite/binutils-all/remove-relocs-06.d +++ binutils-gdb/binutils/testsuite/binutils-all/remove-relocs-06.d @@ -2,7 +2,7 @@ #source: remove-relocs-01.s #objcopy: --remove-relocations=.data.relocs.* --remove-relocations=!.data.relocs.02 #readelf: -r -#notarget: "mips64*-*-openbsd*" +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 Relocation section '\.rela?\.data\.relocs\.02' at offset 0x[0-9a-f]+ contains 3 entries: .* Index: binutils-gdb/gas/configure =================================================================== --- binutils-gdb.orig/gas/configure +++ binutils-gdb/gas/configure @@ -12225,6 +12225,9 @@ _ACEOF esac # Decide which ABI to target by default. case ${target} in + mips64*-openbsd* | mips64*-linux-gnuabi64) + mips_default_abi=N64_ABI + ;; mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) mips_default_abi=N32_ABI @@ -12232,9 +12235,6 @@ _ACEOF mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) mips_default_abi=O32_ABI ;; - mips64*-openbsd*) - mips_default_abi=N64_ABI - ;; *) mips_default_abi=NO_ABI ;; Index: binutils-gdb/gas/configure.ac =================================================================== --- binutils-gdb.orig/gas/configure.ac +++ binutils-gdb/gas/configure.ac @@ -394,6 +394,9 @@ changequote([,])dnl esac # Decide which ABI to target by default. case ${target} in + mips64*-openbsd* | mips64*-linux-gnuabi64) + mips_default_abi=N64_ABI + ;; mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \ | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*) mips_default_abi=N32_ABI @@ -401,9 +404,6 @@ changequote([,])dnl mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu) mips_default_abi=O32_ABI ;; - mips64*-openbsd*) - mips_default_abi=N64_ABI - ;; *) mips_default_abi=NO_ABI ;; Index: binutils-gdb/gas/testsuite/gas/mips/compact-eh-eb-7.d =================================================================== --- binutils-gdb.orig/gas/testsuite/gas/mips/compact-eh-eb-7.d +++ binutils-gdb/gas/testsuite/gas/mips/compact-eh-eb-7.d @@ -2,7 +2,7 @@ #name: Compact EH EB #7 with personality id and fallback FDE #source: compact-eh-7.s #as: -EB -mno-pdr -#notarget: mips64*-*-openbsd* +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 .*: file format.* Index: binutils-gdb/gas/testsuite/gas/mips/compact-eh-el-7.d =================================================================== --- binutils-gdb.orig/gas/testsuite/gas/mips/compact-eh-el-7.d +++ binutils-gdb/gas/testsuite/gas/mips/compact-eh-el-7.d @@ -2,7 +2,7 @@ #name: Compact EH EL #7 with personality id and fallback FDE #source: compact-eh-7.s #as: -EL -mno-pdr -#notarget: mips64*-*-openbsd* +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 .*: file format.* Index: binutils-gdb/ld/configure.tgt =================================================================== --- binutils-gdb.orig/ld/configure.tgt +++ binutils-gdb/ld/configure.tgt @@ -580,10 +580,20 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvx ;; mips*-*-windiss) targ_emul=elf32mipswindiss ;; +mips64*el-*-linux-gnuabi64) + targ_emul=elf64ltsmip + targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip" + targ_extra_libpath=$targ_extra_emuls + ;; mips64*el-*-linux-*) targ_emul=elf32ltsmipn32 targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip" targ_extra_libpath=$targ_extra_emuls ;; +mips64*-*-linux-gnuabi64) + targ_emul=elf64btsmip + targ_extra_emuls="elf64ltsmip elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip" + targ_extra_libpath=$targ_extra_emuls + ;; mips64*-*-linux-*) targ_emul=elf32btsmipn32 targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip" targ_extra_libpath=$targ_extra_emuls Index: binutils-gdb/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d =================================================================== --- binutils-gdb.orig/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d +++ binutils-gdb/ld/testsuite/ld-mips-elf/attr-gnu-4-10.d @@ -3,7 +3,7 @@ #as: -mpdr #ld: -r #readelf: -hA -#notarget: mips64*-*-openbsd* +#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64 ELF Header: Magic: .* Index: binutils-gdb/ld/testsuite/ld-mips-elf/compact-eh6.d =================================================================== --- binutils-gdb.orig/ld/testsuite/ld-mips-elf/compact-eh6.d +++ binutils-gdb/ld/testsuite/ld-mips-elf/compact-eh6.d @@ -4,7 +4,7 @@ #as: -EB #readelf: -x .eh_frame_hdr #ld: -EB -e main -# +#notarget: mips64*-*-*-gnuabi64 Hex dump of section \'\.eh_frame_hdr\': Index: binutils-gdb/ld/testsuite/ld-mips-elf/mips-elf.exp =================================================================== --- binutils-gdb.orig/ld/testsuite/ld-mips-elf/mips-elf.exp +++ binutils-gdb/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -155,13 +155,23 @@ if {[istarget *-*-openbsd*] } { if [istarget *el-*-*] { set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32ltsmip - set abi_asflags(n64) "-march=from-abi -64" - set abi_ldflags(n64) -melf64ltsmip + if [istarget *-*-*-gnuabi64] { + set abi_asflags(n32) "-march=from-abi -n32" + set abi_ldflags(n32) -melf32ltsmipn32 + } else { + set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n64) -melf64ltsmip + } } else { set abi_asflags(o32) -32 set abi_ldflags(o32) -melf32btsmip - set abi_asflags(n64) "-march=from-abi -64" - set abi_ldflags(n64) -melf64btsmip + if [istarget *-*-*-gnuabi64] { + set abi_asflags(n32) "-march=from-abi -n32" + set abi_ldflags(n32) -melf32btsmipn32 + } else { + set abi_asflags(n64) "-march=from-abi -64" + set abi_ldflags(n64) -melf64btsmip + } } set irixemul 0 } elseif {[istarget *-*-linux*] } { @@ -811,7 +821,8 @@ if { $linux_gnu } { run_dump_test "got-page-1" run_dump_test_n32 "got-page-2" run_dump_test_n64 "dyn-sec64" noarch - run_dump_test "got-page-3" + run_dump_test_o32 "got-page-3" + run_dump_test_n32 "got-page-3" [list [list name (n32)]] if $has_abi(o32) { run_ld_link_tests [subst { {"GOT page 4 (one file)" Index: binutils-gdb/ld/testsuite/ld-undefined/undefined.exp =================================================================== --- binutils-gdb.orig/ld/testsuite/ld-undefined/undefined.exp +++ binutils-gdb/ld/testsuite/ld-undefined/undefined.exp @@ -206,7 +206,8 @@ if { ![is_elf_format] || ![check_shared_ # triplets, and S+core targets using an extra R_SCORE_NONE # relocation, so adjust for that. switch -glob $target_triplet { - "mips64*-*-openbsd*" { + "mips64*-*-openbsd*" - + "mips64*-*-*-gnuabi64" { set none_count 6 set reloc_count 4 }