Module Name: src Committed By: macallan Date: Mon Jul 29 05:32:39 UTC 2024
Modified Files: src/libexec/ld.elf_so/arch/hppa: hppa_reloc.c Log Message: skip R_PARISC_NONE reloc entries instead of segfaulting on them now windowmaker runs on my C360 To generate a diff of this commit: cvs rdiff -u -r1.51 -r1.52 src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c diff -u src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c:1.51 src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c:1.52 --- src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c:1.51 Mon Jul 22 23:10:46 2024 +++ src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c Mon Jul 29 05:32:39 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: hppa_reloc.c,v 1.51 2024/07/22 23:10:46 riastradh Exp $ */ +/* $NetBSD: hppa_reloc.c,v 1.52 2024/07/29 05:32:39 macallan Exp $ */ /*- * Copyright (c) 2002, 2004 The NetBSD Foundation, Inc. @@ -48,7 +48,7 @@ #include <sys/cdefs.h> #ifndef lint -__RCSID("$NetBSD: hppa_reloc.c,v 1.51 2024/07/22 23:10:46 riastradh Exp $"); +__RCSID("$NetBSD: hppa_reloc.c,v 1.52 2024/07/29 05:32:39 macallan Exp $"); #endif /* not lint */ #include <stdlib.h> @@ -625,6 +625,9 @@ _rtld_relocate_plt_lazy(Obj_Entry *obj) Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rela->r_offset); Elf_Addr func_pc, func_sl; + /* skip R_PARISC_NONE entries */ + if (ELF_R_TYPE(rela->r_info) == R_TYPE(NONE)) continue; + assert(ELF_R_TYPE(rela->r_info) == R_TYPE(IPLT)); /*