summaryrefslogtreecommitdiff
path: root/libexec/ld.elf_so/arch
diff options
context:
space:
mode:
authorjoerg <joerg@NetBSD.org>2017-11-06 21:16:03 +0000
committerjoerg <joerg@NetBSD.org>2017-11-06 21:16:03 +0000
commit79b9ae539bab769b0d0234fc22ca5df8346f44c3 (patch)
treeddd40728eeb1d26f11f9065fcdea4928596f3cb6 /libexec/ld.elf_so/arch
parent52b3386259d12c627438c633d661982ad653e46a (diff)
init/fini for the main program is handled by crt0.o, so ifunc handling
is skipped right now as it iterates the same list. Don't repeat that mistake and explicitly take care of it in the dynamic linker.
Diffstat (limited to 'libexec/ld.elf_so/arch')
-rw-r--r--libexec/ld.elf_so/arch/arm/mdreloc.c7
-rw-r--r--libexec/ld.elf_so/arch/i386/mdreloc.c7
-rw-r--r--libexec/ld.elf_so/arch/sparc64/mdreloc.c7
-rw-r--r--libexec/ld.elf_so/arch/x86_64/mdreloc.c7
4 files changed, 8 insertions, 20 deletions
diff --git a/libexec/ld.elf_so/arch/arm/mdreloc.c b/libexec/ld.elf_so/arch/arm/mdreloc.c
index 6181135a4ea..e0ed6066b91 100644
--- a/libexec/ld.elf_so/arch/arm/mdreloc.c
+++ b/libexec/ld.elf_so/arch/arm/mdreloc.c
@@ -1,8 +1,8 @@
-/* $NetBSD: mdreloc.c,v 1.42 2017/08/10 19:03:26 joerg Exp $ */
+/* $NetBSD: mdreloc.c,v 1.43 2017/11/06 21:16:04 joerg Exp $ */
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: mdreloc.c,v 1.42 2017/08/10 19:03:26 joerg Exp $");
+__RCSID("$NetBSD: mdreloc.c,v 1.43 2017/11/06 21:16:04 joerg Exp $");
#endif /* not lint */
#include <sys/types.h>
@@ -257,9 +257,6 @@ _rtld_relocate_plt_lazy(Obj_Entry *obj)
{
const Elf_Rel *rel;
- if (!obj->relocbase)
- return 0;
-
for (rel = obj->pltrellim; rel-- > obj->pltrel; ) {
Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
diff --git a/libexec/ld.elf_so/arch/i386/mdreloc.c b/libexec/ld.elf_so/arch/i386/mdreloc.c
index 3a7528356d8..3731e2dec88 100644
--- a/libexec/ld.elf_so/arch/i386/mdreloc.c
+++ b/libexec/ld.elf_so/arch/i386/mdreloc.c
@@ -1,8 +1,8 @@
-/* $NetBSD: mdreloc.c,v 1.39 2017/08/10 19:03:26 joerg Exp $ */
+/* $NetBSD: mdreloc.c,v 1.40 2017/11/06 21:16:04 joerg Exp $ */
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: mdreloc.c,v 1.39 2017/08/10 19:03:26 joerg Exp $");
+__RCSID("$NetBSD: mdreloc.c,v 1.40 2017/11/06 21:16:04 joerg Exp $");
#endif /* not lint */
#include <sys/types.h>
@@ -198,9 +198,6 @@ _rtld_relocate_plt_lazy(Obj_Entry *obj)
{
const Elf_Rel *rel;
- if (!obj->relocbase)
- return 0;
-
for (rel = obj->pltrellim; rel-- > obj->pltrel; ) {
Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rel->r_offset);
diff --git a/libexec/ld.elf_so/arch/sparc64/mdreloc.c b/libexec/ld.elf_so/arch/sparc64/mdreloc.c
index 6415dd5b2f5..669c40c7579 100644
--- a/libexec/ld.elf_so/arch/sparc64/mdreloc.c
+++ b/libexec/ld.elf_so/arch/sparc64/mdreloc.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mdreloc.c,v 1.65 2017/08/12 09:03:27 joerg Exp $ */
+/* $NetBSD: mdreloc.c,v 1.66 2017/11/06 21:16:04 joerg Exp $ */
/*-
* Copyright (c) 2000 Eduardo Horvath.
@@ -32,7 +32,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: mdreloc.c,v 1.65 2017/08/12 09:03:27 joerg Exp $");
+__RCSID("$NetBSD: mdreloc.c,v 1.66 2017/11/06 21:16:04 joerg Exp $");
#endif /* not lint */
#include <errno.h>
@@ -516,9 +516,6 @@ _rtld_relocate_plt_lazy(Obj_Entry *obj)
{
const Elf_Rela *rela;
- if (!obj->relocbase)
- return 0;
-
for (rela = obj->pltrelalim; rela-- > obj->pltrela; ) {
if (ELF_R_TYPE(rela->r_info) == R_TYPE(JMP_IREL))
obj->ifunc_remaining = obj->pltrelalim - rela + 1;
diff --git a/libexec/ld.elf_so/arch/x86_64/mdreloc.c b/libexec/ld.elf_so/arch/x86_64/mdreloc.c
index 9ca1a2115b1..644242be154 100644
--- a/libexec/ld.elf_so/arch/x86_64/mdreloc.c
+++ b/libexec/ld.elf_so/arch/x86_64/mdreloc.c
@@ -1,4 +1,4 @@
-/* $NetBSD: mdreloc.c,v 1.45 2017/08/10 19:03:27 joerg Exp $ */
+/* $NetBSD: mdreloc.c,v 1.46 2017/11/06 21:16:04 joerg Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -68,7 +68,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: mdreloc.c,v 1.45 2017/08/10 19:03:27 joerg Exp $");
+__RCSID("$NetBSD: mdreloc.c,v 1.46 2017/11/06 21:16:04 joerg Exp $");
#endif /* not lint */
#include <sys/types.h>
@@ -282,9 +282,6 @@ _rtld_relocate_plt_lazy(Obj_Entry *obj)
{
const Elf_Rela *rela;
- if (!obj->relocbase)
- return 0;
-
for (rela = obj->pltrelalim; rela-- > obj->pltrela; ) {
Elf_Addr *where = (Elf_Addr *)(obj->relocbase + rela->r_offset);