diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elfxx-mips.c | 43 |
2 files changed, 46 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 07b29bd..abdf115 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2007-11-17 Thiemo Seufer <ths@mips.com> + + * elfxx-mips.c (mips_elf_merge_obj_attributes): Handle -mips32r2 + -mfp64 attribute. + 2007-11-16 Nick Clifton <nickc@redhat.com> * elf-m10300.c (mn10300_elf_check_relocs): Fix memory leak and diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 470bed9..f674e13 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -11325,11 +11325,11 @@ mips_elf_merge_obj_attributes (bfd *ibfd, bfd *obfd) out_attr[Tag_GNU_MIPS_ABI_FP].i = in_attr[Tag_GNU_MIPS_ABI_FP].i; else if (in_attr[Tag_GNU_MIPS_ABI_FP].i == 0) ; - else if (in_attr[Tag_GNU_MIPS_ABI_FP].i > 3) + else if (in_attr[Tag_GNU_MIPS_ABI_FP].i > 4) _bfd_error_handler (_("Warning: %B uses unknown floating point ABI %d"), ibfd, in_attr[Tag_GNU_MIPS_ABI_FP].i); - else if (out_attr[Tag_GNU_MIPS_ABI_FP].i > 3) + else if (out_attr[Tag_GNU_MIPS_ABI_FP].i > 4) _bfd_error_handler (_("Warning: %B uses unknown floating point ABI %d"), obfd, out_attr[Tag_GNU_MIPS_ABI_FP].i); @@ -11351,6 +11351,12 @@ mips_elf_merge_obj_attributes (bfd *ibfd, bfd *obfd) obfd, ibfd); break; + case 4: + _bfd_error_handler + (_("Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"), + obfd, ibfd); + break; + default: abort (); } @@ -11371,6 +11377,12 @@ mips_elf_merge_obj_attributes (bfd *ibfd, bfd *obfd) obfd, ibfd); break; + case 4: + _bfd_error_handler + (_("Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"), + obfd, ibfd); + break; + default: abort (); } @@ -11381,6 +11393,7 @@ mips_elf_merge_obj_attributes (bfd *ibfd, bfd *obfd) { case 1: case 2: + case 4: _bfd_error_handler (_("Warning: %B uses hard float, %B uses soft float"), ibfd, obfd); @@ -11391,6 +11404,32 @@ mips_elf_merge_obj_attributes (bfd *ibfd, bfd *obfd) } break; + case 4: + switch (in_attr[Tag_GNU_MIPS_ABI_FP].i) + { + case 1: + _bfd_error_handler + (_("Warning: %B uses -msingle-float, %B uses -mips32r2 -mfp64"), + ibfd, obfd); + break; + + case 2: + _bfd_error_handler + (_("Warning: %B uses -mdouble-float, %B uses -mips32r2 -mfp64"), + ibfd, obfd); + break; + + case 3: + _bfd_error_handler + (_("Warning: %B uses hard float, %B uses soft float"), + obfd, ibfd); + break; + + default: + abort (); + } + break; + default: abort (); } |