diff options
author | Artur Grabowski <art@cvs.openbsd.org> | 2001-06-13 08:40:40 +0000 |
---|---|---|
committer | Artur Grabowski <art@cvs.openbsd.org> | 2001-06-13 08:40:40 +0000 |
commit | c0dc852f89f012b6aaa0c161bf9b07fb50036d89 (patch) | |
tree | cba0b63ae4d6673f64c689b9f786b084844b5319 /libexec | |
parent | 7a10618962a42d1671f180e640c111d931535cdf (diff) |
Don't do plt relocations here, move that to md code that might choose
to do lazy binding.
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/ld.so/loader.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/libexec/ld.so/loader.c b/libexec/ld.so/loader.c index be7958efb29..5091468bd9e 100644 --- a/libexec/ld.so/loader.c +++ b/libexec/ld.so/loader.c @@ -1,4 +1,4 @@ -/* $OpenBSD: loader.c,v 1.16 2001/06/06 12:31:52 art Exp $ */ +/* $OpenBSD: loader.c,v 1.17 2001/06/13 08:40:39 art Exp $ */ /* * Copyright (c) 1998 Per Fogelstrom, Opsycon AB @@ -494,14 +494,10 @@ _dl_rtld(elf_object_t *object) */ _dl_md_reloc(object, DT_REL, DT_RELSZ); _dl_md_reloc(object, DT_RELA, DT_RELASZ); -#if defined(__alpha__) - /* We assume that DT_PTREL is DT_RELA */ - _dl_md_reloc(object, DT_JMPREL, DT_PLTRELSZ); -#endif - if (_dl_bindnow) { /* XXX Perhaps more checking ? */ - _dl_md_reloc_got(object, 1); - } else { + if (_dl_bindnow || object->dyn.bind_now) { /* XXX Perhaps more checking ? */ _dl_md_reloc_got(object, 0); + } else { + _dl_md_reloc_got(object, 1); } object->status |= STAT_RELOC_DONE; } |