Re: [PATCH v4 bpf-next 00/12] BPF static linking

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

 



On Thu, Mar 18, 2021 at 12:42 PM Andrii Nakryiko <andrii@xxxxxxxxxx> wrote:
>
> This patch set adds new libbpf APIs and their bpftool integration that allows
> to perform static linking of BPF object files. Currently no extern resolution
> across object files is performed. This is going to be the focus of the follow
> up patches. But, given amount of code and logic necessary to perform just
> basic functionality of linking together mostly independent BPF object files,
> it was decided to land basic BPF linker code and logic first and extend it
> afterwards.
>
> The motivation for BPF static linking is to provide the functionality that is
> naturally assumed for user-space development process: ability to structure
> application's code without artificial restrictions of having all the code and
> data (variables and maps) inside a single source code file.
>
> This enables better engineering practices of splitting code into
> well-encapsulated parts. It provides ability to hide internal state from other
> parts of the code base through static variables and maps. It is also a first
> steps towards having generic reusable BPF libraries.
>
> Please see individual patches (mostly #6 and #7) for more details. Patch #10
> passes all test_progs' individual BPF .o files through BPF static linker,
> which is supposed to be a no-op operation, so is essentially validating that
> BPF static linker doesn't produce corrupted ELF object files. Patch #11 adds
> Makefile infra to be able to specify multi-file BPF object files and adds the
> first multi-file test to validate correctness.
>
> v3->v4:
>   - fix Makefile copy/paste error of diff'ing invalid object files (Alexei);
>   - fix uninitialized obj_name variable that could lead to bogus object names
>     being used during skeleton generation (kernel-patches CI);

Applied.



[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