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]

PATCH: Support ia64-hpux (Re: [PATCH] Fix bfd_generic_get_relocated_section_contents on IA-64)


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]