Re: [PATCH v3 6/7] create/adjust generated/autoksyms.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 18, 2016 at 15:07:02 -0500, Nicolas Pitre wrote:
diff --git a/scripts/adjust_autoksyms.sh b/scripts/adjust_autoksyms.sh
new file mode 100755
index 0000000000..898a3ca1b2
--- /dev/null
+++ b/scripts/adjust_autoksyms.sh
@@ -0,0 +1,97 @@
+#!/bin/sh

Given the here-strings in this script, this should probably be /bin/bash or breakage will ensue on Debian and suchlike where /bin/sh != bash. However...

+sed -ns -e '3s/ /\n/gp' "$MODVERDIR"/*.mod | sort -u |
+while read sym; do
+	if [ -n "$CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX" ]; then
+		sym=$(sed 's/^_//' <<< "$sym")

...this one could (shell-portably and more efficiently) be a parameter expansion (sym="${sym#_}").

+
+# Extract changes between old and new list and touch corresponding
+# dependency files.
+# Note: sort -m doesn't work well with underscore prefixed symbols so we
+# use 'cat ... | sort' instead.
+changed=0
+while read sympath; do
+	[ -z "$sympath" ] && continue
+	depfile="include/config/ksym/${sympath}.h"
+	mkdir -p "$(dirname "$depfile")"
+	touch "$depfile"
+	changed=$((changed + 1))
+done <<< "$(
+	cat "$cur_ksyms_file" "$new_ksyms_file" | sort | uniq -u |
+	sed -n 's/^#define __KSYM_\(.*\) 1/\1/p' | tr "A-Z_" "a-z/"  )"

Nothing super-obvious springs to mind as a pure-sh equivalent for this one though, so assuming the script remains bash-specific, a process substitution like

 done < <(cat ...)

might slightly cleaner than the here-string + command substitution (doesn't need quoting, and just streams through a pipe rather than bash snarfing it all up into a string).

--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux