From 1814251453c8140f50170ad29d9105c1273d7e08 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 1 Jul 2010 16:20:11 -0700 Subject: [PATCH] Require gawk the usermode helper fails with awk For some reason when awk invoked by the usermode helper the command always fails. Interestingly gawk does not suffer from this problem which is why I never observed this failure since the distro I tested with all had gawk installed instead of awk. Anyway, the simplest thing to do here is to just make gawk mandatory. I've added a configure check for gawk specifically and have updated the command to call gawk not awk. --- config/spl-build.m4 | 11 ++++++++++- configure | 30 ++++++++++++++++++++++++++++-- module/spl/spl-generic.c | 2 +- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/config/spl-build.m4 b/config/spl-build.m4 index 40f072bf7..4d6109a0e 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -191,7 +191,16 @@ AC_DEFUN([SPL_AC_KERNEL], [ dnl # dnl # Default SPL user configuration dnl # -AC_DEFUN([SPL_AC_CONFIG_USER], []) +AC_DEFUN([SPL_AC_CONFIG_USER], [ + dnl # Explicitly check for gawk, we require it for the the usermode + dnl # helper. For some reason the standard awk command does not + dnl # behave correctly when invoked from the usermode helper. + AS_IF([test "x$AWK" != xgawk], [ + AC_MSG_ERROR([ + *** Required util gawk missing. Please install the required + *** gawk package for your distribution and try again.]) + ]) +]) AC_DEFUN([SPL_AC_LICENSE], [ AC_MSG_CHECKING([spl license]) diff --git a/configure b/configure index 4c5df996f..8792553fe 100755 --- a/configure +++ b/configure @@ -14988,7 +14988,20 @@ _ACEOF ;; - user) ;; + user) + if test "x$AWK" != xgawk; then + + { { $as_echo "$as_me:$LINENO: error: + *** Required util gawk missing. Please install the required + *** gawk package for your distribution and try again." >&5 +$as_echo "$as_me: error: + *** Required util gawk missing. Please install the required + *** gawk package for your distribution and try again." >&2;} + { (exit 1); exit 1; }; } + +fi + + ;; all) @@ -18501,7 +18514,20 @@ _ACEOF - ;; + + if test "x$AWK" != xgawk; then + + { { $as_echo "$as_me:$LINENO: error: + *** Required util gawk missing. Please install the required + *** gawk package for your distribution and try again." >&5 +$as_echo "$as_me: error: + *** Required util gawk missing. Please install the required + *** gawk package for your distribution and try again." >&2;} + { (exit 1); exit 1; }; } + +fi + + ;; srpm) ;; *) { $as_echo "$as_me:$LINENO: result: Error!" >&5 diff --git a/module/spl/spl-generic.c b/module/spl/spl-generic.c index 956be6882..b9ab7109a 100644 --- a/module/spl/spl-generic.c +++ b/module/spl/spl-generic.c @@ -338,7 +338,7 @@ EXPORT_SYMBOL(zone_get_hostid); * the requested address. */ #define GET_KALLSYMS_ADDR_CMD \ - "awk '{ if ( $3 == \"kallsyms_lookup_name\") { print $1 } }' " \ + "gawk '{ if ( $3 == \"kallsyms_lookup_name\") { print $1 } }' " \ "/proc/kallsyms >/proc/sys/kernel/spl/kallsyms_lookup_name" static int -- 2.40.0