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]

Re: [PATCH] prevent core dump for multiple def symbols


The files in bfd/ are maintained as part of GNU Binutils, so you need
to ask on the binutils list about this patch.

It seems obvious and correct to me.  Is multiple_definition a recent
callback or did I just miss it when I wrote simple.c?  [I won't even
ask how you have a shared library with multiple definitions of a
dynamic symbol.]

On Fri, Jun 11, 2004 at 03:45:26PM +0100, Fergal Daly wrote:
> 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;
> 

-- 
Daniel Jacobowitz


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