On Tue, Dec 12, 2023 at 11:04 AM John Moon <quic_johmoo@xxxxxxxxxxx> wrote: > > While the kernel community has been good at maintaining backwards > compatibility with kernel UAPIs, it would be helpful to have a tool > to check if a commit introduces changes that break backwards > compatibility. > > To that end, introduce check-uapi.sh: a simple shell script that > checks for changes to UAPI headers using libabigail. > > libabigail is "a framework which aims at helping developers and > software distributors to spot some ABI-related issues like interface > incompatibility in ELF shared libraries by performing a static > analysis of the ELF binaries at hand." > > The script uses one of libabigail's tools, "abidiff", to compile the > changed header before and after the commit to detect any changes. > > abidiff "compares the ABI of two shared libraries in ELF format. It > emits a meaningful report describing the differences between the two > ABIs." > > The script also includes the ability to check the compatibility of > all UAPI headers across commits. This allows developers to inspect > the stability of the UAPIs over time. > > Signed-off-by: John Moon <quic_johmoo@xxxxxxxxxxx> > --- > - Applied minor code style suggestions from v6 review. The code looks OK. I think it should work as designed. Line 197 is inconsistently indented by spaces instead of a space, but I can fix it up locally. I just thought requiring target commits as positional parameters ("check-uapi.sh treeA treeB" just like "git diff treeA treeB") might be intuitive, but I guess everything is specified by a short option is a design. I can live with that. I will wait a few days, and if there is nothing more, I will pick up 1/3 and 2/3. -- Best Regards Masahiro Yamada