This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


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

Re: binutils is broken on ELF/mips (Re: binutils is broken on Linux/alpha)


On Thu, Oct 04, 2001 at 10:36:24AM -0700, H . J . Lu wrote:
> On Thu, Oct 04, 2001 at 10:29:21AM -0700, H . J . Lu wrote:
> > On Thu, Oct 04, 2001 at 10:28:01AM -0700, H . J . Lu wrote:
> > > 
> > > That is it. The ELF/mips tries to perform relocation in a linkonce
> > > section which has been removed. I will take a look.
> > > 
> > > 
> > 
> > I am not sure if ELF/mips is the only target which does this.
> > 
> > 
> 
> The relocation in .eh_frame against data in the removed linkonce
> section. I am not so sure if it is ELF/mips specific. I didn't see the
> elf.sc change mentioned in
> 
> http://sources.redhat.com/ml/binutils/2001-06/msg00530.html
> 
> I have a feeling that the current binutils is broken on all ELF targets
> if not all targets.
> 

I think I found the problem. Around line 6316 in bfd/elf32-mips.c,
there are

    case R_MIPS_32:
    case R_MIPS_REL32:
    case R_MIPS_64:
      if ((info->shared
           || (elf_hash_table (info)->dynamic_sections_created
               && h != NULL 
               && ((h->root.elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC)
                   != 0)))
          && (input_section->flags & SEC_ALLOC) != 0)
        {
          /* If we're creating a shared library, or this relocation is
             against a symbol in a shared library, then we can't know
             where the symbol will end up.  So, we create a relocation
             record in the output, and leave the job up to the dynamic
             linker.  */
          value = addend;
....

The problem is `symbol' can be NULL if the linkonce section is removed.
Then the ELF/mips linker crashes in mips_elf_create_dynamic_relocation.
How do we fix it?  What are other targets also affected by this?


H.J.


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