reloc.c (13575fc46f0ff13172a820b6fcd3626f6de7263a) reloc.c (d5b537d01a6711c4426da2a627b11a71cf3b11e8)
1/*-
2 * Copyright 1996-1998 John D. Polstra.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 8 unchanged lines hidden (view full) ---

17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
1/*-
2 * Copyright 1996-1998 John D. Polstra.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 8 unchanged lines hidden (view full) ---

17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * $Id: rtld.c,v 1.3 1998/05/01 08:39:27 dfr Exp $
25 * $Id: reloc.c,v 1.1 1998/09/04 19:03:57 dfr Exp $
26 */
27
28/*
29 * Dynamic linker for ELF.
30 *
31 * John Polstra <jdp@polstra.com>.
32 */
33

--- 68 unchanged lines hidden (view full) ---

102 srcaddr = (const void *) (srcobj->relocbase + srcsym->st_value);
103 memcpy(dstaddr, srcaddr, size);
104 }
105 }
106
107 return 0;
108}
109
26 */
27
28/*
29 * Dynamic linker for ELF.
30 *
31 * John Polstra <jdp@polstra.com>.
32 */
33

--- 68 unchanged lines hidden (view full) ---

102 srcaddr = (const void *) (srcobj->relocbase + srcsym->st_value);
103 memcpy(dstaddr, srcaddr, size);
104 }
105 }
106
107 return 0;
108}
109
110/* Initialize the special GOT entries. */
111void
112init_pltgot(Obj_Entry *obj)
113{
114 if (obj->pltgot != NULL) {
115 obj->pltgot[1] = (Elf_Addr) obj;
116 obj->pltgot[2] = (Elf_Addr) &_rtld_bind_start;
117 }
118}
119
110/* Process the non-PLT relocations. */
111int
112reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld)
113{
114 const Elf_Rel *rellim;
115 const Elf_Rel *rel;
116
117 rellim = (const Elf_Rel *) ((caddr_t) obj->rel + obj->relsize);

--- 119 unchanged lines hidden ---
120/* Process the non-PLT relocations. */
121int
122reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld)
123{
124 const Elf_Rel *rellim;
125 const Elf_Rel *rel;
126
127 rellim = (const Elf_Rel *) ((caddr_t) obj->rel + obj->relsize);

--- 119 unchanged lines hidden ---