From 421c80d27e2dda29efd8e53dd18090b22546867c Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 21 Jul 1999 16:58:06 +0000 Subject: 1999-07-21 Roland McGrath * elf/dl-reloc.c (_dl_reloc_bad_type): New function. * elf/ldsodefs.h: Declare it. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_rela): Use it instead of assert. (elf_machine_lazy_rel): Likewise. Take new arg MAP. * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/mips/dl-machine.h (elf_machine_rel): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/mips/mips64/dl-machine.h (elf_machine_rel): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/m68k/dl-machine.h (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/generic/dl-machine.h (elf_machine_rel): Likewise. * sysdeps/arm/dl-machine.h (elf_machine_rel): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/alpha/dl-machine.h (elf_machine_rela): Likewise. (elf_machine_lazy_rel): Likewise. * sysdeps/powerpc/dl-machine.h (elf_machine_lazy_rel): Likewise. * sysdeps/powerpc/dl-machine.c (__process_machine_rela): Use _dl_reloc_bad_type instead of _dl_signal_error. * elf/do-rel.h (elf_dynamic_do_rel): Pass MAP to elf_machine_lazy_rel. --- sysdeps/m68k/dl-machine.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'sysdeps/m68k') diff --git a/sysdeps/m68k/dl-machine.h b/sysdeps/m68k/dl-machine.h index afa68efe1b..f9f9bf7626 100644 --- a/sysdeps/m68k/dl-machine.h +++ b/sysdeps/m68k/dl-machine.h @@ -24,8 +24,6 @@ #include -#include - /* Return nonzero iff E_MACHINE is compatible with the running host. */ static inline int elf_machine_matches_host (Elf32_Half e_machine) @@ -313,18 +311,21 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, case R_68K_NONE: /* Alright, Wilbur. */ break; default: - assert (! "unexpected dynamic reloc type"); + _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 0); break; } } } static inline void -elf_machine_lazy_rel (Elf32_Addr l_addr, const Elf32_Rela *reloc) +elf_machine_lazy_rel (struct link_map *map, + Elf32_Addr l_addr, const Elf32_Rela *reloc) { Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); - assert (ELF32_R_TYPE (reloc->r_info) == R_68K_JMP_SLOT); - *reloc_addr += l_addr; + if (ELF32_R_TYPE (reloc->r_info) == R_68K_JMP_SLOT) + *reloc_addr += l_addr; + else + _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); } #endif /* RESOLVE */ -- cgit v1.2.3