1--- a/bfd/config.bfd
2+++ b/bfd/config.bfd
3@@ -927,11 +927,21 @@ case "${targ}" in
4 targ_defvec=mips_elf32_be_vec
5 targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
6 ;;
7- mips64*el-*-linux*)
8+ mips*64*el-*-linux*-gnuabi64)
9+ targ_defvec=mips_elf64_trad_le_vec
10+ 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"
11+ want64=true
12+ ;;
13+ mips*64*-*-linux*-gnuabi64)
14+ targ_defvec=mips_elf64_trad_be_vec
15+ 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"
16+ want64=true
17+ ;;
18+ mips*64*el-*-linux*)
19 targ_defvec=mips_elf32_ntrad_le_vec
20 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"
21 ;;
22- mips64*-*-linux*)
23+ mips*64*-*-linux*)
24 targ_defvec=mips_elf32_ntrad_be_vec
25 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"
26 ;;
27--- a/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d
28+++ b/binutils/testsuite/binutils-all/mips/mips-note-2-n32.d
29@@ -1,4 +1,5 @@
30 #PROG: objcopy
31+#as: -n32
32 #readelf: --notes --wide
33 #objcopy: --merge-notes
34 #name: MIPS merge notes section (n32)
35--- a/gas/configure
36+++ b/gas/configure
37@@ -12167,6 +12167,9 @@ _ACEOF
38 esac
39 # Decide which ABI to target by default.
40 case ${target} in
41+ mips*64*-linux-gnuabi64)
42+ mips_default_abi=N64_ABI
43+ ;;
44 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
45 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
46 mips_default_abi=N32_ABI
47--- a/gas/configure.ac
48+++ b/gas/configure.ac
49@@ -384,6 +384,9 @@ changequote([,])dnl
50 esac
51 # Decide which ABI to target by default.
52 case ${target} in
53+ mips*64*-linux-gnuabi64)
54+ mips_default_abi=N64_ABI
55+ ;;
56 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
57 | mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
58 mips_default_abi=N32_ABI
59--- a/ld/configure.tgt
60+++ b/ld/configure.tgt
61@@ -543,11 +543,19 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvx
62 ;;
63 mips*-*-windiss) targ_emul=elf32mipswindiss
64 ;;
65-mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
66+mips*64*el-*-linux-gnuabi64) targ_emul=elf64ltsmip
67+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
68+ targ_extra_libpath=$targ_extra_emuls
69+ ;;
70+mips*64*el-*-linux-*) targ_emul=elf32ltsmipn32
71 targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
72 targ_extra_libpath=$targ_extra_emuls
73 ;;
74-mips64*-*-linux-*) targ_emul=elf32btsmipn32
75+mips*64*-*-linux-gnuabi64) targ_emul=elf64btsmip
76+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
77+ targ_extra_libpath=$targ_extra_emuls
78+ ;;
79+mips*64*-*-linux-*) targ_emul=elf32btsmipn32
80 targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
81 targ_extra_libpath=$targ_extra_emuls
82 ;;