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] |