search for: dt_symtab

Displaying 14 results from an estimated 14 matches for "dt_symtab".

2019 Jan 16
2
[RFC] Adding support for dynamic entries in yaml2obj
...strings that belong in .dynstr, the string itself can be used as the value for an entry. (ex. DT_SONAME, DT_NEEDED, DT_RPATH, and DT_RUNPATH) 2. A section name can be used in place of an address. In this case, the value of the dynamic entry is the sh_addr of the specified section. (ex. DT_STRTAB, DT_SYMTAB, DT_HASH, DT_RELA, and others) 3. A value can be specified using hexadecimal or decimal (or other bases supported by `StringRef::to_integer()`). (ex. DT_STRSZ, DT_SYMENT, DT_RELAENT, and others) Here's an example to illustrate this design: !ELF FileHeader: Class: ELFCLASS64...
2007 Mar 05
7
[PATCH 2/10] linux 2.6.18: COMPAT_VDSO
...+ case PT_LOAD: + case PT_NOTE: + break; + case PT_DYNAMIC: { + Elf32_Dyn *dyn = (void *)(phdr->p_vaddr - new_base + (unsigned long)ehdr); + unsigned j; + + for(j = 0; dyn[j].d_tag != DT_NULL; ++j) { + switch(dyn[j].d_tag) { + case DT_HASH: + case DT_STRTAB: + case DT_SYMTAB: + case 0x6ffffff0: /* DT_VERSYM */ + case 0x6ffffffc: /* DT_VERDEF */ + break; + case DT_SONAME: + case DT_STRSZ: + case 0x6ffffffd: /* DT_VERDEFNUM */ + continue; + case DT_SYMENT: + szdynsym = dyn[j].d_un.d_val; + continue; + default: + if (dy...
2007 Mar 05
7
[PATCH 2/10] linux 2.6.18: COMPAT_VDSO
...+ case PT_LOAD: + case PT_NOTE: + break; + case PT_DYNAMIC: { + Elf32_Dyn *dyn = (void *)(phdr->p_vaddr - new_base + (unsigned long)ehdr); + unsigned j; + + for(j = 0; dyn[j].d_tag != DT_NULL; ++j) { + switch(dyn[j].d_tag) { + case DT_HASH: + case DT_STRTAB: + case DT_SYMTAB: + case 0x6ffffff0: /* DT_VERSYM */ + case 0x6ffffffc: /* DT_VERDEF */ + break; + case DT_SONAME: + case DT_STRSZ: + case 0x6ffffffd: /* DT_VERDEFNUM */ + continue; + case DT_SYMENT: + szdynsym = dyn[j].d_un.d_val; + continue; + default: + if (dy...
2007 Mar 05
7
[PATCH 2/10] linux 2.6.18: COMPAT_VDSO
...+ case PT_LOAD: + case PT_NOTE: + break; + case PT_DYNAMIC: { + Elf32_Dyn *dyn = (void *)(phdr->p_vaddr - new_base + (unsigned long)ehdr); + unsigned j; + + for(j = 0; dyn[j].d_tag != DT_NULL; ++j) { + switch(dyn[j].d_tag) { + case DT_HASH: + case DT_STRTAB: + case DT_SYMTAB: + case 0x6ffffff0: /* DT_VERSYM */ + case 0x6ffffffc: /* DT_VERDEF */ + break; + case DT_SONAME: + case DT_STRSZ: + case 0x6ffffffd: /* DT_VERDEFNUM */ + continue; + case DT_SYMENT: + szdynsym = dyn[j].d_un.d_val; + continue; + default: + if (dy...
2007 Apr 18
1
[RFC, PATCH 7/24] i386 Vmi memory hole
Create a configurable hole in the linear address space at the top of memory. A more advanced interface is needed to negotiate how much space the hypervisor is allowed to steal, but in the end, it seems most likely that a fixed constant size will be chosen for the compiled kernel, potentially propagated to an information page used by paravirtual initialization to determine interface compatibility.
2007 Apr 18
1
[RFC, PATCH 7/24] i386 Vmi memory hole
Create a configurable hole in the linear address space at the top of memory. A more advanced interface is needed to negotiate how much space the hypervisor is allowed to steal, but in the end, it seems most likely that a fixed constant size will be chosen for the compiled kernel, potentially propagated to an information page used by paravirtual initialization to determine interface compatibility.
2007 Apr 18
1
[PATCH, experimental] i386 Allow the fixmap to be relocated at boot time
...(strcmp(secstrings+sechdrs[i].sh_name, ".dynamic") =3D=3D 0) { + Elf32_Dyn *dyn =3D (void *)hdr + sechdrs[i].sh_offset; + int tag; + while ((tag =3D (++dyn)->d_tag) !=3D DT_NULL) { + if (tag =3D=3D DT_PLTGOT || tag =3D=3D DT_HASH || + tag =3D=3D DT_STRTAB || tag =3D=3D DT_SYMTAB || + tag =3D=3D DT_RELA || tag =3D=3D DT_INIT || + tag =3D=3D DT_FINI || tag =3D=3D DT_REL || + tag =3D=3D DT_JMPREL || tag =3D=3D DT_VERSYM || + tag =3D=3D DT_VERDEF || tag =3D=3D DT_VERNEED) + dyn->d_un.d_val +=3D VSYSCALL_RELOCATION; + } + } else if (strcmp(...
2007 Apr 18
1
[PATCH, experimental] i386 Allow the fixmap to be relocated at boot time
...(strcmp(secstrings+sechdrs[i].sh_name, ".dynamic") =3D=3D 0) { + Elf32_Dyn *dyn =3D (void *)hdr + sechdrs[i].sh_offset; + int tag; + while ((tag =3D (++dyn)->d_tag) !=3D DT_NULL) { + if (tag =3D=3D DT_PLTGOT || tag =3D=3D DT_HASH || + tag =3D=3D DT_STRTAB || tag =3D=3D DT_SYMTAB || + tag =3D=3D DT_RELA || tag =3D=3D DT_INIT || + tag =3D=3D DT_FINI || tag =3D=3D DT_REL || + tag =3D=3D DT_JMPREL || tag =3D=3D DT_VERSYM || + tag =3D=3D DT_VERDEF || tag =3D=3D DT_VERNEED) + dyn->d_un.d_val +=3D VSYSCALL_RELOCATION; + } + } else if (strcmp(...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
...else if (strcmp(secstrings+sechdrs[i].sh_name, ".dynamic") =3D=3D 0) { + Elf32_Dyn *dyn =3D (void *)hdr + sechdrs[i].sh_offset; + int tag; + while ((tag =3D (++dyn)->d_tag) !=3D DT_NULL) + switch(tag) { + case DT_PLTGOT: + case DT_HASH: + case DT_STRTAB: + case DT_SYMTAB: + case DT_RELA: + case DT_INIT: + case DT_FINI: + case DT_REL: + case DT_JMPREL: + case DT_VERSYM: + case DT_VERDEF: + case DT_VERNEED: + dyn->d_un.d_val +=3D VDSO_HIGH_BASE; + } + } else if (strcmp(secstrings+sechdrs[i].sh_name, ".useless") =3D=3D 0) {...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
...else if (strcmp(secstrings+sechdrs[i].sh_name, ".dynamic") =3D=3D 0) { + Elf32_Dyn *dyn =3D (void *)hdr + sechdrs[i].sh_offset; + int tag; + while ((tag =3D (++dyn)->d_tag) !=3D DT_NULL) + switch(tag) { + case DT_PLTGOT: + case DT_HASH: + case DT_STRTAB: + case DT_SYMTAB: + case DT_RELA: + case DT_INIT: + case DT_FINI: + case DT_REL: + case DT_JMPREL: + case DT_VERSYM: + case DT_VERDEF: + case DT_VERNEED: + dyn->d_un.d_val +=3D VDSO_HIGH_BASE; + } + } else if (strcmp(secstrings+sechdrs[i].sh_name, ".useless") =3D=3D 0) {...
2007 Apr 18
4
[patch 0/2] Updates to compat VDSOs
Hi Andi, Here's a couple of patches to fix up COMPAT_VDSO: The first is a straightforward implementation of Jan's original idea of relocating the VDSO to match its mapped location. Unlike Jan and Zach's version, I changed it to relocate based on the phdrs rather than the sections; the result is pleasantly compact. The second patch takes advantage of the fact that all the
2007 Apr 18
4
[patch 0/2] Updates to compat VDSOs
Hi Andi, Here's a couple of patches to fix up COMPAT_VDSO: The first is a straightforward implementation of Jan's original idea of relocating the VDSO to match its mapped location. Unlike Jan and Zach's version, I changed it to relocate based on the phdrs rather than the sections; the result is pleasantly compact. The second patch takes advantage of the fact that all the
2007 Apr 18
4
[patch 0/4] Clean up asm/bugs.h, identify_cpu() and update COMPAT_VDSO
Hi Andi, Four patches: - clean up asm/bugs.h, by moving all the C code into its own C file - split identify_cpu() into boot and secondary variants, so that boot-time setup functions can be marked __init - repost of the COMPAT_VDSO patches with a bit more robustness from unknown DT_tags, and functions marked __init, since all this is boot-time only setup. Thanks, J --
2007 Apr 18
4
[patch 0/4] Clean up asm/bugs.h, identify_cpu() and update COMPAT_VDSO
Hi Andi, Four patches: - clean up asm/bugs.h, by moving all the C code into its own C file - split identify_cpu() into boot and secondary variants, so that boot-time setup functions can be marked __init - repost of the COMPAT_VDSO patches with a bit more robustness from unknown DT_tags, and functions marked __init, since all this is boot-time only setup. Thanks, J --