diff mbox series

Add MIPS Linux support to gcc.misc-tests/linkage.c (testsuite/51748)

Message ID 1630455634-9994-1-git-send-email-apinski@marvell.com
State New
Headers show
Series Add MIPS Linux support to gcc.misc-tests/linkage.c (testsuite/51748) | expand

Commit Message

Li, Pan2 via Gcc-patches Sept. 1, 2021, 12:20 a.m. UTC
From: Andrew Pinski <apinski@marvell.com>

This adds MIPS Linux support to gcc.misc-tests/linkage.exp.  Basically
copying what was done for MIPS IRIX and changing the options to be correct.

OK?

gcc/testsuite/ChangeLog:

	PR testsuite/51748
	* gcc.misc-tests/linkage.exp: Add mips*-linux-* support.
---
 gcc/testsuite/gcc.misc-tests/linkage.exp | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Richard Sandiford Sept. 1, 2021, 8:54 a.m. UTC | #1
apinski--- via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> From: Andrew Pinski <apinski@marvell.com>
>
> This adds MIPS Linux support to gcc.misc-tests/linkage.exp.  Basically
> copying what was done for MIPS IRIX and changing the options to be correct.
>
> OK?
>
> gcc/testsuite/ChangeLog:
>
> 	PR testsuite/51748
> 	* gcc.misc-tests/linkage.exp: Add mips*-linux-* support.

OK, thanks.  Searching for any match for 64 seems surprisingly general,
but it's what other cases do and has obviously stood the test of time.

Richard

> ---
>  gcc/testsuite/gcc.misc-tests/linkage.exp | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp
> index afed2b811c9..2cb109e776e 100644
> --- a/gcc/testsuite/gcc.misc-tests/linkage.exp
> +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp
> @@ -38,6 +38,18 @@ if { [isnative] && ![is_remote host] } then {
>  
>  	# Need to ensure ABI for native compiler matches gcc
>  	set native_cflags ""
> +	if  [istarget "mips*-linux*"] {
> +	    set file_string [exec file "linkage-x.o"]
> +	    if [ string match "*64*" $file_string ] {
> +		set native_cflags "-mabi=64"
> +	    }
> +	    if [ string match "*ELF 32*" $file_string ] {
> +		set native_cflags "-mabi=32"
> +	    }
> +	    if [ string match "*N32*" $file_string ] {
> +		set native_cflags "-mabi=n32"
> +	    }
> +	}
>  	if  [istarget "sparc*-sun-solaris2*"] {
>  	    set file_string [exec file "linkage-x.o"]
>  	    if [ string match "*64*" $file_string ] {
YunQiang Su Sept. 1, 2021, 9:46 a.m. UTC | #2
Richard Sandiford via Gcc-patches <gcc-patches@gcc.gnu.org>
于2021年9月1日周三 下午4:55写道:
>
> apinski--- via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> > From: Andrew Pinski <apinski@marvell.com>
> >
> > This adds MIPS Linux support to gcc.misc-tests/linkage.exp.  Basically
> > copying what was done for MIPS IRIX and changing the options to be correct.
> >
> > OK?
> >
> > gcc/testsuite/ChangeLog:
> >
> >       PR testsuite/51748
> >       * gcc.misc-tests/linkage.exp: Add mips*-linux-* support.
>
> OK, thanks.  Searching for any match for 64 seems surprisingly general,
> but it's what other cases do and has obviously stood the test of time.
>

syq@XX:~$ gcc -mips64r2 -mabi=64 -c zz.c && file zz.o
zz.o: ELF 64-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV),
not stripped
syq@XX:~$ gcc -mips64r2 -mabi=32 -c zz.c && file zz.o
zz.o: ELF 32-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV),
not stripped
syq@XX:~$ gcc -mips64r2 -mabi=n32 -c zz.c && file zz.o
zz.o: ELF 32-bit LSB relocatable, MIPS, N32 MIPS64 rel2 version 1
(SYSV), not stripped

In the first glance, I also thought the code is wrong. While with some
check, it does work.

> Richard
>
> > ---
> >  gcc/testsuite/gcc.misc-tests/linkage.exp | 12 ++++++++++++
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp
> > index afed2b811c9..2cb109e776e 100644
> > --- a/gcc/testsuite/gcc.misc-tests/linkage.exp
> > +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp
> > @@ -38,6 +38,18 @@ if { [isnative] && ![is_remote host] } then {
> >
> >       # Need to ensure ABI for native compiler matches gcc
> >       set native_cflags ""
> > +     if  [istarget "mips*-linux*"] {
> > +         set file_string [exec file "linkage-x.o"]
> > +         if [ string match "*64*" $file_string ] {
> > +             set native_cflags "-mabi=64"
> > +         }
> > +         if [ string match "*ELF 32*" $file_string ] {
> > +             set native_cflags "-mabi=32"
> > +         }
> > +         if [ string match "*N32*" $file_string ] {
> > +             set native_cflags "-mabi=n32"
> > +         }
> > +     }
> >       if  [istarget "sparc*-sun-solaris2*"] {
> >           set file_string [exec file "linkage-x.o"]
> >           if [ string match "*64*" $file_string ] {
Andrew Pinski Sept. 1, 2021, 7:54 p.m. UTC | #3
On Wed, Sep 1, 2021 at 2:46 AM YunQiang Su <syq@debian.org> wrote:
>
> Richard Sandiford via Gcc-patches <gcc-patches@gcc.gnu.org>
> 于2021年9月1日周三 下午4:55写道:
> >
> > apinski--- via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> > > From: Andrew Pinski <apinski@marvell.com>
> > >
> > > This adds MIPS Linux support to gcc.misc-tests/linkage.exp.  Basically
> > > copying what was done for MIPS IRIX and changing the options to be correct.
> > >
> > > OK?
> > >
> > > gcc/testsuite/ChangeLog:
> > >
> > >       PR testsuite/51748
> > >       * gcc.misc-tests/linkage.exp: Add mips*-linux-* support.
> >
> > OK, thanks.  Searching for any match for 64 seems surprisingly general,
> > but it's what other cases do and has obviously stood the test of time.
> >
>
> syq@XX:~$ gcc -mips64r2 -mabi=64 -c zz.c && file zz.o
> zz.o: ELF 64-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV),
> not stripped
> syq@XX:~$ gcc -mips64r2 -mabi=32 -c zz.c && file zz.o
> zz.o: ELF 32-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV),
> not stripped
> syq@XX:~$ gcc -mips64r2 -mabi=n32 -c zz.c && file zz.o
> zz.o: ELF 32-bit LSB relocatable, MIPS, N32 MIPS64 rel2 version 1
> (SYSV), not stripped
>
> In the first glance, I also thought the code is wrong. While with some
> check, it does work.


Right and the order of if statements matter and they are not exclusive either.
So for N32, all three will match and that is ok. For o32, the first
two might match.
While for N64, only the first will match.

Thanks,
Andrew Pinski

>
> > Richard
> >
> > > ---
> > >  gcc/testsuite/gcc.misc-tests/linkage.exp | 12 ++++++++++++
> > >  1 file changed, 12 insertions(+)
> > >
> > > diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp
> > > index afed2b811c9..2cb109e776e 100644
> > > --- a/gcc/testsuite/gcc.misc-tests/linkage.exp
> > > +++ b/gcc/testsuite/gcc.misc-tests/linkage.exp
> > > @@ -38,6 +38,18 @@ if { [isnative] && ![is_remote host] } then {
> > >
> > >       # Need to ensure ABI for native compiler matches gcc
> > >       set native_cflags ""
> > > +     if  [istarget "mips*-linux*"] {
> > > +         set file_string [exec file "linkage-x.o"]
> > > +         if [ string match "*64*" $file_string ] {
> > > +             set native_cflags "-mabi=64"
> > > +         }
> > > +         if [ string match "*ELF 32*" $file_string ] {
> > > +             set native_cflags "-mabi=32"
> > > +         }
> > > +         if [ string match "*N32*" $file_string ] {
> > > +             set native_cflags "-mabi=n32"
> > > +         }
> > > +     }
> > >       if  [istarget "sparc*-sun-solaris2*"] {
> > >           set file_string [exec file "linkage-x.o"]
> > >           if [ string match "*64*" $file_string ] {
diff mbox series

Patch

diff --git a/gcc/testsuite/gcc.misc-tests/linkage.exp b/gcc/testsuite/gcc.misc-tests/linkage.exp
index afed2b811c9..2cb109e776e 100644
--- a/gcc/testsuite/gcc.misc-tests/linkage.exp
+++ b/gcc/testsuite/gcc.misc-tests/linkage.exp
@@ -38,6 +38,18 @@  if { [isnative] && ![is_remote host] } then {
 
 	# Need to ensure ABI for native compiler matches gcc
 	set native_cflags ""
+	if  [istarget "mips*-linux*"] {
+	    set file_string [exec file "linkage-x.o"]
+	    if [ string match "*64*" $file_string ] {
+		set native_cflags "-mabi=64"
+	    }
+	    if [ string match "*ELF 32*" $file_string ] {
+		set native_cflags "-mabi=32"
+	    }
+	    if [ string match "*N32*" $file_string ] {
+		set native_cflags "-mabi=n32"
+	    }
+	}
 	if  [istarget "sparc*-sun-solaris2*"] {
 	    set file_string [exec file "linkage-x.o"]
 	    if [ string match "*64*" $file_string ] {