aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elfn32-mips.c19
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c4
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;