Index: binutils/bfd/elf32-avr32.c
===================================================================
--- binutils/bfd/elf32-avr32.c	(revision 24565)
+++ binutils/bfd/elf32-avr32.c	(working copy)
@@ -2446,9 +2446,13 @@
 	     after the relaxation code is done, so we can't really
 	     trust that our "distance" is correct.  There's really no
 	     easy solution to this problem, so we'll just disallow
-	     direct references to SEC_DATA sections.  */
+	     direct references to SEC_DATA sections.
+	     
+	     Oh, and .bss isn't actually SEC_DATA, so we disallow
+	     !SEC_HAS_CONTENTS as well. */
 	  if (!dynamic && defined
 	      && !(sym_sec->flags & SEC_DATA)
+	      && (sym_sec->flags & SEC_HAS_CONTENTS)
 	      && next_state->direct)
 	    {
 	      next_state = &relax_state[next_state->direct];
