]> git.proxmox.com Git - mirror_spl-debian.git/commitdiff
Remove the gawk dependency.
authorDarik Horn <dajhorn@vanadac.com>
Thu, 14 Apr 2011 19:01:22 +0000 (14:01 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 21 Apr 2011 16:41:09 +0000 (09:41 -0700)
This reverts commit 1814251453c8140f50170ad29d9105c1273d7e08.

Demote the gawk call back to awk and ensure that stderr is attached.  GNU gawk
tolerates a missing stderr handle, but many utilities do not, which could be
why a regular awk call was unexplainably failing on some systems.

Use argv[0] instead of sh_path for consistency internally and with other Linux
drivers.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
config/spl-build.m4
configure
module/spl/spl-generic.c

index 97b38234bcb95cbdd6c1051f8c574741db7a1677..b25db38f3e305db693264cef449498f4579af8c7 100644 (file)
@@ -211,25 +211,10 @@ AC_DEFUN([SPL_AC_KERNEL_CONFIG], [
                ** You must rebuild your kernel without this option.]), [])
 ])
 
-dnl #
-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.
-dnl #
-AC_DEFUN([SPL_AC_GAWK], [
-       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.])
-       ])
-])
-
 dnl #
 dnl # Default SPL user configuration
 dnl #
-AC_DEFUN([SPL_AC_CONFIG_USER], [
-       SPL_AC_GAWK
-])
+AC_DEFUN([SPL_AC_CONFIG_USER], [])
 
 dnl #
 dnl # Check for rpm+rpmbuild to build RPM packages.  If these tools
index d05ff84aca911576acd0fc19a99c748ab6dc57bb..1fb10af363dd46ea407c800676d7b41ed3bfa0d1 100755 (executable)
--- a/configure
+++ b/configure
 
 
  ;;
-                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
-
-
-   ;;
+                user)      ;;
                 all)
 
 
 
 
 
-
-
-       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
index 680655d0f89a4172bcd71bf5ec511f7cb4b945bc..65465414842bbe5381682fd8874123d17c826fd6 100644 (file)
@@ -414,21 +414,25 @@ EXPORT_SYMBOL(zone_get_hostid);
 
 #ifndef HAVE_KALLSYMS_LOOKUP_NAME
 /*
- * Because kallsyms_lookup_name() is no longer exported in the
- * mainline kernel we are forced to resort to somewhat drastic
- * measures.  This function replaces the functionality by performing
- * an upcall to user space where /proc/kallsyms is consulted for
- * the requested address.
+ * The kallsyms_lookup_name() kernel function is not an exported symbol in
+ * Linux 2.6.19 through 2.6.32 inclusive.
+ *
+ * This function replaces the functionality by performing an upcall to user
+ * space where /proc/kallsyms is consulted for the requested address.
+ *
  */
-#define GET_KALLSYMS_ADDR_CMD                                          \
-       "gawk '{ if ( $3 == \"kallsyms_lookup_name\") { print $1 } }' " \
-       "/proc/kallsyms >/proc/sys/kernel/spl/kallsyms_lookup_name"
+
+#define GET_KALLSYMS_ADDR_CMD \
+       "exec 0</dev/null " \
+       "     1>/proc/sys/kernel/spl/kallsyms_lookup_name " \
+       "     2>/dev/null; " \
+       "awk  '{ if ( $3 == \"kallsyms_lookup_name\" ) { print $1 } }' " \
+       "     /proc/kallsyms "
 
 static int
 set_kallsyms_lookup_name(void)
 {
-       char sh_path[] = "/bin/sh";
-       char *argv[] = { sh_path,
+       char *argv[] = { "/bin/sh",
                         "-c",
                         GET_KALLSYMS_ADDR_CMD,
                         NULL };
@@ -438,7 +442,7 @@ set_kallsyms_lookup_name(void)
                         NULL };
        int rc;
 
-       rc = call_usermodehelper(sh_path, argv, envp, 1);
+       rc = call_usermodehelper(argv[0], argv, envp, 1);
        if (rc)
                printk("SPL: Failed user helper '%s %s %s', rc = %d\n",
                       argv[0], argv[1], argv[2], rc);