From 42554f6a08d8282c408f7932ade77735b18b2f8b Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Sat, 17 Nov 2007 13:38:57 +0000 Subject: [ld/testsuite/ChangeLog] * ld-mips-elf/attr-gnu-4-14.d, ld-mips-elf/attr-gnu-4-41.d: Adjust warning message for -mfp64 flag. * ld-mips-elf/attr-gnu-4-5.s, ld-mips-elf/attr-gnu-4-04.d, ld-mips-elf/attr-gnu-4-51.d, ld-mips-elf/attr-gnu-4-05.d, ld-mips-elf/attr-gnu-4-15.d, ld-mips-elf/attr-gnu-4-24.d, ld-mips-elf/attr-gnu-4-25.d, ld-mips-elf/attr-gnu-4-34.d, ld-mips-elf/attr-gnu-4-35.d, ld-mips-elf/attr-gnu-4-42.d, ld-mips-elf/attr-gnu-4-43.d, ld-mips-elf/attr-gnu-4-44.d, ld-mips-elf/attr-gnu-4-45.d, ld-mips-elf/attr-gnu-4-40.d, ld-mips-elf/attr-gnu-4-14.d: New testcases files. * ld-mips-elf/mips-elf.exp: Run new testcases. [binutils/ChangeLog] * readelf.c (display_mips_gnu_attribute): Recognize -mips32r2 -mfp64 objects. [include/ChangeLog] * elf/mips.h (Tag_GNU_MIPS_ABI_FP): Mention -mips32r2 -mfp64 variant in comment. [bfd/ChangeLog] * elfxx-mips.c (mips_elf_merge_obj_attributes): Handle -mips32r2 -mfp64 attribute. [gas/ChangeLog] * doc/as.texinfo: Document the new attribute value. --- bfd/ChangeLog | 5 +++++ bfd/elfxx-mips.c | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) (limited to 'bfd') 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 + + * elfxx-mips.c (mips_elf_merge_obj_attributes): Handle -mips32r2 + -mfp64 attribute. + 2007-11-16 Nick Clifton * 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 (); } -- cgit v1.1