diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/cpu-i386.c | 28 |
2 files changed, 27 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 9d5c742..fe6f5db 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2002-03-12 Andreas Jaeger <aj@suse.de> + + * cpu-i386.c (i386_compatible): New. Use it instead of + bfd_default_compatible. + 2002-03-07 H.J. Lu (hjl@gnu.org) * coff-sh.c (shcoff_reloc_map): Use bfd_reloc_code_real_type diff --git a/bfd/cpu-i386.c b/bfd/cpu-i386.c index 8619fbf..25b7e24 100644 --- a/bfd/cpu-i386.c +++ b/bfd/cpu-i386.c @@ -1,5 +1,5 @@ /* BFD support for the Intel 386 architecture. - Copyright 1992, 1994, 1995, 1996, 1998, 2000, 2001 + Copyright 1992, 1994, 1995, 1996, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -22,6 +22,22 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "sysdep.h" #include "libbfd.h" +/* Don't mix 32 bit and 64 bit files. */ + +static const bfd_arch_info_type *i386_compatible + PARAMS ((const bfd_arch_info_type *, const bfd_arch_info_type *)); + +static const bfd_arch_info_type * +i386_compatible (a, b) + const bfd_arch_info_type *a; + const bfd_arch_info_type *b; +{ + if (a->bits_per_word != b->bits_per_word) + return NULL; + + return bfd_default_compatible (a, b); +} + const bfd_arch_info_type bfd_i386_arch_intel_syntax = { 32, /* 32 bits in a word */ @@ -33,7 +49,7 @@ const bfd_arch_info_type bfd_i386_arch_intel_syntax = "i386:intel", 3, true, - bfd_default_compatible, + i386_compatible, bfd_default_scan , 0, }; @@ -48,7 +64,7 @@ const bfd_arch_info_type bfd_x86_64_arch_intel_syntax = "x86-64:intel", 3, true, - bfd_default_compatible, + i386_compatible, bfd_default_scan , &bfd_i386_arch_intel_syntax, }; @@ -63,7 +79,7 @@ static const bfd_arch_info_type i8086_arch = "i8086", 3, false, - bfd_default_compatible, + i386_compatible, bfd_default_scan , &bfd_x86_64_arch_intel_syntax, }; @@ -79,7 +95,7 @@ const bfd_arch_info_type bfd_x86_64_arch = "x86-64", 3, true, - bfd_default_compatible, + i386_compatible, bfd_default_scan , &i8086_arch, }; @@ -95,7 +111,7 @@ const bfd_arch_info_type bfd_i386_arch = "i386", 3, true, - bfd_default_compatible, + i386_compatible, bfd_default_scan , &bfd_x86_64_arch }; |