From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Wilson To: "H . J . Lu" Cc: binutils@sources.redhat.com Subject: Re: PATCH: Fix ld bootstrap test for ia64 Date: Tue, 02 Oct 2001 19:13:00 -0000 Message-id: <200110030213.TAA13244@cygnus.com> References: <20011002101102.A1304@lucon.org> X-SW-Source: 2001-10/msg00028.html ># .../configure --enable-64-bit-bfd --enable-targets=all I reproduced the problem with this configure command. It didn't seem right to me that we still have this problem, so I investigated. Some symbols are getting different gp offsets. These entries are in a bfd_hash_table, and offsets are assigned in order via a simple bfd hash table traverse, so that implies that the hash tables are different. I tracked this down to get_dyn_sym_info in bfd/elfxx-ia64.c. This creates some hash table entries at run time for which we have no symbol name, so it synthesizes one using the abfd address and unique relocation info. sprintf (addr_name, "%p:%lx", (void *) abfd, ELFNN_R_SYM (rel->r_info)); But the abfd address can vary if the linkers are not identical, and since ld1 and ld2 are built differently, this causes the ld2 and ld3 linkers to be different. So we either need to build an ld4 in the testsuite, or else we need to use a more deterministic method for creating fake symbol names here. Jim