From d07676f875b3fa1a3d527b4040c36740e6f3c395 Mon Sep 17 00:00:00 2001
From: Nick Clifton <nickc@redhat.com>
Date: Mon, 12 Jun 2006 11:12:51 +0000
Subject: PR binutils/2735 * elflink.c (elf_link_add_object_symbols): Fix the
 warning message about   mismatched alignments to allow for the case where the
 common alignment   has been deduced from the section alignment. * bfd.c
 (_bfd_default_error_handler): Update comment to explain why bfd   and
 asection varargs are out of order.   Explicitly catch and abort on NULL bfd
 and asection arguments.

---
 bfd/elflink.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

(limited to 'bfd/elflink.c')

diff --git a/bfd/elflink.c b/bfd/elflink.c
index c5b1007..f4c63f4 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -3922,11 +3922,21 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
 		}
 
 	      if (normal_align < common_align)
-		(*_bfd_error_handler)
-		  (_("Warning: alignment %u of symbol `%s' in %B"
-		     " is smaller than %u in %B"),
-		   normal_bfd, common_bfd,
-		   1 << normal_align, name, 1 << common_align);
+		{
+		  /* PR binutils/2735 */
+		  if (normal_bfd == NULL)
+		    (*_bfd_error_handler)
+		      (_("Warning: alignment %u of common symbol `%s' in %B"
+			 " is greater than the alignment (%u) of its section %A"),
+		       common_bfd, h->root.u.def.section,
+		       1 << common_align, name, 1 << normal_align);
+		  else
+		    (*_bfd_error_handler)
+		      (_("Warning: alignment %u of symbol `%s' in %B"
+			 " is smaller than %u in %B"),
+		       normal_bfd, common_bfd,
+		       1 << normal_align, name, 1 << common_align);
+		}
 	    }
 
 	  /* Remember the symbol size and type.  */
-- 
cgit v1.1