Displaying 4 results from an estimated 4 matches for "do_relrz".
Did you mean:
do_reloc
2017 Dec 09
2
Reducing code size of Position Independent Executables (PIE) by shrinking the size of dynamic relocations section
...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(Addr));
> i...
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
...tion 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(Addr));
if (jump == 0)
{
++...
2017 Dec 11
2
Reducing code size of Position Independent Executables (PIE) by shrinking the size of dynamic relocations section
...> {
>>> 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);
>>>...