Home | History | Annotate | Download | only in linker

Lines Matching full:base

98     .base = LIBBASE,
175 map->l_addr = info->base;
332 if((addr >= si->base) && (addr < (si->base + si->size))) {
345 * Returns the base address of the .ARM.exidx section
361 if ((addr >= si->base) && (addr < (si->base + si->size))) {
363 return (_Unwind_Ptr)(si->base + (unsigned long)si->ARM_exidx);
402 name, si->name, si->base, hash, hash % si->nbucket);
440 _do_lookup(soinfo *si, const char *name, unsigned *base)
493 "found in %s, base = 0x%08x\n",
494 pid, si->name, name, s->st_value, lsi->name, lsi->base);
495 *base = lsi->base;
531 "si->base = 0x%08x\n", pid, name, s->st_value, si->base);
544 if((unsigned)addr >= si->base && (unsigned)addr - si->base < si->size) {
555 unsigned soaddr = (unsigned)addr - si->base;
652 /* Returns the requested base address if the library is prelinked,
680 * Verifies if the object @ base is a valid ELF object
686 * -1 if no valid ELF object is found @ base.
689 verify_elf_object(void *base, const char *name)
691 Elf32_Ehdr *hdr = (Elf32_Ehdr *) base;
705 * Retrieves the base (*base) address where the ELF object should be
720 * 0 if the library did not request a specific base offset (normal
746 TRACE("[ %5d - Prelinked library '%s' requesting base @ 0x%08x ]\n",
788 * si->base: The requested base of the allocation. If 0, a sane one will be
789 * chosen in the range LIBBASE <= base < LIBLAST.
793 * -1 on failure, and 0 on success. On success, si->base will contain
799 void *base = mmap((void *)si->base, si->size, PROT_READ | PROT_EXEC,
801 if (base == MAP_FAILED) {
804 pid, (si->base ? "" : "non-"), si->name, si->base,
807 } else if (base != (void *)si->base) {
809 "not at 0x%08x", pid, (si->base ? "" : "non-"),
810 si->name, (unsigned)base, si->base);
811 munmap(base, si->size);
820 if (si->base) {
832 si->base = ba_start_addr(&ba_nonprelink, si->ba_index);
835 pid, si->name, si->base, si->ba_index);
839 si->base = 0;
858 * at their appropriate memory offsets off the base address.
874 unsigned char *base = (unsigned char *)si->base;
887 pid, si->name, (unsigned)si->base);
894 tmp = base + (phdr->p_vaddr & (~PAGE_MASK));
919 * base _+---------------------+ page boundary
926 * base + p_vaddr _| |
945 if (tmp < (base + phdr->p_vaddr + phdr->p_memsz)) {
946 extra_len = base + phdr->p_vaddr + phdr->p_memsz - tmp;
975 len = (((unsigned)base + phdr->p_vaddr + phdr->p_memsz +
997 si->dynamic = (unsigned *)(base + phdr->p_vaddr);
1022 (unsigned)si->base, si->size);
1031 munmap((void *)si->base, si->size);
1104 TRACE("[ %5d - '%s' (%s) wants base=0x%08x sz=0x%08x ]\n", pid, name,
1119 si->base = req_base;
1128 pid, name, (void *)si->base, (unsigned) ext_sz);
1141 hdr = (Elf32_Ehdr *)si->base;
1142 si->phdr = (Elf32_Phdr *)((unsigned char *)si->base + hdr->e_phoff);
1160 /* At this point we know that whatever is loaded @ base is a valid ELF
1162 TRACE("[ %5d init_library base=0x%08x sz=0x%08x name='%s') ]\n",
1163 pid, si->base, si->size, si->name);
1165 if (si->base < LIBBASE || si->base >= LIBLAST)
1172 munmap((void *)si->base, si->size);
1231 munmap((char *)si->base, si->size);
1235 pid, si->name, si->base);
1259 unsigned base;
1266 unsigned reloc = (unsigned)(rel->r_offset + si->base);
1274 s = _do_lookup(si, sym_name, &base);
1293 - The address of nominial base address if the relocation
1294 type is base-relative.
1334 if((base == 0) && (si->base != 0)){
1341 sym_addr = (unsigned)(s->st_value + base);
1410 reloc, si->base);
1411 *((unsigned*)reloc) += si->base;
1462 unsigned base;
1469 unsigned reloc = (unsigned)(rela->r_offset + si->base);
1477 s = _do_lookup(si, sym_name, &base);
1483 if((base == 0) && (si->base != 0)){
1496 sym_addr = (unsigned)(s->st_value + base);
1535 reloc, si->base);
1536 *((unsigned*)reloc) += si->base;
1714 DEBUG("%5d si->base = 0x%08x si->flags = 0x%08x\n", pid,
1715 si->base, si->flags);
1741 since si->base == 0 for an executable, we use the
1769 pid, si->name, si->base + phdr->p_vaddr,
1774 si->dynamic = (unsigned *) (si->base + phdr->p_vaddr);
1791 si->nbucket = ((unsigned *) (si->base + *d))[0];
1792 si->nchain = ((unsigned *) (si->base + *d))[1];
1793 si->bucket = (unsigned *) (si->base + *d + 8);
1794 si->chain = (unsigned *) (si->base + *d + 8 + si->nbucket * 4);
1797 si->strtab = (const char *) (si->base + *d);
1800 si->symtab = (Elf32_Sym *) (si->base + *d);
1812 si->plt_rela = (Elf32_Rela*) (si->base + *d);
1819 si->plt_rel = (Elf32_Rel*) (si->base + *d);
1826 si->rel = (Elf32_Rel*) (si->base + *d);
1838 si->plt_got = (unsigned *)(si->base + *d);
1846 si->rela = (Elf32_Rela *) (si->base + *d);
1854 si->init_func = (void (*)(void))(si->base + *d);
1859 si->fini_func = (void (*)(void))(si->base + *d);
1864 si->init_array = (unsigned *)(si->base + *d);
1872 si->fini_array = (unsigned *)(si->base + *d);
1880 si->preinit_array = (unsigned *)(si->base + *d);
1899 DEBUG("%5d si->base = 0x%08x, si->strtab = %p, si->symtab = %p\n",
1900 pid, si->base, si->strtab, si->symtab);
1966 mprotect((void*) si->base, wr_offset, PROT_READ | PROT_EXEC);
2106 linker_soinfo.base = 0; // This is the important part; must be zero.
2127 si->base = 0;