search for: dt_init

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

2014 Dec 08
3
[LLVMdev] [lld] Handling multiple -init/-fini command line options
On Mon, Dec 8, 2014 at 8:39 PM, Shankar Easwaran <shankare at codeaurora.org> wrote: > On 12/8/2014 11:09 AM, Joerg Sonnenberger wrote: >> >> On Mon, Dec 08, 2014 at 10:21:49AM -0600, Shankar Easwaran wrote: >>> >>> The DT_INIT/DT_FINI correspond to one initializer function,where as >>> DT_INIT_ARRAY/DT_FINI_ARRAY is used when there is more than one >>> initalizer function/finalizer function respectively. >> >> This is not true. The difference is that the DT_INIT / DT_FINI function >> i...
2014 Dec 08
3
[LLVMdev] [lld] Handling multiple -init/-fini command line options
On Mon, Dec 08, 2014 at 10:21:49AM -0600, Shankar Easwaran wrote: > The DT_INIT/DT_FINI correspond to one initializer function,where as > DT_INIT_ARRAY/DT_FINI_ARRAY is used when there is more than one > initalizer function/finalizer function respectively. This is not true. The difference is that the DT_INIT / DT_FINI function is responsible for calling into the .init /...
2014 Dec 08
3
[LLVMdev] [lld] Handling multiple -init/-fini command line options
On Mon, Dec 8, 2014 at 10:57 PM, Shankar Easwaran <shankare at codeaurora.org> wrote: > The dynamic loader handles only one entry for DT_INIT. If there is more than > one init option, we could convert this as an .init_array instead ? > > If that doesnot work, we can come up with a .init_array option but I am not > sure about how will you handle priority with init_array's ? Do you set > linker defined init/fini symbols...
2014 Dec 08
5
[LLVMdev] [lld] Handling multiple -init/-fini command line options
...", a); } % gcc -fPIC -shared -o libfoo.so -Wl,-init,foo -Wl,-init,bar foo.c % gcc main.c -L. -lfoo -Wl,-rpath,. % ./a.out 2 % gcc -fPIC -shared -o libfoo.so -Wl,-init,bar -Wl,-init,foo foo.c % ./a.out 1 What is the reason of this incompatibility? The question is caused by attempt to support DT_INIT/DT_FINI dynamic table tags. The table can contain no more than one DT_INIT/DT_FINI tags. The LD and Gold linker look up either default symbols (_init/_fini) or symbols specified by the -init/-fini options and put their values to the tags. -- Simon Atanasyan
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
...quot;) =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(secstrings+sechdrs[i].sh_name, ".useless")...
2007 Apr 18
1
[PATCH, experimental] i386 Allow the fixmap to be relocated at boot time
...quot;) =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(secstrings+sechdrs[i].sh_name, ".useless")...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
...h_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) { + /* This is demonic; see vsyscall.l...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
...h_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) { + /* This is demonic; see vsyscall.l...
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 --