Hi,

I'm attaching a patch to fix this problem.  Please take into account that the   
                    
gcc 4.3 issues are marked as release goals bugs, so if you don't upload a fix   
                    
soon it would probably be NMUed.

Thanks,
-- 
"I'd rather listen to [Isaac] Newton than to [MicroSoft's] Mundie. He may
have been dead for almost three hundred years, but despite that he stinks
up the room less."      --- (Linus Torvalds)
Saludos /\/\ /\ >< `/
Index: elfutils-0.131/libelf/common.h
===================================================================
--- elfutils-0.131.orig/libelf/common.h	2008-04-02 13:32:19.000000000 -0300
+++ elfutils-0.131/libelf/common.h	2008-04-02 13:35:53.000000000 -0300
@@ -110,45 +110,6 @@
 }
 
 
-/* Acquire lock for the descriptor and all children.  */
-static void
-libelf_acquire_all (Elf *elf)
-{
-  rwlock_wrlock (elf->lock);
-
-  if (elf->kind == ELF_K_AR)
-    {
-      Elf *child = elf->state.ar.children;
-
-      while (child != NULL)
-	{
-	  if (child->ref_count != 0)
-	    libelf_acquire_all (child);
-	  child = child->next;
-	}
-    }
-}
-
-/* Release own lock and those of the children.  */
-static void
-libelf_release_all (Elf *elf)
-{
-  if (elf->kind == ELF_K_AR)
-    {
-      Elf *child = elf->state.ar.children;
-
-      while (child != NULL)
-	{
-	  if (child->ref_count != 0)
-	    libelf_release_all (child);
-	  child = child->next;
-	}
-    }
-
-  rwlock_unlock (elf->lock);
-}
-
-
 /* Macro to convert endianess in place.  It determines the function it
    has to use itself.  */
 #define CONVERT(Var) \
Index: elfutils-0.131/libelf/elf_readall.c
===================================================================
--- elfutils-0.131.orig/libelf/elf_readall.c	2008-04-02 13:36:06.000000000 -0300
+++ elfutils-0.131/libelf/elf_readall.c	2008-04-02 13:38:25.000000000 -0300
@@ -60,6 +60,45 @@
 #include "common.h"
 
 
+/* Acquire lock for the descriptor and all children.  */
+static void
+libelf_acquire_all (Elf *elf)
+{
+  rwlock_wrlock (elf->lock);
+
+  if (elf->kind == ELF_K_AR)
+    {
+      Elf *child = elf->state.ar.children;
+
+      while (child != NULL)
+	{
+	  if (child->ref_count != 0)
+	    libelf_acquire_all (child);
+	  child = child->next;
+	}
+    }
+}
+
+/* Release own lock and those of the children.  */
+static void
+libelf_release_all (Elf *elf)
+{
+  if (elf->kind == ELF_K_AR)
+    {
+      Elf *child = elf->state.ar.children;
+
+      while (child != NULL)
+	{
+	  if (child->ref_count != 0)
+	    libelf_release_all (child);
+	  child = child->next;
+	}
+    }
+
+  rwlock_unlock (elf->lock);
+}
+
+
 static void
 set_address (Elf *elf, size_t offset)
 {

Reply via email to