Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision a7efdeccd006858ee92409fe37182c9a8d2a3866)
+++ kernel/generic/src/console/cmd.c	(revision be6038b02a9cb66447514d4b608a01b4083cb42d)
@@ -54,5 +54,4 @@
 #include <macros.h>
 #include <debug.h>
-#include <symtab.h>
 #include <cpu.h>
 #include <mm/tlb.h>
@@ -67,4 +66,8 @@
 #include <ipc/irq.h>
 
+#ifdef CONFIG_SYMTAB
+#include <symtab.h>
+#endif
+
 #ifdef CONFIG_TEST
 #include <test.h>
@@ -168,4 +171,5 @@
 };
 
+#ifdef CONFIG_SYMTAB
 /* Data and methods for 'symaddr' command. */
 static int cmd_symaddr(cmd_arg_t *argv);
@@ -183,4 +187,5 @@
 	.argv = &symaddr_argv
 };
+#endif
 
 static char set_buf[MAX_CMDLINE+1];
@@ -459,5 +464,7 @@
 	&set4_info,
 	&slabs_info,
+#ifdef CONFIG_SYMTAB
 	&symaddr_info,
+#endif
 	&sched_info,
 	&threads_info,
@@ -606,4 +613,6 @@
 }
 
+#ifdef CONFIG_SYMTAB
+
 /** Search symbol table */
 int cmd_symaddr(cmd_arg_t *argv)
@@ -614,12 +623,14 @@
 }
 
+#endif
+
 /** Call function with zero parameters */
 int cmd_call0(cmd_arg_t *argv)
 {
+#ifdef CONFIG_SYMTAB
 	uintptr_t symaddr;
-	char *symbol;
 	unative_t (*fnc)(void);
 	fncptr_t fptr;
-	
+
 	symaddr = get_symbol_addr((char *) argv->buffer);
 	if (!symaddr)
@@ -629,10 +640,9 @@
 		printf("Duplicate symbol, be more specific.\n");
 	} else {
-		symbol = get_symtab_entry(symaddr);
 		fnc = (unative_t (*)(void)) arch_construct_function(&fptr, (void *) symaddr, (void *) cmd_call0);
-		printf("Calling %s() (%p)\n", symbol, symaddr);
+		printf("Calling %s() (%p)\n", argv->buffer, symaddr);
 		printf("Result: %#" PRIxn "\n", fnc());
 	}
-	
+#endif
 	return 1;
 }
@@ -670,4 +680,5 @@
 int cmd_call1(cmd_arg_t *argv)
 {
+#ifdef CONFIG_SYMTAB
 	uintptr_t symaddr;
 	char *symbol;
@@ -677,4 +688,5 @@
 	
 	symaddr = get_symbol_addr((char *) argv->buffer);
+
 	if (!symaddr)
 		printf("Symbol %s not found.\n", argv->buffer);
@@ -688,5 +700,5 @@
 		printf("Result: %#" PRIxn "\n", fnc(arg1));
 	}
-	
+#endif
 	return 1;
 }
@@ -695,4 +707,5 @@
 int cmd_call2(cmd_arg_t *argv)
 {
+#ifdef CONFIG_SYMTAB
 	uintptr_t symaddr;
 	char *symbol;
@@ -714,6 +727,6 @@
 		       arg1, arg2, symaddr, symbol);
 		printf("Result: %#" PRIxn "\n", fnc(arg1, arg2));
-	}
-	
+	}	
+#endif
 	return 1;
 }
@@ -722,4 +735,5 @@
 int cmd_call3(cmd_arg_t *argv)
 {
+#ifdef CONFIG_SYMTAB
 	uintptr_t symaddr;
 	char *symbol;
@@ -743,5 +757,5 @@
 		printf("Result: %#" PRIxn "\n", fnc(arg1, arg2, arg3));
 	}
-	
+#endif
 	return 1;
 }
@@ -798,16 +812,27 @@
 
 	if (((char *)argv->buffer)[0] == '*') {
+#ifdef CONFIG_SYMTAB
 		addr = (uint32_t *) get_symbol_addr((char *) argv->buffer + 1);
+#else
+		addr = 0;
+#endif
 		pointer = true;
 	} else if (((char *) argv->buffer)[0] >= '0' && 
-		   ((char *)argv->buffer)[0] <= '9')
+		   ((char *)argv->buffer)[0] <= '9') {
 		addr = (uint32_t *)atoi((char *)argv->buffer);
-	else
+	} else {
+#ifdef CONFIG_SYMTAB
 		addr = (uint32_t *)get_symbol_addr((char *) argv->buffer);
+#else
+		addr = 0;
+#endif
+	}
 
 	if (!addr)
 		printf("Symbol %s not found.\n", argv->buffer);
 	else if (addr == (uint32_t *) -1) {
+#ifdef CONFIG_SYMTAB
 		symtab_print_search((char *) argv->buffer);
+#endif
 		printf("Duplicate symbol, be more specific.\n");
 	} else {
Index: kernel/generic/src/console/kconsole.c
===================================================================
--- kernel/generic/src/console/kconsole.c	(revision a7efdeccd006858ee92409fe37182c9a8d2a3866)
+++ kernel/generic/src/console/kconsole.c	(revision be6038b02a9cb66447514d4b608a01b4083cb42d)
@@ -51,8 +51,11 @@
 #include <func.h>
 #include <string.h>
-#include <symtab.h>
 #include <macros.h>
 #include <sysinfo/sysinfo.h>
 #include <ddi/device.h>
+
+#ifdef CONFIG_SYMTAB
+#include <symtab.h>
+#endif
 
 /** Simple kernel console.
@@ -259,5 +262,5 @@
 static int cmdtab_compl(char *name)
 {
-	static char output[MAX_SYMBOL_NAME + 1];
+	static char output[/*MAX_SYMBOL_NAME*/128 + 1];
 	link_t *startpos = NULL;
 	const char *foundtxt;
@@ -291,7 +294,6 @@
 		}
 	}
-	strncpy(name, output, MAX_SYMBOL_NAME);
+	strncpy(name, output, 128/*MAX_SYMBOL_NAME*/);
 	return found;
-	
 }
 
@@ -348,5 +350,9 @@
 				found = cmdtab_compl(tmp);
 			} else { /* Symtab completion */
+#ifdef CONFIG_SYMTAB
 				found = symtab_compl(tmp);
+#else
+				found = 0;
+#endif
 			}
 
@@ -516,8 +522,11 @@
 static int parse_int_arg(char *text, size_t len, unative_t *result)
 {
-	static char symname[MAX_SYMBOL_NAME];
 	uintptr_t symaddr;
 	bool isaddr = false;
 	bool isptr = false;
+
+#ifdef CONFIG_SYMTAB
+	static char symname[MAX_SYMBOL_NAME];
+#endif
 	
 	/* If we get a name, try to find it in symbol table */
@@ -532,4 +541,5 @@
 	}
 	if (text[0] < '0' || text[0] > '9') {
+#ifdef CONFIG_SYMTAB
 		strncpy(symname, text, min(len + 1, MAX_SYMBOL_NAME));
 		symaddr = get_symbol_addr(symname);
@@ -543,4 +553,7 @@
 			return -1;
 		}
+#else
+		symaddr = 0;
+#endif
 		if (isaddr)
 			*result = (unative_t)symaddr;
