diff options
| author | Andrii Nakryiko <[email protected]> | 2021-05-07 05:41:16 +0000 |
|---|---|---|
| committer | Alexei Starovoitov <[email protected]> | 2021-05-11 22:07:17 +0000 |
| commit | 31332ccb756274c185cfd458b68b29a9371dceac (patch) | |
| tree | a99857c0ae6b765de93e1af75a45f52f3fc4129c /tools/lib/bpf/linker.c | |
| parent | selftests/bpf: Stop using static variables for passing data to/from user-space (diff) | |
| download | kernel-31332ccb756274c185cfd458b68b29a9371dceac.tar.gz kernel-31332ccb756274c185cfd458b68b29a9371dceac.zip | |
bpftool: Stop emitting static variables in BPF skeleton
As discussed in [0], stop emitting static variables in BPF skeletons to avoid
issues with name-conflicting static variables across multiple
statically-linked BPF object files.
Users using static variables to pass data between BPF programs and user-space
should do a trivial one-time switch according to the following simple rules:
- read-only `static volatile const` variables should be converted to
`volatile const`;
- read/write `static volatile` variables should just drop `static volatile`
modifiers to become global variables/symbols. To better handle older Clang
versions, such newly converted global variables should be explicitly
initialized with a specific value or `= 0`/`= {}`, whichever is
appropriate.
[0] https://lore.kernel.org/bpf/CAEf4BzZo7_r-hsNvJt3w3kyrmmBJj7ghGY8+k4nvKF0KLjma=w@mail.gmail.com/T/#m664d4b0d6b31ac8b2669360e0fc2d6962e9f5ec1
Signed-off-by: Andrii Nakryiko <[email protected]>
Signed-off-by: Alexei Starovoitov <[email protected]>
Link: https://lore.kernel.org/bpf/[email protected]
Diffstat (limited to 'tools/lib/bpf/linker.c')
0 files changed, 0 insertions, 0 deletions
