perf jit: Include program header in ELF files
[platform/kernel/linux-rpi.git] / tools / perf / util / genelf.c
index 953338b..02cd9f7 100644 (file)
@@ -251,6 +251,7 @@ jit_write_elf(int fd, uint64_t load_addr, const char *sym,
        Elf_Data *d;
        Elf_Scn *scn;
        Elf_Ehdr *ehdr;
+       Elf_Phdr *phdr;
        Elf_Shdr *shdr;
        uint64_t eh_frame_base_offset;
        char *strsym = NULL;
@@ -286,6 +287,19 @@ jit_write_elf(int fd, uint64_t load_addr, const char *sym,
        ehdr->e_shstrndx= unwinding ? 4 : 2; /* shdr index for section name */
 
        /*
+        * setup program header
+        */
+       phdr = elf_newphdr(e, 1);
+       phdr[0].p_type = PT_LOAD;
+       phdr[0].p_offset = 0;
+       phdr[0].p_vaddr = 0;
+       phdr[0].p_paddr = 0;
+       phdr[0].p_filesz = csize;
+       phdr[0].p_memsz = csize;
+       phdr[0].p_flags = PF_X | PF_R;
+       phdr[0].p_align = 8;
+
+       /*
         * setup text section
         */
        scn = elf_newscn(e);