Lines Matching +full:- +full:section
1 // SPDX-License-Identifier: GPL-2.0-only
43 …'.', 'n', 'o', 't', 'e', '.', 'g', 'n', 'u', '.', 'b', 'u', 'i', 'l', 'd', '-', 'i', 'd', 0, /* 33…
52 Elf_Note desc; /* descsz: size of build-id, must be multiple of 4 */
82 uint64_t unwinding_table_size = unwinding_size - unwinding_header_size; in jit_add_eh_frame_info()
85 * setup eh_frame section in jit_add_eh_frame_info()
89 warnx("cannot create section"); in jit_add_eh_frame_info()
90 return -1; in jit_add_eh_frame_info()
96 return -1; in jit_add_eh_frame_info()
99 d->d_align = 8; in jit_add_eh_frame_info()
100 d->d_off = 0LL; in jit_add_eh_frame_info()
101 d->d_buf = unwinding; in jit_add_eh_frame_info()
102 d->d_type = ELF_T_BYTE; in jit_add_eh_frame_info()
103 d->d_size = unwinding_table_size; in jit_add_eh_frame_info()
104 d->d_version = EV_CURRENT; in jit_add_eh_frame_info()
108 warnx("cannot get section header"); in jit_add_eh_frame_info()
109 return -1; in jit_add_eh_frame_info()
112 shdr->sh_name = 104; in jit_add_eh_frame_info()
113 shdr->sh_type = SHT_PROGBITS; in jit_add_eh_frame_info()
114 shdr->sh_addr = base_offset; in jit_add_eh_frame_info()
115 shdr->sh_flags = SHF_ALLOC; in jit_add_eh_frame_info()
116 shdr->sh_entsize = 0; in jit_add_eh_frame_info()
119 * setup eh_frame_hdr section in jit_add_eh_frame_info()
123 warnx("cannot create section"); in jit_add_eh_frame_info()
124 return -1; in jit_add_eh_frame_info()
130 return -1; in jit_add_eh_frame_info()
133 d->d_align = 4; in jit_add_eh_frame_info()
134 d->d_off = 0LL; in jit_add_eh_frame_info()
135 d->d_buf = unwinding + unwinding_table_size; in jit_add_eh_frame_info()
136 d->d_type = ELF_T_BYTE; in jit_add_eh_frame_info()
137 d->d_size = unwinding_header_size; in jit_add_eh_frame_info()
138 d->d_version = EV_CURRENT; in jit_add_eh_frame_info()
142 warnx("cannot get section header"); in jit_add_eh_frame_info()
143 return -1; in jit_add_eh_frame_info()
146 shdr->sh_name = 90; in jit_add_eh_frame_info()
147 shdr->sh_type = SHT_PROGBITS; in jit_add_eh_frame_info()
148 shdr->sh_addr = base_offset + unwinding_table_size; in jit_add_eh_frame_info()
149 shdr->sh_flags = SHF_ALLOC; in jit_add_eh_frame_info()
150 shdr->sh_entsize = 0; in jit_add_eh_frame_info()
158 * sym: function name (for native code - used as the symbol)
177 int retval = -1; in jit_write_elf()
181 return -1; in jit_write_elf()
199 ehdr->e_ident[EI_DATA] = GEN_ELF_ENDIAN; in jit_write_elf()
200 ehdr->e_ident[EI_CLASS] = GEN_ELF_CLASS; in jit_write_elf()
201 ehdr->e_machine = GEN_ELF_ARCH; in jit_write_elf()
202 ehdr->e_type = ET_DYN; in jit_write_elf()
203 ehdr->e_entry = GEN_ELF_TEXT_OFFSET; in jit_write_elf()
204 ehdr->e_version = EV_CURRENT; in jit_write_elf()
205 ehdr->e_shstrndx= unwinding ? 4 : 2; /* shdr index for section name */ in jit_write_elf()
221 * setup text section in jit_write_elf()
225 warnx("cannot create section"); in jit_write_elf()
235 d->d_align = 16; in jit_write_elf()
236 d->d_off = 0LL; in jit_write_elf()
237 d->d_buf = (void *)code; in jit_write_elf()
238 d->d_type = ELF_T_BYTE; in jit_write_elf()
239 d->d_size = csize; in jit_write_elf()
240 d->d_version = EV_CURRENT; in jit_write_elf()
244 warnx("cannot get section header"); in jit_write_elf()
248 shdr->sh_name = 1; in jit_write_elf()
249 shdr->sh_type = SHT_PROGBITS; in jit_write_elf()
250 shdr->sh_addr = GEN_ELF_TEXT_OFFSET; in jit_write_elf()
251 shdr->sh_flags = SHF_EXECINSTR | SHF_ALLOC; in jit_write_elf()
252 shdr->sh_entsize = 0; in jit_write_elf()
264 retval = -1; in jit_write_elf()
268 * setup section headers string table in jit_write_elf()
272 warnx("cannot create section"); in jit_write_elf()
282 d->d_align = 1; in jit_write_elf()
283 d->d_off = 0LL; in jit_write_elf()
284 d->d_buf = shd_string_table; in jit_write_elf()
285 d->d_type = ELF_T_BYTE; in jit_write_elf()
286 d->d_size = sizeof(shd_string_table); in jit_write_elf()
287 d->d_version = EV_CURRENT; in jit_write_elf()
291 warnx("cannot get section header"); in jit_write_elf()
295 shdr->sh_name = 7; /* offset of '.shstrtab' in shd_string_table */ in jit_write_elf()
296 shdr->sh_type = SHT_STRTAB; in jit_write_elf()
297 shdr->sh_flags = 0; in jit_write_elf()
298 shdr->sh_entsize = 0; in jit_write_elf()
301 * setup symtab section in jit_write_elf()
308 warnx("cannot create section"); in jit_write_elf()
318 d->d_align = 8; in jit_write_elf()
319 d->d_off = 0LL; in jit_write_elf()
320 d->d_buf = symtab; in jit_write_elf()
321 d->d_type = ELF_T_SYM; in jit_write_elf()
322 d->d_size = sizeof(symtab); in jit_write_elf()
323 d->d_version = EV_CURRENT; in jit_write_elf()
327 warnx("cannot get section header"); in jit_write_elf()
331 shdr->sh_name = 17; /* offset of '.symtab' in shd_string_table */ in jit_write_elf()
332 shdr->sh_type = SHT_SYMTAB; in jit_write_elf()
333 shdr->sh_flags = 0; in jit_write_elf()
334 shdr->sh_entsize = sizeof(Elf_Sym); in jit_write_elf()
335 shdr->sh_link = unwinding ? 6 : 4; /* index of .strtab section */ in jit_write_elf()
351 warnx("cannot create section"); in jit_write_elf()
361 d->d_align = 1; in jit_write_elf()
362 d->d_off = 0LL; in jit_write_elf()
363 d->d_buf = strsym; in jit_write_elf()
364 d->d_type = ELF_T_BYTE; in jit_write_elf()
365 d->d_size = symlen; in jit_write_elf()
366 d->d_version = EV_CURRENT; in jit_write_elf()
370 warnx("cannot get section header"); in jit_write_elf()
374 shdr->sh_name = 25; /* offset in shd_string_table */ in jit_write_elf()
375 shdr->sh_type = SHT_STRTAB; in jit_write_elf()
376 shdr->sh_flags = 0; in jit_write_elf()
377 shdr->sh_entsize = 0; in jit_write_elf()
380 * setup build-id section in jit_write_elf()
384 warnx("cannot create section"); in jit_write_elf()
395 * build-id generation in jit_write_elf()
403 d->d_align = 4; in jit_write_elf()
404 d->d_off = 0LL; in jit_write_elf()
405 d->d_buf = &bnote; in jit_write_elf()
406 d->d_type = ELF_T_BYTE; in jit_write_elf()
407 d->d_size = sizeof(bnote); in jit_write_elf()
408 d->d_version = EV_CURRENT; in jit_write_elf()
412 warnx("cannot get section header"); in jit_write_elf()
416 shdr->sh_name = 33; /* offset in shd_string_table */ in jit_write_elf()
417 shdr->sh_type = SHT_NOTE; in jit_write_elf()
418 shdr->sh_addr = 0x0; in jit_write_elf()
419 shdr->sh_flags = SHF_ALLOC; in jit_write_elf()
420 shdr->sh_size = sizeof(bnote); in jit_write_elf()
421 shdr->sh_entsize = 0; in jit_write_elf()