On Fri, 2 Aug 2019 at 09:19, Andrii Nakryiko <andrii.nakryiko@xxxxxxxxx> wrote: > > On Thu, Aug 1, 2019 at 12:34 AM Björn Töpel <bjorn.topel@xxxxxxxxx> wrote: > > [...] > > > > Old application, dynamically linked to new libbpf.so will crash, > > right? Old application passes old version of xsk_umem_config, and new > > library accesses (non-existing) flag struct member. > > I think we have similar problems for all the _xattr type of commands > (as well some of btf stuff accepting extra opts structs). How is this > problem solved in general? Do we version same function multiple times, > one for each added field? It feels like there should be some better > way to handle this... > If the size of the struct was passed as an argument (and extra care is taken when adding members to the struct), it could be handled w/o versioning... but that's not the case here. :-( Versioning is a mess to deal with, so I'd be happy if it could be avoided...