]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
check-uapi: link into shared objects
authorArnd Bergmann <arnd@arndb.de>
Fri, 6 Mar 2026 16:33:07 +0000 (17:33 +0100)
committerNicolas Schier <nsc@kernel.org>
Fri, 20 Mar 2026 20:43:35 +0000 (21:43 +0100)
While testing ABI changes across all architectures, I found that abidiff
sometimes produces nonsensical output. Further debugging identified
missing or broken libelf support for architecture specific relocations
in ET_REL binaries as the source of the problem[1].

Change the script to no longer produce a relocatable object file but
instead create a shared library for each header. This makes abidiff
work for all of the architectures in upstream linux kernels.

Link: https://sourceware.org/bugzilla/show_bug.cgi?id=33869
Cc: stable@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Thomas Weißschuh <linux@weissschuh.net>
Acked-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20260306163309.2015837-2-arnd@kernel.org
Signed-off-by: Nicolas Schier <nsc@kernel.org>
scripts/check-uapi.sh

index 955581735cb3c371fc6ea7043bf8845911f837c3..9fa45cbdecc25707128a0ea3dca70335709a2a17 100755 (executable)
@@ -178,8 +178,11 @@ do_compile() {
        local -r inc_dir="$1"
        local -r header="$2"
        local -r out="$3"
-       printf "int main(void) { return 0; }\n" | \
-               "$CC" -c \
+       printf "int f(void) { return 0; }\n" | \
+               "$CC" \
+                 -shared \
+                 -nostdlib \
+                 -fPIC \
                  -o "$out" \
                  -x c \
                  -O0 \