From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x631.google.com (mail-pl1-x631.google.com [IPv6:2607:f8b0:4864:20::631]) by sourceware.org (Postfix) with ESMTPS id 8EB833858422 for ; Tue, 15 Aug 2023 04:41:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8EB833858422 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-1bdbf10333bso28750555ad.1 for ; Mon, 14 Aug 2023 21:41:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692074467; x=1692679267; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=f1IRNQQTU6Vm724Tj2ozFvEDeRYaY0qz7uY3ZP66nzQ=; b=n8R4G/+nYfGvnccakunJC3V2pH3mcMDeysp0vUPCe7Xl5DlR5rlm5IUsxeuHhhRMjd DDvZANn9eImnPjqu78Fvn1BXN45mZf+vUhQLUnzEdi/JWkXwuqiiBU5/gdD4dwfYzLIe pFebNYsEZ/b4mactc8L0k6J5rFAheWZ/4XvbLZNHsTQ3+yimaCznwDy7qC00wGBQJ114 zfujSYb13WMIhHe92fdXs9opm2+jsllSp1CStbpMcrkUWvnII0LClEgWnYcqod/a3tjJ TfwbTjr73FDew5MauvHSh5CJLeSiFHpt0zJ5ZWmgJGz7xpTMCbnRnbDimAVJjJ68FVKb Hb7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692074467; x=1692679267; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=f1IRNQQTU6Vm724Tj2ozFvEDeRYaY0qz7uY3ZP66nzQ=; b=FZM0SA2sNxVA7hUV/Xa9Ho/CpUCun91O5CF5HSFM/O0H/hJAZqGu5+45AjP2vlCIGB EabgnWPDPd+f/FPP5kWGINP+ioMk4ogOzcffWJDrWGaLvUB4BFHo2nBqaKsPc3d2wNq+ p/X1xBcQsDDv+bQ7TugjrLs8tLq4ktEej3U74o+d2/OmqJIdj9MpqJWm6i7PcCpN2vIm ydMtac0hBga6JGdXQxjtbGF2g3M+gl9YbP/MTGQBw2VH7totuWcr0Wy3Uoudm6LrM0Cz vu52Fy/ypEiQyn+hO7mCvFwxatHXa6zEV5zTCRJ3I25oHD0waySPZSyXZzdbcn6T9/rR 1gaw== X-Gm-Message-State: AOJu0Yw8M/olb6FA5G39EqT/e36EkdQRCU2iKQphQz7RQJN+4G2UnaGl DMalC9P8zVl1ohMUwkMp/EzLcYseJfZm6tpk5Mw= X-Google-Smtp-Source: AGHT+IGVYqu/nQKNsZ/acSlmOsa1eAqAVwiM+iIYDPJzUMuqiowuU13hi8Hah58J60QRm18K0lNksJBFVVAfaXO+mCY= X-Received: by 2002:a17:903:32c8:b0:1bc:2abb:4e98 with SMTP id i8-20020a17090332c800b001bc2abb4e98mr14253182plr.21.1692074467526; Mon, 14 Aug 2023 21:41:07 -0700 (PDT) MIME-Version: 1.0 References: <20230616063412.1715024-1-yunqiang.su@cipunited.com> <20230616063412.1715024-8-yunqiang.su@cipunited.com> In-Reply-To: <20230616063412.1715024-8-yunqiang.su@cipunited.com> From: YunQiang Su Date: Tue, 15 Aug 2023 12:40:56 +0800 Message-ID: Subject: Re: [PATCH v4 7/7] MIPS: Fix Irix gas testcases To: YunQiang Su Cc: binutils@sourceware.org, macro@orcam.me.uk, paul.hua.gm@gmail.com, amodra@gmail.com, jbeulich@suse.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,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 List-Id: YunQiang Su =E4=BA=8E2023=E5=B9=B46=E6=9C=8816= =E6=97=A5=E5=91=A8=E4=BA=94 14:41=E5=86=99=E9=81=93=EF=BC=9A > > 1. Add -mpdr to some cases. > Gas doesn't generate .pdr section for Irix objects by default. See > `int mips_flag_pdr` in tc-mips.c. > > 2. Add irix-no-pdr.d. > > 3. Add and use call-nonpic-1-irix.d for Irix targets. > Gas doesn't set O32 flags for Irix objects in e_flags. See > `use_e_mips_abi_o32` in gas/configure.ac. > > 4. Add mips16-e-irix.d: g1 is marked as O on Irix. > The Irix 5 and 6 assemblers set the type of any common symbol and > any undefined non-function symbol to STT_OBJECT. > See `mips_frob_symbol` in tc-mips.c. @Maciej W. Rozycki ping. > --- > gas/testsuite/gas/elf/elf.exp | 4 ++ > gas/testsuite/gas/mips/call-nonpic-1-irix.d | 30 +++++++++++++ > gas/testsuite/gas/mips/elf-rel26.d | 2 +- > gas/testsuite/gas/mips/irix-no-pdr.d | 8 ++++ > gas/testsuite/gas/mips/mips.exp | 11 ++++- > gas/testsuite/gas/mips/mips16-e-irix.d | 50 +++++++++++++++++++++ > gas/testsuite/gas/mips/mips16-e.d | 2 +- > gas/testsuite/gas/mips/mips16-f.d | 2 +- > gas/testsuite/gas/mips/mips16-hilo-match.d | 2 +- > 9 files changed, 105 insertions(+), 6 deletions(-) > create mode 100644 gas/testsuite/gas/mips/call-nonpic-1-irix.d > create mode 100644 gas/testsuite/gas/mips/irix-no-pdr.d > create mode 100644 gas/testsuite/gas/mips/mips16-e-irix.d > > diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.ex= p > index 4890dd93420..0abe730c375 100644 > --- a/gas/testsuite/gas/elf/elf.exp > +++ b/gas/testsuite/gas/elf/elf.exp > @@ -207,6 +207,10 @@ if { [is_elf_format] } then { > riscv*-*-* { > set as_flags "$as_flags -march-attr" > } > + mips*-*-* { > + # Irix has no pdr section by default. > + set as_flags "$as_flags -mpdr" > + } > } > run_elf_list_test "section2" "$target_machine" "$as_flags" "-s" "= " > } > diff --git a/gas/testsuite/gas/mips/call-nonpic-1-irix.d b/gas/testsuite/= gas/mips/call-nonpic-1-irix.d > new file mode 100644 > index 00000000000..3cff1ca672b > --- /dev/null > +++ b/gas/testsuite/gas/mips/call-nonpic-1-irix.d > @@ -0,0 +1,30 @@ > +#as: -mabi=3D32 -mips2 -call_nonpic > +#objdump: -pdr > +#source: call-nonpic-1.s > + > +.* > +private flags =3D 10000004: .* > + > +MIPS ABI Flags Version: 0 > + > +ISA: MIPS2 > +GPR size: 32 > +CPR1 size: 32 > +CPR2 size: 0 > +FP ABI: Hard float \(double precision\) > +ISA Extension: None > +ASEs: > + None > +FLAGS 1: 00000000 > +FLAGS 2: 00000000 > + > + > +Disassembly of section \.text: > + > +0+0 <\.text>: > +.* lui t9,0x0 > +.*: R_MIPS_HI16 foo > +.* addiu t9,t9,0 > +.*: R_MIPS_LO16 foo > +.* jalr t9 > +.* nop > diff --git a/gas/testsuite/gas/mips/elf-rel26.d b/gas/testsuite/gas/mips/= elf-rel26.d > index aeb4e16d178..71fbe83d4b6 100644 > --- a/gas/testsuite/gas/mips/elf-rel26.d > +++ b/gas/testsuite/gas/mips/elf-rel26.d > @@ -1,4 +1,4 @@ > -#as: -mips32 -32 -EL -KPIC > +#as: -mips32 -32 -EL -KPIC -mpdr > #readelf: --relocs > #name: MIPS ELF reloc 26 > > diff --git a/gas/testsuite/gas/mips/irix-no-pdr.d b/gas/testsuite/gas/mip= s/irix-no-pdr.d > new file mode 100644 > index 00000000000..7268e020c9f > --- /dev/null > +++ b/gas/testsuite/gas/mips/irix-no-pdr.d > @@ -0,0 +1,8 @@ > +#objdump: -rst > +#name: Irix has no .pdr section > +#as: -32 -mips32 > +#source: sync.s > + > +#failif > +.*\.pdr.* > +#pass > diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mip= s.exp > index 4bfb350beb9..336eb6afbde 100644 > --- a/gas/testsuite/gas/mips/mips.exp > +++ b/gas/testsuite/gas/mips/mips.exp > @@ -1254,7 +1254,7 @@ if { [istarget mips*-*-vxworks*] } { > run_dump_test "comdat-reloc" > run_dump_test "comdat-reloc-r6" > > - run_dump_test "${tmips}mips${el}16-e" > + run_dump_test "${tmips}mips${el}16-e${imips}" > run_dump_test "${tmips}mips${el}16-f" > > run_dump_test "elf-consthilo" > @@ -1553,7 +1553,8 @@ if { [istarget mips*-*-vxworks*] } { > [mips_arch_list_matching mips1 !singlefloat] > > run_dump_test "mips16-vis-1" > - run_dump_test "call-nonpic-1" > + # Irix sets use_e_mips_abi_o32=3D0. See gas/configure.ac. > + run_dump_test "call-nonpic-1${imips}" > run_dump_test "mips32-sync" > run_dump_test_arches "mips32r2-sync" [lsort -dictionary -unique [con= cat \ > [mips_arch_list_matching mips32r2= ] \ > @@ -2187,4 +2188,10 @@ if { [istarget mips*-*-vxworks*] } { > run_dump_test "global-local-symtab-sort-n32${tmips}" > run_dump_test "global-local-symtab-sort-n64${tmips}" > } > + > + # Gas doesn't generate .pdr section for Irix objects by default. > + # See `int mips_flag_pdr` in tc-mips.c. > + if [istarget *-*-irix*] { > + run_dump_test "irix-no-pdr" > + } > } > diff --git a/gas/testsuite/gas/mips/mips16-e-irix.d b/gas/testsuite/gas/m= ips/mips16-e-irix.d > new file mode 100644 > index 00000000000..1b473deb281 > --- /dev/null > +++ b/gas/testsuite/gas/mips/mips16-e-irix.d > @@ -0,0 +1,50 @@ > +#objdump: -rst --special-syms -mips16 > +#name: MIPS16 reloc > +#as: -32 -mips16 -mips32 -mpdr > +#source: mips16-e.s > + > +# The Irix 5 and 6 assemblers set the type of any common symbol and > +# any undefined non-function symbol to STT_OBJECT. > +# See `mips_frob_symbol` in tc-mips.c. > + > +# Check MIPS16 reloc processing > + > +.*: +file format elf.*mips.* > + > +SYMBOL TABLE: > +0+0000000 l d \.text 0+0000000 (|\.text) > +0+0000000 l d \.data 0+0000000 (|\.data) > +0+0000000 l d \.bss 0+0000000 (|\.bss) > +0+0000000 l d foo 0+0000000 (|foo) > +0+0000000 l d \.reginfo 0+0000000 (|\.reginfo) > +0+0000000 l d \.MIPS\.abiflags 0+0000000 (|\.MIPS\.abiflags) > +0+0000000 l d \.(mdebug|pdr) 0+0000000 (|\.mdebug|\.pdr) > +0+0000000 l d \.gnu\.attributes 0+0000000 (|\.gnu\.attributes) > +0+0000002 l \.text 0+0000000 0xf0 l1 > +0+0000004 l \.text 0+0000000 0xf0 \.L1.*1 > +0+0000000 O \*UND\* 0+0000000 g1 > + > + > +RELOCATION RECORDS FOR \[foo\]: > +OFFSET +TYPE +VALUE > +0+0000000 R_MIPS_32 l1 > +0+0000004 R_MIPS_32 l1 > +0+0000008 R_MIPS_32 \.L1.*1 > +0+000000c R_MIPS_32 \.L1.*1 > +0+0000010 R_MIPS_32 g1 > +0+0000014 R_MIPS_32 g1 > + > + > +Contents of section \.text: > + 0000 65006500 65006500 65006500 65006500 .* > +Contents of section \.reginfo: > + 0000 00010000 00000000 00000000 00000000 .* > + 0010 00000000 00000000 .* > +Contents of section \.MIPS\.abiflags: > + .* > + .* > +Contents of section foo: > + 0000 00000000 00000008 00000000 00000003 .* > + 0010 00000000 00000008 00000000 00000000 .* > +Contents of section \.gnu\.attributes: > + .* > diff --git a/gas/testsuite/gas/mips/mips16-e.d b/gas/testsuite/gas/mips/m= ips16-e.d > index d4522d6e7c8..9a7c3e82c0c 100644 > --- a/gas/testsuite/gas/mips/mips16-e.d > +++ b/gas/testsuite/gas/mips/mips16-e.d > @@ -1,6 +1,6 @@ > #objdump: -rst --special-syms -mips16 > #name: MIPS16 reloc > -#as: -32 -mips16 -mips32 > +#as: -32 -mips16 -mips32 -mpdr > > # Check MIPS16 reloc processing > > diff --git a/gas/testsuite/gas/mips/mips16-f.d b/gas/testsuite/gas/mips/m= ips16-f.d > index 62e30a31840..0ed246cfbba 100644 > --- a/gas/testsuite/gas/mips/mips16-f.d > +++ b/gas/testsuite/gas/mips/mips16-f.d > @@ -1,6 +1,6 @@ > #objdump: -rst -mips16 > #name: MIPS16 reloc 2 > -#as: -32 -mips16 -mips32 > +#as: -32 -mips16 -mips32 -mpdr > > # Check MIPS16 reloc processing > > diff --git a/gas/testsuite/gas/mips/mips16-hilo-match.d b/gas/testsuite/g= as/mips/mips16-hilo-match.d > index 76ad7b39cdd..7b42f6946c1 100644 > --- a/gas/testsuite/gas/mips/mips16-hilo-match.d > +++ b/gas/testsuite/gas/mips/mips16-hilo-match.d > @@ -1,5 +1,5 @@ > #objdump: -r > -#as: -mabi=3D32 -march=3Dmips1 > +#as: -mabi=3D32 -march=3Dmips1 -mpdr > #name: MIPS16 mips16-hilo-match > > .*: +file format .*mips.* > -- > 2.30.2 > --=20 YunQiang Su