Displaying 13 results from an estimated 13 matches for "dt_rela".
2014 Jan 19
2
[LLVMdev] [lld] Relocation sections format: .rela / .rel
Hi,
Now lld writes relocations to the ".rela" sections only. Mips requires
to use the "rel" format. So we need to be able to select format and
names of relocation section, names of symbols like __rela_iplt_* /
__rel_iplt_*, dynamic table tag DT_RELA / DT_REL.
My current idea:
- Add two virtual functions
DefaultLayout::createDynamicRelocationTable() and
DefaultLayout::getPLTRelocationTable(). Call these functions when we
need to create relocation tables. By default these function create
.rela.* sections.
- Override createDynamicRelocationTable...
2014 Jan 19
0
[LLVMdev] [lld] Relocation sections format: .rela / .rel
...>
> Hi,
>
> Now lld writes relocations to the ".rela" sections only. Mips requires
> to use the "rel" format. So we need to be able to select format and
> names of relocation section, names of symbols like __rela_iplt_* /
> __rel_iplt_*, dynamic table tag DT_RELA / DT_REL.
>
> My current idea:
> - Add two virtual functions
> DefaultLayout::createDynamicRelocationTable() and
> DefaultLayout::getPLTRelocationTable(). Call these functions when we
> need to create relocation tables. By default these function create
> .rela.* sections.
>...
2019 Jan 16
2
[RFC] Adding support for dynamic entries in yaml2obj
...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
Data:...
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
..._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(secstrings+sechdrs[i].sh_name,...
2007 Apr 18
1
[PATCH, experimental] i386 Allow the fixmap to be relocated at boot time
..._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(secstrings+sechdrs[i].sh_name,...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
...trings+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) {
+ /* This is demo...
2007 Apr 18
2
[RFC, PATCH] Fixup COMPAT_VDSO to work with CONFIG_PARAVIRT
...trings+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) {
+ /* This is demo...
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
--