diff --git a/src/globals.h b/src/globals.h
index 0cc7c9b..8fb4340 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1998,21 +1998,23 @@
 # endif
 		;
 
-EXTERN int did_repeated_msg INIT(= 0);
-# define REPEATED_MSG_LOOKING	    1
-# define REPEATED_MSG_SAFESTATE	    2
+// Whether a redraw is needed for appending a line to a buffer.
+EXTERN int channel_need_redraw INIT(= FALSE);
 
+# define FOR_ALL_CHANNELS(ch) \
+    for ((ch) = first_channel; (ch) != NULL; (ch) = (ch)->ch_next)
+# define FOR_ALL_JOBS(job) \
+    for ((job) = first_job; (job) != NULL; (job) = (job)->jv_next)
+#endif
+
+#ifdef FEAT_EVAL
 // This flag is set when outputting a terminal control code and reset in
 // out_flush() when characters have been written.
 EXTERN int ch_log_output INIT(= FALSE);
 
-// Whether a redraw is needed for appending a line to a buffer.
-EXTERN int channel_need_redraw INIT(= FALSE);
-
-#define FOR_ALL_CHANNELS(ch) \
-    for ((ch) = first_channel; (ch) != NULL; (ch) = (ch)->ch_next)
-#define FOR_ALL_JOBS(job) \
-    for ((job) = first_job; (job) != NULL; (job) = (job)->jv_next)
+EXTERN int did_repeated_msg INIT(= 0);
+# define REPEATED_MSG_LOOKING	    1
+# define REPEATED_MSG_SAFESTATE	    2
 #endif
 
 #if defined(FEAT_DIFF)
diff --git a/src/logfile.c b/src/logfile.c
index 3ab2c0f..6c159b0 100644
--- a/src/logfile.c
+++ b/src/logfile.c
@@ -75,7 +75,7 @@
 }
 
     static void
-ch_log_lead(const char *what, channel_T *ch, ch_part_T part)
+ch_log_lead(const char *what, channel_T *ch UNUSED, ch_part_T part UNUSED)
 {
     if (log_fd == NULL)
 	return;
diff --git a/src/message.c b/src/message.c
index a2fc008..591691f 100644
--- a/src/message.c
+++ b/src/message.c
@@ -37,7 +37,7 @@
 static char_u	*confirm_msg_tail;		// tail of confirm_msg
 static void display_confirm_msg(void);
 #endif
-#ifdef FEAT_JOB_CHANNEL
+#ifdef FEAT_EVAL
 static int emsg_to_channel_log = FALSE;
 #endif
 
diff --git a/src/proto.h b/src/proto.h
index 4c7f8c9..9d1e134 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -263,11 +263,12 @@
 # ifdef FEAT_JOB_CHANNEL
 #  include "job.pro"
 #  include "channel.pro"
+# endif
 
+# ifdef FEAT_EVAL
 // Not generated automatically so that we can add an extra attribute.
 void ch_log(channel_T *ch, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
 void ch_error(channel_T *ch, const char *fmt, ...) ATTRIBUTE_FORMAT_PRINTF(2, 3);
-
 # endif
 
 # if defined(FEAT_GUI) || defined(FEAT_JOB_CHANNEL)
diff --git a/src/typval.c b/src/typval.c
index a445bf8..b1a0060 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -619,6 +619,16 @@
     return (args[idx].v_type == VAR_UNKNOWN
 	    || check_for_job_arg(args, idx) != FAIL) ? OK : FAIL;
 }
+#else
+/*
+ * Give an error and return FAIL unless "args[idx]" is an optional channel or a
+ * job.  Used without the +channel feature, thus only VAR_UNKNOWN is accepted.
+ */
+    int
+check_for_opt_chan_or_job_arg(typval_T *args, int idx)
+{
+    return args[idx].v_type == VAR_UNKNOWN ? OK : FAIL;
+}
 #endif
 
 /*
diff --git a/src/version.c b/src/version.c
index 528b804..537f6aa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    978,
+/**/
     977,
 /**/
     976,
