summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2008-06-06 23:20:48 +0000
committerPaul Brook <paul@codesourcery.com>2008-06-06 23:20:48 +0000
commit23684067ca15df6cd29b797f4084fdc1b7a4e58e (patch)
treee149afae56ae19499128c7a5d04b7750707ac6a4
parent6e23a804c11da677e7abcf59983f7c469bf42ee0 (diff)
downloadbinutils-gdb-23684067ca15df6cd29b797f4084fdc1b7a4e58e.tar.gz
2008-06-06 Paul Brook <paul@codesourcery.com>
bfd/ * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-arm.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b725c3c356c..ddca514fe45 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2008-06-06 Paul Brook <paul@codesourcery.com>
+
+ bfd/
+ * elf32-arm.c (elf32_arm_merge_private_bfd_data): Reject BE8 input.
+
2008-06-06 Alan Modra <amodra@bigpond.net.au>
* elf32-spu.c (spu_elf_auto_overlay): Relax requirement that
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 548dfc0df99..1e32554dc0f 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -8378,6 +8378,17 @@ elf32_arm_merge_private_bfd_data (bfd * ibfd, bfd * obfd)
in_flags = elf_elfheader (ibfd)->e_flags;
out_flags = elf_elfheader (obfd)->e_flags;
+ /* In theory there is no reason why we couldn't handle this. However
+ in practice it isn't even close to working and there is no real
+ reason to want it. */
+ if (EF_ARM_EABI_VERSION (in_flags) >= EF_ARM_EABI_VER4
+ && (in_flags & EF_ARM_BE8))
+ {
+ _bfd_error_handler (_("ERROR: %B is already in final BE8 format"),
+ ibfd);
+ return FALSE;
+ }
+
if (!elf_flags_init (obfd))
{
/* If the input is the default architecture and had the default