Symbol: src_sec
tools/lib/bpf/linker.c
1140
static int init_sec(struct bpf_linker *linker, struct dst_sec *dst_sec, struct src_sec *src_sec)
tools/lib/bpf/linker.c
1149
dst_sec->ephemeral = src_sec->ephemeral;
tools/lib/bpf/linker.c
1152
if (src_sec->ephemeral)
tools/lib/bpf/linker.c
1170
name_off = strset__add_str(linker->strtab_strs, src_sec->sec_name);
tools/lib/bpf/linker.c
1175
shdr->sh_type = src_sec->shdr->sh_type;
tools/lib/bpf/linker.c
1176
shdr->sh_flags = src_sec->shdr->sh_flags;
tools/lib/bpf/linker.c
1184
shdr->sh_addralign = src_sec->shdr->sh_addralign;
tools/lib/bpf/linker.c
1185
shdr->sh_entsize = src_sec->shdr->sh_entsize;
tools/lib/bpf/linker.c
1187
data->d_type = src_sec->data->d_type;
tools/lib/bpf/linker.c
1190
data->d_align = src_sec->data->d_align;
tools/lib/bpf/linker.c
1211
static bool secs_match(struct dst_sec *dst, struct src_sec *src)
tools/lib/bpf/linker.c
1232
static bool sec_content_is_same(struct dst_sec *dst_sec, struct src_sec *src_sec)
tools/lib/bpf/linker.c
1234
if (dst_sec->sec_sz != src_sec->shdr->sh_size)
tools/lib/bpf/linker.c
1236
if (memcmp(dst_sec->raw_data, src_sec->data->d_buf, dst_sec->sec_sz) != 0)
tools/lib/bpf/linker.c
1259
static int extend_sec(struct bpf_linker *linker, struct dst_sec *dst, struct src_sec *src)
tools/lib/bpf/linker.c
1336
static bool is_data_sec(struct src_sec *sec)
tools/lib/bpf/linker.c
1346
static bool is_relo_sec(struct src_sec *sec)
tools/lib/bpf/linker.c
1358
struct src_sec *src_sec;
tools/lib/bpf/linker.c
1361
src_sec = &obj->secs[i];
tools/lib/bpf/linker.c
1362
if (!is_data_sec(src_sec))
tools/lib/bpf/linker.c
1365
dst_sec = find_dst_sec_by_name(linker, src_sec->sec_name);
tools/lib/bpf/linker.c
1367
dst_sec = add_dst_sec(linker, src_sec->sec_name);
tools/lib/bpf/linker.c
1370
err = init_sec(linker, dst_sec, src_sec);
tools/lib/bpf/linker.c
1372
pr_warn("failed to init section '%s'\n", src_sec->sec_name);
tools/lib/bpf/linker.c
1376
if (!secs_match(dst_sec, src_sec)) {
tools/lib/bpf/linker.c
1377
pr_warn("ELF sections %s are incompatible\n", src_sec->sec_name);
tools/lib/bpf/linker.c
1382
if (strcmp(src_sec->sec_name, "license") == 0
tools/lib/bpf/linker.c
1383
|| strcmp(src_sec->sec_name, "version") == 0) {
tools/lib/bpf/linker.c
1384
if (!sec_content_is_same(dst_sec, src_sec)) {
tools/lib/bpf/linker.c
1385
pr_warn("non-identical contents of section '%s' are not supported\n", src_sec->sec_name);
tools/lib/bpf/linker.c
1388
src_sec->skipped = true;
tools/lib/bpf/linker.c
1389
src_sec->dst_id = dst_sec->id;
tools/lib/bpf/linker.c
1395
src_sec->dst_id = dst_sec->id;
tools/lib/bpf/linker.c
1397
err = extend_sec(linker, dst_sec, src_sec);
tools/lib/bpf/linker.c
1407
struct src_sec *symtab = &obj->secs[obj->symtab_sec_idx];
tools/lib/bpf/linker.c
174
static int linker_sanity_check_elf_symtab(struct src_obj *obj, struct src_sec *sec);
tools/lib/bpf/linker.c
175
static int linker_sanity_check_elf_relos(struct src_obj *obj, struct src_sec *sec);
tools/lib/bpf/linker.c
1911
static struct src_sec *find_src_sec_by_name(struct src_obj *obj, const char *sec_name)
tools/lib/bpf/linker.c
1913
struct src_sec *sec;
tools/lib/bpf/linker.c
1998
struct src_sec *src_sec = NULL;
tools/lib/bpf/linker.c
2018
src_sec = &obj->secs[sym->st_shndx];
tools/lib/bpf/linker.c
2019
if (src_sec->skipped)
tools/lib/bpf/linker.c
2021
dst_sec = &linker->secs[src_sec->dst_id];
tools/lib/bpf/linker.c
2029
if (strcmp(src_sec->sec_name, JUMPTABLES_SEC) == 0)
tools/lib/bpf/linker.c
2055
src_sec = find_src_sec_by_name(obj, sec_name);
tools/lib/bpf/linker.c
2056
if (!src_sec) {
tools/lib/bpf/linker.c
2060
dst_sec = &linker->secs[src_sec->dst_id];
tools/lib/bpf/linker.c
2132
dst_sym->st_value = src_sec->dst_off + sym->st_value;
tools/lib/bpf/linker.c
2163
dst_sym->st_value = (src_sec ? src_sec->dst_off : 0) + sym->st_value;
tools/lib/bpf/linker.c
2198
struct src_sec *src_symtab = &obj->secs[obj->symtab_sec_idx];
tools/lib/bpf/linker.c
2202
struct src_sec *src_sec, *src_linked_sec;
tools/lib/bpf/linker.c
2207
src_sec = &obj->secs[i];
tools/lib/bpf/linker.c
2208
if (!is_relo_sec(src_sec))
tools/lib/bpf/linker.c
2212
src_linked_sec = &obj->secs[src_sec->shdr->sh_info];
tools/lib/bpf/linker.c
2216
dst_sec = find_dst_sec_by_name(linker, src_sec->sec_name);
tools/lib/bpf/linker.c
2218
dst_sec = add_dst_sec(linker, src_sec->sec_name);
tools/lib/bpf/linker.c
2221
err = init_sec(linker, dst_sec, src_sec);
tools/lib/bpf/linker.c
2223
pr_warn("failed to init section '%s'\n", src_sec->sec_name);
tools/lib/bpf/linker.c
2226
} else if (!secs_match(dst_sec, src_sec)) {
tools/lib/bpf/linker.c
2227
pr_warn("sections %s are not compatible\n", src_sec->sec_name);
tools/lib/bpf/linker.c
2238
src_sec->dst_id = dst_sec->id;
tools/lib/bpf/linker.c
2239
err = extend_sec(linker, dst_sec, src_sec);
tools/lib/bpf/linker.c
2243
src_rel = src_sec->data->d_buf;
tools/lib/bpf/linker.c
2244
dst_rel = dst_sec->raw_data + src_sec->dst_off;
tools/lib/bpf/linker.c
2245
n = src_sec->shdr->sh_size / src_sec->shdr->sh_entsize;
tools/lib/bpf/linker.c
2259
struct src_sec *sec = &obj->secs[src_sym->st_shndx];
tools/lib/bpf/linker.c
2292
struct src_sec *symtab = &obj->secs[obj->symtab_sec_idx];
tools/lib/bpf/linker.c
2320
struct src_sec *sec;
tools/lib/bpf/linker.c
2525
struct src_sec *src_sec;
tools/lib/bpf/linker.c
2530
src_sec = &obj->secs[i];
tools/lib/bpf/linker.c
2531
if (!src_sec->sec_type_id || src_sec->skipped)
tools/lib/bpf/linker.c
2533
dst_sec = &linker->secs[src_sec->dst_id];
tools/lib/bpf/linker.c
2545
t = btf__type_by_id(obj->btf, src_sec->sec_type_id);
tools/lib/bpf/linker.c
2603
dst_var->offset = src_sec->dst_off + src_var->offset;
tools/lib/bpf/linker.c
2634
struct src_sec *src_sec;
tools/lib/bpf/linker.c
2646
src_sec = find_src_sec_by_name(obj, sec_name);
tools/lib/bpf/linker.c
2647
if (!src_sec) {
tools/lib/bpf/linker.c
2651
dst_sec = &linker->secs[src_sec->dst_id];
tools/lib/bpf/linker.c
2665
dst_rec->insn_off += src_sec->dst_off;
tools/lib/bpf/linker.c
2675
src_sec = find_src_sec_by_name(obj, sec_name);
tools/lib/bpf/linker.c
2676
if (!src_sec) {
tools/lib/bpf/linker.c
2680
dst_sec = &linker->secs[src_sec->dst_id];
tools/lib/bpf/linker.c
2694
dst_rec->insn_off += src_sec->dst_off;
tools/lib/bpf/linker.c
2717
src_sec = find_src_sec_by_name(obj, sec_name);
tools/lib/bpf/linker.c
2718
if (!src_sec) {
tools/lib/bpf/linker.c
2722
dst_sec = &linker->secs[src_sec->dst_id];
tools/lib/bpf/linker.c
2736
dst_rec->insn_off += src_sec->dst_off;
tools/lib/bpf/linker.c
605
static bool is_ignored_sec(struct src_sec *sec)
tools/lib/bpf/linker.c
642
static struct src_sec *add_src_sec(struct src_obj *obj, const char *sec_name)
tools/lib/bpf/linker.c
644
struct src_sec *secs = obj->secs, *sec;
tools/lib/bpf/linker.c
67
struct src_sec *secs;
tools/lib/bpf/linker.c
672
struct src_sec *sec;
tools/lib/bpf/linker.c
831
struct src_sec *sec;
tools/lib/bpf/linker.c
911
static int linker_sanity_check_elf_symtab(struct src_obj *obj, struct src_sec *sec)
tools/lib/bpf/linker.c
913
struct src_sec *link_sec;
tools/lib/bpf/linker.c
985
static int linker_sanity_check_elf_relos(struct src_obj *obj, struct src_sec *sec)
tools/lib/bpf/linker.c
987
struct src_sec *link_sec, *sym_sec;