mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 12:34:43 +00:00
MIPS: support mips*64 as CPU and gnuabi64 as ABI
For MIPS64r6 ports, Debian as an example, `mipsisa64r6el` is used as the cpu name in triple. Let's recognize them by `mips*64*(el)`. For 64bit Ports, like Debian's mips64el and mips64r6el ports, `gnuabi64` is used as the abi section. Let's use N64 abi by default for the triple with gnuabi64.
This commit is contained in:
@@ -941,11 +941,21 @@ 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*)
|
||||
mips*64*el-*-linux*-gnuabi64)
|
||||
targ_defvec=mips_elf64_trad_le_vec
|
||||
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"
|
||||
want64=true
|
||||
;;
|
||||
mips*64*-*-linux*-gnuabi64)
|
||||
targ_defvec=mips_elf64_trad_be_vec
|
||||
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"
|
||||
want64=true
|
||||
;;
|
||||
mips*64*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*)
|
||||
mips*64*-*-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"
|
||||
;;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#PROG: objcopy
|
||||
#as: -n32
|
||||
#readelf: --notes --wide
|
||||
#objcopy: --merge-notes
|
||||
#name: MIPS merge notes section (n32)
|
||||
|
||||
5
gas/configure
vendored
5
gas/configure
vendored
@@ -12223,7 +12223,10 @@ _ACEOF
|
||||
esac
|
||||
# Decide which ABI to target by default.
|
||||
case ${target} in
|
||||
mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
|
||||
mips*64*-linux-gnuabi64)
|
||||
mips_default_abi=N64_ABI
|
||||
;;
|
||||
mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
|
||||
| mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
|
||||
mips_default_abi=N32_ABI
|
||||
;;
|
||||
|
||||
@@ -392,7 +392,10 @@ changequote([,])dnl
|
||||
esac
|
||||
# Decide which ABI to target by default.
|
||||
case ${target} in
|
||||
mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
|
||||
mips*64*-linux-gnuabi64)
|
||||
mips_default_abi=N64_ABI
|
||||
;;
|
||||
mips*64*-linux* | mips-sgi-irix6* | mips64*-freebsd* \
|
||||
| mips64*-kfreebsd*-gnu | mips64*-ps2-elf*)
|
||||
mips_default_abi=N32_ABI
|
||||
;;
|
||||
|
||||
@@ -153,6 +153,13 @@ aarch64*-*)
|
||||
targ_big_endian=false
|
||||
targ_extra_big_endian=true
|
||||
;;
|
||||
mips*64*el*-*-*|mips*64*le*-*-*)
|
||||
targ_obj=mips
|
||||
targ_machine=EM_MIPS_RS3_LE
|
||||
targ_size=64
|
||||
targ_big_endian=false
|
||||
targ_extra_big_endian=true
|
||||
;;
|
||||
mips*el*-*-*|mips*le*-*-*)
|
||||
targ_obj=mips
|
||||
targ_machine=EM_MIPS_RS3_LE
|
||||
@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*)
|
||||
targ_big_endian=false
|
||||
targ_extra_big_endian=true
|
||||
;;
|
||||
mips*64*-*-*)
|
||||
targ_obj=mips
|
||||
targ_machine=EM_MIPS
|
||||
targ_size=64
|
||||
targ_big_endian=true
|
||||
targ_extra_big_endian=false
|
||||
;;
|
||||
mips*-*-*)
|
||||
targ_obj=mips
|
||||
targ_machine=EM_MIPS
|
||||
|
||||
@@ -580,11 +580,19 @@ mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
|
||||
;;
|
||||
mips*-*-windiss) targ_emul=elf32mipswindiss
|
||||
;;
|
||||
mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
|
||||
mips*64*el-*-linux-gnuabi64) targ_emul=elf64ltsmip
|
||||
targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
|
||||
targ_extra_libpath=$targ_extra_emuls
|
||||
;;
|
||||
mips*64*el-*-linux-*) targ_emul=elf32ltsmipn32
|
||||
targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
|
||||
targ_extra_libpath=$targ_extra_emuls
|
||||
;;
|
||||
mips64*-*-linux-*) targ_emul=elf32btsmipn32
|
||||
mips*64*-*-linux-gnuabi64) targ_emul=elf64btsmip
|
||||
targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
|
||||
targ_extra_libpath=$targ_extra_emuls
|
||||
;;
|
||||
mips*64*-*-linux-*) targ_emul=elf32btsmipn32
|
||||
targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
|
||||
targ_extra_libpath=$targ_extra_emuls
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user