aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2004-06-21 14:50:32 +0000
committerAlexandre Oliva <aoliva@redhat.com>2004-06-21 14:50:32 +0000
commitaa02cc6302929252edd817456ef41317319c179c (patch)
treed62cdbb86227a9b12d2046338db551de34fe5bfe
parentaee6f5b4bd1c978694bede743979c0c4f560d46b (diff)
downloadgdb-aa02cc6302929252edd817456ef41317319c179c.zip
gdb-aa02cc6302929252edd817456ef41317319c179c.tar.gz
gdb-aa02cc6302929252edd817456ef41317319c179c.tar.bz2
2003-05-15 Richard Sandiford <rsandifo@redhat.com>
* cpu-h8300.c (compatible): Allow h8300s and h8300sx code to be linked together. Mark the result as h8300sx code.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/cpu-h8300.c12
2 files changed, 17 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ec5c63e..2bcd7bd 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,11 @@
2004-06-21 Alexandre Oliva <aoliva@redhat.com>
+ 2003-05-15 Richard Sandiford <rsandifo@redhat.com>
+ * cpu-h8300.c (compatible): Allow h8300s and h8300sx code to be
+ linked together. Mark the result as h8300sx code.
+
+2004-06-21 Alexandre Oliva <aoliva@redhat.com>
+
* elf-bfd.h (struct elf_backend_data): Added
elf_backend_omit_section_dynsym.
(_bfd_elf_link_omit_section_dynsym): Declare.
diff --git a/bfd/cpu-h8300.c b/bfd/cpu-h8300.c
index 5907de0..d726dc3 100644
--- a/bfd/cpu-h8300.c
+++ b/bfd/cpu-h8300.c
@@ -96,8 +96,18 @@ h8300_scan (const struct bfd_arch_info *info, const char *string)
static const bfd_arch_info_type *
compatible (const bfd_arch_info_type *in, const bfd_arch_info_type *out)
{
+ if (in->arch != out->arch)
+ return 0;
+ if (in->mach == bfd_mach_h8300sx && out->mach == bfd_mach_h8300s)
+ return in;
+ if (in->mach == bfd_mach_h8300s && out->mach == bfd_mach_h8300sx)
+ return out;
+ if (in->mach == bfd_mach_h8300sxn && out->mach == bfd_mach_h8300sn)
+ return in;
+ if (in->mach == bfd_mach_h8300sn && out->mach == bfd_mach_h8300sxn)
+ return out;
/* It's really not a good idea to mix and match modes. */
- if (in->arch != out->arch || in->mach != out->mach)
+ if (in->mach != out->mach)
return 0;
else
return in;