On 3/27/2023 10:41 AM, John Moon 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> --- - Refactored to exclusively check headers installed by make headers_install. This simplified the code dramatically and removed the need to perform complex git diffs. - Removed the "-m" flag. Since we're checking all installed headers every time, a flag to check only modified files didn't make sense. - Added info message when usr/include/Makefile is not present that it's likely because that file was only introduced in v5.3. - Changed default behavior of log file. Now, the script will not create a log file unless you pass "-l <file>". - Simplified exit handler. - Added -j $MAX_THREADS to make headers_install to improve speed. - Cleaned up variable references.
Hi Masahiro, just a friendly reminder about this patch. I believe we've addressed all of your comments from previous reviews and we're looking forward to your feedback on this version.
Thanks so much! - John