This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] prevent core dump for multiple def symbols


I have a .so file that makes gdb dump core. The problem shows up in
bfd/linker.c:1800

if (! ((*info->callbacks->multiple_definition)
  (info, h->root.string, msec->owner, msec, mval,
  abfd, section, value)))
    return FALSE;

because info->callbacks->multiple_definition is null.

I have no idea if this patch is "the right thing" but it allows me to debug
my app. It just sets the callback to a dummy callback which returns TRUE
when the link_info is being created. I presume this is OK because all the
other callbacks are set to dummies too.

This was logged as bug 1668, hopefully this is a fix for it.

Patch below,

F


--- ./bfd/simple.c.orig	2004-06-11 15:32:40.620497552 +0100
+++ ./bfd/simple.c	2004-06-11 15:18:42.043980560 +0100
@@ -78,6 +78,19 @@
   return TRUE;
 }
 
+static bfd_boolean
+simple_dummy_multiple_definition (struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
+			       const char *name ATTRIBUTE_UNUSED,
+			       bfd *obfd ATTRIBUTE_UNUSED,
+			       asection *osec,
+			       bfd_vma oval ATTRIBUTE_UNUSED,
+			       bfd *nbfd ATTRIBUTE_UNUSED,
+			       asection *nsec ATTRIBUTE_UNUSED,
+			       bfd_vma nval ATTRIBUTE_UNUSED)
+{
+  return TRUE;
+}
+
 struct saved_output_info
 {
   bfd_vma offset;
@@ -171,6 +184,7 @@
   callbacks.reloc_overflow = simple_dummy_reloc_overflow;
   callbacks.reloc_dangerous = simple_dummy_reloc_dangerous;
   callbacks.unattached_reloc = simple_dummy_unattached_reloc;
+  callbacks.multiple_definition = simple_dummy_multiple_definition;
 
   memset (&link_order, 0, sizeof (link_order));
   link_order.next = NULL;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]