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] |
Other format: | [Raw text] |
On Tue, Sep 30, 2003 at 08:34:35PM +0200, Jakub Jelinek wrote: > Hi! > > Following testcase: > > /* gcc -shared -g -O2 -fpic -Wl,-z,defs test.c -o test.so /lib/ld-linux-ia64.so.2 */ > static __thread int i; > extern int bar; > > int *foo (void) > { > return &i + bar; > } > > (distilled from glibc with a buggy patch) causes linker abort. > The problem is that .rela.debug_info contains R_IA64_DTPREL64LSB > relocation and ia64_howto_table incorrectly used howto->size 8 > (which is 16 bytes) for it, which means bfd_perform_relocation returned > bfd_reloc_other and bfd_generic_get_relocated_section_contents aborted. > Apparently I wrote the sizes in bytes instead of the weirdo encoding. > Ok to commit? > > BTW: I have doubts about other relocs: > IA64_HOWTO (R_IA64_IPLTMSB, "IPLTMSB", 4, FALSE, TRUE), > IA64_HOWTO (R_IA64_IPLTLSB, "IPLTLSB", 4, FALSE, TRUE), > IA64_HOWTO (R_IA64_COPY, "COPY", 4, FALSE, TRUE), > I'd say the former two should be size NN/8 (16 bytes for elf64_ia64, > 8 bytes for elf32_ia64) and R_IA64_COPY should be size 3 (0 bytes). My ILP32 patches can deal with it. H.J.
Attachment:
ld-hpux-2.patch
Description: Text document
Attachment:
bfd-ia64-ilp32-abi-2.patch
Description: Text document
Attachment:
bfd-ia64-ilp32-tls-2.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |