[RFC PATCH bpf-next 0/7] BPF static linker: global symbols visibility

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This RFC explores dropping static variables from BPF skeleton and leaving them
for use only within BPF object file. Instead, BPF static linker is extended
with support for controlling global symbol visibility outside of a single BPF
object file through STV_HIDDEN and STV_INTERNAL ELF symbol visibility.

See patch #7 for all the details, justification, and comparison with
user-space linker behavior.

Andrii Nakryiko (7):
  bpftool: strip const/volatile/restrict modifiers from .bss and .data
    vars
  libbpf: add per-file linker opts
  selftests/bpf: stop using static variables for passing data to/from
    user-space
  bpftool: stop emitting static variables in BPF skeleton
  libbpf: fix ELF symbol visibility update logic
  libbpf: treat STV_INTERNAL same as STV_HIDDEN for functions
  libbpf: convert STV_HIDDEN symbols into STV_INTERNAL after linking

 tools/bpf/bpftool/gen.c                       |  8 ++-
 tools/lib/bpf/libbpf.c                        | 11 ++--
 tools/lib/bpf/libbpf.h                        | 10 ++-
 tools/lib/bpf/linker.c                        | 62 +++++++++++++++----
 .../selftests/bpf/prog_tests/send_signal.c    |  2 +-
 .../selftests/bpf/prog_tests/skeleton.c       |  6 +-
 .../selftests/bpf/prog_tests/static_linked.c  |  5 --
 .../selftests/bpf/progs/bpf_iter_test_kern4.c |  4 +-
 tools/testing/selftests/bpf/progs/kfree_skb.c |  4 +-
 tools/testing/selftests/bpf/progs/tailcall3.c |  2 +-
 tools/testing/selftests/bpf/progs/tailcall4.c |  2 +-
 tools/testing/selftests/bpf/progs/tailcall5.c |  2 +-
 .../selftests/bpf/progs/tailcall_bpf2bpf2.c   |  2 +-
 .../selftests/bpf/progs/tailcall_bpf2bpf4.c   |  2 +-
 .../selftests/bpf/progs/test_check_mtu.c      |  4 +-
 .../selftests/bpf/progs/test_cls_redirect.c   |  4 +-
 .../bpf/progs/test_global_func_args.c         |  2 +-
 .../selftests/bpf/progs/test_rdonly_maps.c    |  6 +-
 .../selftests/bpf/progs/test_skeleton.c       |  4 +-
 .../bpf/progs/test_snprintf_single.c          |  2 +-
 .../selftests/bpf/progs/test_sockmap_listen.c |  4 +-
 .../selftests/bpf/progs/test_static_linked1.c |  8 +--
 .../selftests/bpf/progs/test_static_linked2.c |  8 +--
 23 files changed, 105 insertions(+), 59 deletions(-)

-- 
2.30.2




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux