[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: possible binutils bug on ia64
From: |
Alan Modra |
Subject: |
Re: possible binutils bug on ia64 |
Date: |
Thu, 7 Mar 2002 21:20:46 +1030 |
User-agent: |
Mutt/1.3.25i |
On Wed, Mar 06, 2002 at 09:27:46PM -0800, Randolph Chung wrote:
> With the latest binutils (BFD version 020304 20020304O), glibc (2.2.5) doesn't
> build on ia64. I'm not sure if this is really a binutils bug or a glibc
> bug, but older binutils work...
>
> The error from glibc is:
> Inconsistency detected by ld.so: ../sysdeps/ia64/dl-machine.h: 582:
> elf_machine_rela: Assertion `! "unexpected dynamic reloc format"' failed!
>
> The problem seems to be that recent binutils generates a lot of
> R_IA64_NONE entries in .rela.got that is confusing the loader.
sysdeps/ia64/dl-machine.h:elf_machine_rela should really ignore
R_IA64_NONE relocs, but someone has looked at ld.so, found no
NONE relocs, and decided to optimize code for bootstrapping.
# ifndef RTLD_BOOTSTRAP
else if (r_type == R_IA64_NONE)
return;
# endif
> Compiled with above binutils:
> pippin[22:49] elf% readelf -a ./ld.so | grep -c IA64_NONE
> 27
>
> Compiled with older binutils:
> pippin[22:49] elf% readelf -a /lib/ld-linux-ia64.so.2 | grep -c IA64_NONE
> 0
Are you sure all other variables are fixed? eg. Current mainline gcc
makes use of .hidden, and it's likely that these symbols are the
source of your R_IA64_NONE relocs. Of course, ld shouldn't be
generating them anyway...
--
Alan Modra
IBM OzLabs - Linux Technology Centre