]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - ld/testsuite/ld-mips-elf/comm-data.exp
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-mips-elf / comm-data.exp
index 3725bbd45bf29a675c40f8dbb0a5899fece01ba8..323c0e3738ac339ff1f7bacbb1affcf3bd51a924 100644 (file)
@@ -1,6 +1,6 @@
 # Expect script for common symbol override, MIPS variation.
 #
-#   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+#   Copyright (C) 2011-2021 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -31,13 +31,87 @@ if { ![istarget mips*-*-*]
     return
 }
 
+set has_o32abi [expr ![istarget *-*-openbsd*] \
+                    && ![istarget mips64*-ps2-elf*]]
+set has_n32abi [expr [istarget *-img-elf*] \
+                    || [istarget *-mti-elf*] \
+                    || [istarget *-ps2-elf*] \
+                    || [istarget *-sde-elf*] \
+                    || [istarget *-*-freebsd*] \
+                    || [istarget *-*-irix6*] \
+                    || [istarget *-*-kfreebsd*-gnu] \
+                    || [istarget *-*-linux*]]
+set has_n64abi [expr [istarget *-*-freebsd*] \
+                    || [istarget *-*-irix6*] \
+                    || [istarget *-*-kfreebsd*-gnu] \
+                    || [istarget *-*-linux*] \
+                    || [istarget *-*-netbsd*] \
+                    || [istarget *-*-openbsd*]]
+
+if {[istarget *-img-elf*] \
+     || [istarget *-mti-elf*] \
+     || [istarget *-sde-elf*] \
+     || [istarget *-*-netbsd*] \
+     || [istarget *-*-linux*] \
+     || [istarget *-*-openbsd*] \
+     || [istarget *-*-sysv4*] } {
+    if [istarget *el-*-*] {
+       set abi_ldemul(o32) elf32ltsmip
+       set abi_ldemul(n32) elf32ltsmipn32
+       set abi_ldemul(n64) elf64ltsmip
+    } else {
+       set abi_ldemul(o32) elf32btsmip
+       set abi_ldemul(n32) elf32btsmipn32
+       set abi_ldemul(n64) elf64btsmip
+    }
+} elseif { [istarget *-*-freebsd*] \
+          || [istarget *-*-kfreebsd*-gnu] } {
+    if [istarget *el-*-*] {
+       set abi_ldemul(o32) elf32ltsmip_fbsd
+       set abi_ldemul(n32) elf32ltsmipn32_fbsd
+       set abi_ldemul(n64) elf64ltsmip_fbsd
+    } else {
+       set abi_ldemul(o32) elf32btsmip_fbsd
+       set abi_ldemul(n32) elf32btsmipn32_fbsd
+       set abi_ldemul(n64) elf64btsmip_fbsd
+    }
+} elseif { [istarget *vr4100*-*-elf*] \
+          || [istarget *vr4300*-*-elf*] \
+          || [istarget *vr5000*-*-elf*] } {
+    if [istarget *el-*-*] {
+       set abi_ldemul(o32) elf32l4300
+    } else {
+       set abi_ldemul(o32) elf32b4300
+    }
+} elseif { [istarget *-ps2-elf*] } {
+    set abi_ldemul(o32) elf32lr5900
+    set abi_ldemul(n32) elf32lr5900n32
+} elseif { [istarget *-*-elf*] \
+          || [istarget *-*-rtems*] } {
+    if [istarget *el-*-*] {
+       set abi_ldemul(o32) elf32elmip
+    } else {
+       set abi_ldemul(o32) elf32ebmip
+    }
+} else {
+    if [istarget *el-*-*] {
+       set abi_ldemul(o32) elf32lsmip
+       set abi_ldemul(n32) elf32lmipn32
+       set abi_ldemul(n64) elf64lmip
+    } else {
+       set abi_ldemul(o32) elf32bsmip
+       set abi_ldemul(n32) elf32bmipn32
+       set abi_ldemul(n64) elf64bmip
+    }
+}
+
 proc mips_comm_data_test { abi flag emul reloc } {
 
     set testname "MIPS $abi/$reloc common symbol override test"
 
     # There's no "-z copyreloc" option, deal with it.
     set ZFLAG [string map [list copyreloc "" nocopyreloc "-z $reloc"] $reloc]
-    set AFLAGS "$flag -EB"
+    set AFLAGS "$flag"
     set LDFLAGS "-m$emul"
 
     # Define a global symbol.
@@ -65,7 +139,8 @@ proc mips_comm_data_test { abi flag emul reloc } {
     run_ld_link_tests [list \
        [list \
            "$testname" \
-           "$LDFLAGS $ZFLAG -T ../ld-elf/comm-data2.ld -Ltmpdir -lmips-$abi-$reloc-comm-data" "" \
+           "$LDFLAGS -call_shared $ZFLAG -T ../ld-elf/comm-data2.ld -Ltmpdir\
+            -lmips-$abi-$reloc-comm-data" "" \
            "$AFLAGS -call_nonpic" \
            { ../ld-elf/comm-data2.s } \
            { \
@@ -81,7 +156,16 @@ proc mips_comm_data_test { abi flag emul reloc } {
 # For targets that default to a specific ISA (instead of "from-abi"),
 # the 64-bit -march option is required to override it, like for
 # "mipsisa32r2el-*-*".
-set abis { o32 -32 elf32btsmip n32 "-n32 -march=mips3" elf32btsmipn32 n64 "-64 -march=mips3" elf64btsmip }
+set abis ""
+if $has_o32abi {
+    lappend abis o32 -32 $abi_ldemul(o32)
+}
+if $has_n32abi {
+    lappend abis n32 "-n32 -march=mips3" $abi_ldemul(n32)
+}
+if $has_n64abi {
+    lappend abis n64 "-64 -march=mips3" $abi_ldemul(n64)
+}
 set relocs { copyreloc nocopyreloc }
 foreach { abi flag emul } $abis {
     foreach reloc $relocs {