Displaying 4 results from an estimated 4 matches for "elf64_r_bits".
2017 Dec 09
2
Reducing code size of Position Independent Executables (PIE) by shrinking the size of dynamic relocations section
...apply the relocation to. This is best
> described by showing the code for decoding the section:
>
> typedef struct
> {
> Elf64_Xword r_data; /* jump and bitmap for relative relocations */
> } Elf64_Relrz;
>
> #define ELF64_R_JUMP(val) ((val) >> 56)
> #define ELF64_R_BITS(val) ((val) & 0xffffffffffffff)
>
> #ifdef DO_RELRZ
> {
> ElfW(Addr) offset = 0;
> for (; relative < end; ++relative)
> {
> ElfW(Addr) jump = ELFW(R_JUMP) (relative->r_data);
> ElfW(Addr) bits = ELFW(R_BITS) (relative->r_data);...
2017 May 08
4
Reducing code size of Position Independent Executables (PIE) by shrinking the size of dynamic relocations section
+llvm-dev
Discussion here: https://sourceware.org/ml/gnu-gabi/2017-q2/msg00000.html
On Tue, May 2, 2017 at 10:17 AM, Suprateeka R Hegde
<hegdesmailbox at gmail.com> wrote:
> On 02-May-2017 12:05 AM, Florian Weimer wrote:
>> On 05/01/2017 08:28 PM, Suprateeka R Hegde wrote:
>>> So the ratio shows ~96% is RELATIVE reloc. And only ~4% others. This is
>>> not the
2017 Dec 07
0
Reducing code size of Position Independent Executables (PIE) by shrinking the size of dynamic relocations section
...56-bits contain a bitmap for which words to apply
the relocation to. This is best described by showing the code for decoding the
section:
typedef struct
{
Elf64_Xword r_data; /* jump and bitmap for relative relocations */
} Elf64_Relrz;
#define ELF64_R_JUMP(val) ((val) >> 56)
#define ELF64_R_BITS(val) ((val) & 0xffffffffffffff)
#ifdef DO_RELRZ
{
ElfW(Addr) offset = 0;
for (; relative < end; ++relative)
{
ElfW(Addr) jump = ELFW(R_JUMP) (relative->r_data);
ElfW(Addr) bits = ELFW(R_BITS) (relative->r_data);
offset += jump * sizeof(ElfW(A...
2017 Dec 11
2
Reducing code size of Position Independent Executables (PIE) by shrinking the size of dynamic relocations section
...the code for decoding the section:
>>>
>>> typedef struct
>>> {
>>> Elf64_Xword r_data; /* jump and bitmap for relative relocations */
>>> } Elf64_Relrz;
>>>
>>> #define ELF64_R_JUMP(val) ((val) >> 56)
>>> #define ELF64_R_BITS(val) ((val) & 0xffffffffffffff)
>>>
>>> #ifdef DO_RELRZ
>>> {
>>> ElfW(Addr) offset = 0;
>>> for (; relative < end; ++relative)
>>> {
>>> ElfW(Addr) jump = ELFW(R_JUMP) (relative->r_data);
>>&g...