summaryrefslogtreecommitdiffstats
path: root/scripts/gen_ksymdeps.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gen_ksymdeps.sh')
-rwxr-xr-xscripts/gen_ksymdeps.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/gen_ksymdeps.sh b/scripts/gen_ksymdeps.sh
new file mode 100755
index 000000000..8ee533f33
--- /dev/null
+++ b/scripts/gen_ksymdeps.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+
+set -e
+
+# List of exported symbols
+#
+# If the object has no symbol, $NM warns 'no symbols'.
+# Suppress the stderr.
+# TODO:
+# Use -q instead of 2>/dev/null when we upgrade the minimum version of
+# binutils to 2.37, llvm to 13.0.0.
+ksyms=$($NM $1 2>/dev/null | sed -n 's/.*__ksym_marker_\(.*\)/\1/p')
+
+if [ -z "$ksyms" ]; then
+ exit 0
+fi
+
+echo
+echo "ksymdeps_$1 := \\"
+
+for s in $ksyms
+do
+ printf ' $(wildcard include/ksym/%s) \\\n' "$s"
+done
+
+echo
+echo "$1: \$(ksymdeps_$1)"
+echo
+echo "\$(ksymdeps_$1):"