[committed] hppa64: Fix relocation handling for global data and a couple of thinkos
Sven Schnelle
svens@stackframe.org
Fri Oct 17 18:55:56 GMT 2025
Hi Dave,
John David Anglin <dave.anglin@bell.net> writes:
> hppa64: Fix relocation handling for global data and a couple of thinkos
>
> This fixes relocation handling in situations where hh->owner and
> hh->sym_indx were not initialized.
>
> 2025-10-08 John David Anglin <danglin@gcc.gnu.org>
>
> bfd/ChangeLog:
>
> PR binutils/6511
> * elf64-hppa.c (global_sym_index): New from ia64.
> (elf64_hppa_check_relocs): Only set hh->eh.ref_regular if we
> have a regular definition.
> (elf64_hppa_check_relocs): Add missing NEED_DYNREL to need_entry
> assignment.
> (elf64_hppa_check_relocs): Stash symbol index and section
> earlier.
> (allocate_global_data_dlt): Initialize hh->owner and hh->sym_indx
> if not initialized.
> (allocate_global_data_opd): Likewise. Remove redundant checks
> for NULL hh.
> (allocate_dynrel_entries): Check for discarded
> hppa_info->other_rel_sec section. Add assert rent->sec->owner
> == hh->owner.
> (elf64_hppa_finalize_dynreloc): Check for discarded
> hppa_info->other_rel_sec section.
> (elf_hppa_final_link_relocate): Return bfd_reloc_ok if we
> have R_PARISC_NONE relocation.
I see a linux boot failure with this patch (addresses added for debugging):
Autobooting Linux kernel which was loaded by qemu...
Decompressing Linux... Bootcode overlaps kernel code (_startcode_end=0x150c000 kernel_addr=0x100000)done.
Booting the kernel.
<hangs here>
QEMU: Terminated
I haven't investigated yet (busy with other stuff...), but it's easily
reproducable with defconfig in linux + binutils master. It happens both
on Hardware and qemu.
More information about the Binutils
mailing list