Thread (8 messages) 8 messages, 3 authors, 2023-12-11

Re: [PATCH v6 1/3] check-uapi: Introduce check-uapi.sh

From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2023-11-14 12:25:01
Also in: linux-arm-msm, linux-kbuild, lkml

On Tue, Nov 14, 2023 at 07:10:51PM +0900, Masahiro Yamada wrote:
On Sat, Oct 28, 2023 at 4:31 AM John Moon [off-list ref] wrote:
quoted
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 <redacted>
---
    - Add abidiff suppressions to filter out common things like enum
      variants named .*_MAX being changed and expansion into padding
      fields.
    - Bump minimum abidiff version to 2.4 to accomodate new
      suppressions.
    - Add option (-i) to suppress ambiguous breaking changes.
    - Remove printing of full file diffs when ABI breakage is found
      as this was too noisy.
    - Wait for all files to be checked before printing results as
      printing from parallel threads was garbling output.
    - Suppress all output when -q is passed.
    - Avoid messing up user's git tree by using "git archive" instead
      of checking out references.


The code looks almost good to me.

(I left some more comments below, but they are minor).



Greg,
Could you check the output from the tool?
I will, give me a chance to catch up after the merge window and this
week at Plumbers....  Should be a week or so, thanks.

greg k-h

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help