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]

Problem with "make check" in ld on ia64.


On Mon, Feb 12, 2001 at 03:36:10PM -0800, H . J . Lu wrote:
> > 
> > The problem with "make check" in ld from CVS on ia64 came back now:
> > 
> > Running
> > /home/redhat/vacdrom/binutils/BUILD/binutils-2.10.1.0.7/ld/testsuite/ld-bootstrap/bootstrap.exp ...
> > FAIL: bootstrap with --static
> > 
> 

Ok. This time is for real :-). In get_dyn_sym_info () in elfxx-ia64.c,
there are

      /* Construct a string for use in the elf64_ia64_local_hash_table.
         The name describes what was once anonymous memory.  */

      len = sizeof (void*)*2 + 1 + sizeof (bfd_vma)*4 + 1 + 1;
      len += 10;        /* %p slop */ 

      addr_name = alloca (len);
      sprintf (addr_name, "%p:%lx", (void *) abfd, ELF64_R_SYM (rel->r_info));

      /* Collect the canonical entry data for this address.  */
      loc_h = elf64_ia64_local_hash_lookup (&ia64_info->loc_hash_table,
                                            addr_name, create, create);
      BFD_ASSERT (loc_h);

      pp = &loc_h->info;

If 2 linkers have different addresses for abfd here, they will have
different fake local symbols. It just happened that in the static
bootstrap testcase, tmpdir/ld1 and tmpdir/ld2 are different. As the
result, they will have diffferent addresses for abfd in get_dyn_sym_info
such that we cannot compare the binaries generated by tmpdir/ld1 and
tmpdir/ld2 for ia64. I think we have 2 options:

1. Mark "bootstrap with --static" as expected to fail on ia64.
2. Use tmpdir/ld3 to generate tmpdir/ld4. And then compare them.

I prefer #2. Any comments?


-- 
H.J. Lu (hjl@valinux.com)


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