See http://sources.redhat.com/ml/binutils/2004-06/msg00114.html

--- src/bfd/elflink.c.org	2004-07-05 09:11:42.920597000 -0400
+++ src/bfd/elflink.c	2004-07-05 09:12:59.240847000 -0400
@@ -2700,7 +2700,7 @@
     return vdiff > 0 ? 1 : -1;
   else
     {
-      long sdiff = h1->root.u.def.section - h2->root.u.def.section;
+      long sdiff = h1->root.u.def.section->id - h2->root.u.def.section->id;
       if (sdiff != 0)
 	return sdiff > 0 ? 1 : -1;
     }
@@ -3954,7 +3954,7 @@
 		i = idx + 1;
 	      else
 		{
-		  long sdiff = slook - h->root.u.def.section;
+		  long sdiff = slook->id - h->root.u.def.section->id;
 		  if (sdiff < 0)
 		    j = idx;
 		  else if (sdiff > 0)
