aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Kubecek <mkubecek@suse.cz>2023-04-19 01:02:21 +0200
committerMichal Kubecek <mkubecek@suse.cz>2023-05-07 23:55:11 +0200
commit2886fe9614e4c6ff5003d9fa0e2acf2b58ed48a2 (patch)
tree810e8dbf647003c9cf16f4248921bedbc4608467
parentda2beb7afc2550b08d974b0ba07246855951571e (diff)
downloadethtool-2886fe9614e4c6ff5003d9fa0e2acf2b58ed48a2.tar.gz
scripts: add ethtool-import-uapi
Add script to update sanitized uapi header copies. This script has been available on kernel.org ethtool web for some time, adding it into the repository is going to make it more at hand and will allow tracking its history publicly. Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
-rwxr-xr-xscripts/ethtool-import-uapi41
1 files changed, 41 insertions, 0 deletions
diff --git a/scripts/ethtool-import-uapi b/scripts/ethtool-import-uapi
new file mode 100755
index 0000000..8e48332
--- /dev/null
+++ b/scripts/ethtool-import-uapi
@@ -0,0 +1,41 @@
+#!/bin/bash -e
+#
+# ethtool-import-uapi [commit]
+#
+# Imports sanitized copies of kernel uapi headers from <commit> (can be
+# a commit id, a tag or a branch name). If the argument is omitted,
+# commit currently checked out in the kernel repository is used.
+
+sn="${0##*/}"
+export ARCH="x86_64"
+mkopt="-j$(nproc)" || mkopt=''
+
+if [ ! -d "$LINUX_GIT" ]; then
+ echo "${sn}: please set LINUX_GIT to the location of kernel git" >&2
+ exit 1
+fi
+
+pushd "$LINUX_GIT"
+if [ -n "$1" ]; then
+ git checkout "$1"
+fi
+desc=$(git describe --exact-match 2>/dev/null \
+ || git show -s --abbrev=12 --pretty='commit %h')
+kobj=$(mktemp -d)
+make $mkopt O="$kobj" allmodconfig
+make $mkopt O="$kobj" prepare
+make $mkopt O="$kobj" INSTALL_HDR_PATH="${kobj}/hdr" headers_install
+popd
+
+pushd uapi
+find . -type f -name '*.h' -exec cp -v "${kobj}/hdr/include/{}" {} \;
+popd
+rm -rf "$kobj"
+
+git add uapi
+git commit -s -F - <<EOT
+update UAPI header copies
+
+Update to kernel ${desc}.
+
+EOT