diff options
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elfn32-mips.c | 19 | ||||
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 4 |
4 files changed, 31 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f628a61..fde334d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2017-10-23 Maciej W. Rozycki <macro@imgtec.com> + + * elfn32-mips.c (mips_elf_n32_mkobject): New prototype and + function. + (bfd_elf32_mkobject): Use `mips_elf_n32_mkobject' rather than + `_bfd_mips_elf_mkobject'. + 2017-10-22 Hans-Peter Nilsson <hp@axis.com> PR gas/22304 diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index fdae183..9ac2da3 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -84,6 +84,8 @@ static bfd_boolean elf_n32_mips_grok_freebsd_prstatus (bfd *, Elf_Internal_Note *); static irix_compat_t elf_n32_mips_irix_compat (bfd *); +static bfd_boolean mips_elf_n32_mkobject + (bfd *); extern const bfd_target mips_elf32_n_be_vec; extern const bfd_target mips_elf32_n_le_vec; @@ -3643,6 +3645,21 @@ elf_n32_mips_irix_compat (bfd *abfd) return ict_none; } +/* Make an n32 MIPS object. We need to set the n32 ABI flag in + `e_flags' to tell the object apart from an o32 object. */ + +static bfd_boolean +mips_elf_n32_mkobject (bfd *abfd) +{ + bfd_boolean ret; + + ret = _bfd_mips_elf_mkobject (abfd); + if (ret) + elf_elfheader (abfd)->e_flags |= EF_MIPS_ABI2; + + return ret; +} + /* ECOFF swapping routines. These are used when dealing with the .mdebug section, which is in the ECOFF debugging format. */ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = { @@ -3775,7 +3792,7 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = { #define bfd_elf32_bfd_set_private_flags _bfd_mips_elf_set_private_flags #define bfd_elf32_bfd_print_private_bfd_data \ _bfd_mips_elf_print_private_bfd_data -#define bfd_elf32_mkobject _bfd_mips_elf_mkobject +#define bfd_elf32_mkobject mips_elf_n32_mkobject /* Support for SGI-ish mips targets using n32 ABI. */ diff --git a/gas/ChangeLog b/gas/ChangeLog index af915ff..44debdc 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2017-10-23 Maciej W. Rozycki <macro@imgtec.com> + + * config/tc-mips.c (mips_elf_final_processing): Don't set + EF_MIPS_ABI2 in `e_flags'. + 2017-10-22 Hans-Peter Nilsson <hp@axis.com> PR gas/22304 diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index e4351f7..040a373 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -19140,10 +19140,8 @@ mips_elf_final_processing (void) else elf_elfheader (stdoutput)->e_flags |= E_MIPS_ABI_EABI32; } - else if (mips_abi == N32_ABI) - elf_elfheader (stdoutput)->e_flags |= EF_MIPS_ABI2; - /* Nothing to do for N64_ABI. */ + /* Nothing to do for N32_ABI or N64_ABI. */ if (mips_32bitmode) elf_elfheader (stdoutput)->e_flags |= EF_MIPS_32BITMODE; |