Index: kernel/Makefile.build
===================================================================
--- kernel/Makefile.build	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/Makefile.build	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -56,5 +56,6 @@
 	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
 	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -Werror -pipe
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-Werror -pipe
 
 ICC_CFLAGS = -I$(INCLUDES) -O$(OPTIMIZATION) -imacros ../config.h \
@@ -69,6 +70,7 @@
 	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
 	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
-	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -pipe \
-	-arch $(CLANG_ARCH)
+	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-pipe -arch $(CLANG_ARCH)
 
 LFLAGS = -M
Index: kernel/arch/abs32le/src/abs32le.c
===================================================================
--- kernel/arch/abs32le/src/abs32le.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/abs32le/src/abs32le.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -114,5 +114,5 @@
 }
 
-void panic_printf(char *fmt, ...)
+void panic_printf(const char *fmt, ...)
 {
 	va_list args;
Index: kernel/arch/amd64/src/cpu/cpu.c
===================================================================
--- kernel/arch/amd64/src/cpu/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/amd64/src/cpu/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -62,5 +62,5 @@
 };
 
-static char *vendor_str[] = {
+static const char *vendor_str[] = {
 	"Unknown Vendor",
 	"AuthenticAMD",
Index: kernel/arch/amd64/src/debugger.c
===================================================================
--- kernel/arch/amd64/src/debugger.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/amd64/src/debugger.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -339,5 +339,4 @@
 {
 	unsigned int i;
-	char *symbol;
 
 #ifdef __32_BITS__
@@ -353,5 +352,5 @@
 	for (i = 0; i < BKPOINTS_MAX; i++)
 		if (breakpoints[i].address) {
-			symbol = symtab_fmt_name_lookup(
+			const char *symbol = symtab_fmt_name_lookup(
 			    breakpoints[i].address);
 
Index: kernel/arch/amd64/src/interrupt.c
===================================================================
--- kernel/arch/amd64/src/interrupt.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/amd64/src/interrupt.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -65,8 +65,6 @@
 void decode_istate(int n, istate_t *istate)
 {
-	char *symbol;
-
-	symbol = symtab_fmt_name_lookup(istate->rip);
-
+	const char *symbol = symtab_fmt_name_lookup(istate->rip);
+	
 	printf("-----EXCEPTION(%d) OCCURED----- ( %s )\n", n, __func__);
 	printf("%%rip: %#llx (%s)\n", istate->rip, symbol);
Index: kernel/arch/arm32/src/cpu/cpu.c
===================================================================
--- kernel/arch/arm32/src/cpu/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/arm32/src/cpu/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,5 +43,5 @@
 
 /** Implementators (vendor) names */
-static char *imp_data[] = {
+static const char *imp_data[] = {
 	"?",					/* IMP_DATA_START_OFFSET */
 	"ARM Ltd",				/* 0x41 */
@@ -60,5 +60,5 @@
 
 /** Architecture names */
-static char *arch_data[] = {
+static const char *arch_data[] = {
 	"?",       /* 0x0 */
 	"4",       /* 0x1 */
@@ -108,6 +108,6 @@
 void cpu_print_report(cpu_t *m)
 {
-	char * vendor = imp_data[0];
-	char * architecture = arch_data[0];
+	const char *vendor = imp_data[0];
+	const char *architecture = arch_data[0];
 	cpu_arch_t * cpu_arch = &m->arch;
 
Index: kernel/arch/ia32/src/cpu/cpu.c
===================================================================
--- kernel/arch/ia32/src/cpu/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ia32/src/cpu/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -64,5 +64,5 @@
 };
 
-static char *vendor_str[] = {
+static const char *vendor_str[] = {
 	"Unknown Vendor",
 	"AMD",
Index: kernel/arch/ia32/src/interrupt.c
===================================================================
--- kernel/arch/ia32/src/interrupt.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ia32/src/interrupt.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -65,13 +65,11 @@
 void decode_istate(istate_t *istate)
 {
-	char *symbol;
-
-	symbol = symtab_fmt_name_lookup(istate->eip);
-
+	const char *symbol = symtab_fmt_name_lookup(istate->eip);
+	
 	if (CPU)
 		printf("----------------EXCEPTION OCCURED (cpu%u)----------------\n", CPU->id);
 	else
 		printf("----------------EXCEPTION OCCURED----------------\n");
-		
+	
 	printf("%%eip: %#lx (%s)\n", istate->eip, symbol);
 	printf("ERROR_WORD=%#lx\n", istate->error_word);
@@ -80,5 +78,5 @@
 	printf("stack: %#lx, %#lx, %#lx, %#lx\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]);
 	printf("       %#lx, %#lx, %#lx, %#lx\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]);
-
+	
 	stack_trace_istate(istate);
 }
Index: kernel/arch/ia32/src/mm/frame.c
===================================================================
--- kernel/arch/ia32/src/mm/frame.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ia32/src/mm/frame.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup ia32mm	
+/** @addtogroup ia32mm
  * @{
  */
@@ -109,5 +109,5 @@
 }
 
-static char *e820names[] = {
+static const char *e820names[] = {
 	"invalid",
 	"available",
@@ -122,5 +122,5 @@
 {
 	unsigned int i;
-	char *name;
+	const char *name;
 	
 	printf("Base               Size               Name\n");
Index: kernel/arch/ia64/src/cpu/cpu.c
===================================================================
--- kernel/arch/ia64/src/cpu/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ia64/src/cpu/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
 void cpu_print_report(cpu_t *m)
 {
-	char *family_str;
+	const char *family_str;
 	char vendor[2 * sizeof(uint64_t) + 1];
 	
Index: kernel/arch/ia64/src/interrupt.c
===================================================================
--- kernel/arch/ia64/src/interrupt.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ia64/src/interrupt.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -64,5 +64,5 @@
 #define BUNDLE_SIZE		16
 
-char *vector_names_64_bundle[VECTORS_64_BUNDLE] = {
+static const char *vector_names_64_bundle[VECTORS_64_BUNDLE] = {
 	"VHPT Translation vector",
 	"Instruction TLB vector",
@@ -87,5 +87,5 @@
 };
 
-char *vector_names_16_bundle[VECTORS_16_BUNDLE] = {
+static const char *vector_names_16_bundle[VECTORS_16_BUNDLE] = {
 	"Page Not Present vector",
 	"Key Permission vector",
@@ -121,8 +121,5 @@
 };
 
-static char *vector_to_string(uint16_t vector);
-static void dump_interrupted_context(istate_t *istate);
-
-char *vector_to_string(uint16_t vector)
+static const char *vector_to_string(uint16_t vector)
 {
 	ASSERT(vector <= VECTOR_MAX);
@@ -135,12 +132,10 @@
 }
 
-void dump_interrupted_context(istate_t *istate)
-{
-	char *ifa, *iipa, *iip;
-
-	ifa = symtab_fmt_name_lookup(istate->cr_ifa);
-	iipa = symtab_fmt_name_lookup(istate->cr_iipa);
-	iip = symtab_fmt_name_lookup(istate->cr_iip);
-
+static void dump_interrupted_context(istate_t *istate)
+{
+	const char *ifa = symtab_fmt_name_lookup(istate->cr_ifa);
+	const char *iipa = symtab_fmt_name_lookup(istate->cr_iipa);
+	const char *iip = symtab_fmt_name_lookup(istate->cr_iip);
+	
 	putchar('\n');
 	printf("Interrupted context dump:\n");
@@ -162,6 +157,6 @@
 void general_exception(uint64_t vector, istate_t *istate)
 {
-	char *desc = "";
-
+	const char *desc;
+	
 	switch (istate->cr_isr.ge_code) {
 	case GE_ILLEGALOP:
@@ -187,7 +182,7 @@
 		break;
 	}
-
+	
 	fault_if_from_uspace(istate, "General Exception (%s).", desc);
-
+	
 	dump_interrupted_context(istate);
 	panic("General Exception (%s).", desc);
Index: kernel/arch/mips32/src/cpu/cpu.c
===================================================================
--- kernel/arch/mips32/src/cpu/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/mips32/src/cpu/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,6 +40,6 @@
 
 struct data_t {
-	char *vendor;
-	char *model;
+	const char *vendor;
+	const char *model;
 };
 
Index: kernel/arch/mips32/src/debugger.c
===================================================================
--- kernel/arch/mips32/src/debugger.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/mips32/src/debugger.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -253,14 +253,13 @@
 {
 	unsigned int i;
-	char *symbol;
 	
 	printf("#  Count Address    INPROG ONESHOT FUNCCALL In symbol\n");
 	printf("-- ----- ---------- ------ ------- -------- ---------\n");
 	
-	for (i = 0; i < BKPOINTS_MAX; i++)
+	for (i = 0; i < BKPOINTS_MAX; i++) {
 		if (breakpoints[i].address) {
-			symbol = symtab_fmt_name_lookup(
+			const char *symbol = symtab_fmt_name_lookup(
 			    breakpoints[i].address);
-
+			
 			printf("%-2u %-5d %#10zx %-6s %-7s %-8s %s\n", i,
 			    breakpoints[i].counter, breakpoints[i].address,
@@ -270,4 +269,6 @@
 			    BKPOINT_FUNCCALL) ? "true" : "false"), symbol);
 		}
+	}
+	
 	return 1;
 }
Index: kernel/arch/mips32/src/exception.c
===================================================================
--- kernel/arch/mips32/src/exception.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/mips32/src/exception.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 #include <symtab.h>
 
-static char * exctable[] = {
+static const char *exctable[] = {
 	"Interrupt",
 	"TLB Modified",
@@ -74,9 +74,7 @@
 static void print_regdump(istate_t *istate)
 {
-	char *pcsymbol, *rasymbol;
-
-	pcsymbol = symtab_fmt_name_lookup(istate->epc);
-	rasymbol = symtab_fmt_name_lookup(istate->ra);
-
+	const char *pcsymbol = symtab_fmt_name_lookup(istate->epc);
+	const char *rasymbol = symtab_fmt_name_lookup(istate->ra);
+	
 	printf("PC: %#x(%s) RA: %#x(%s), SP(%p)\n", istate->epc, pcsymbol,
 	    istate->ra, rasymbol, istate->sp);
@@ -93,9 +91,9 @@
 static void reserved_instr_exception(int n, istate_t *istate)
 {
-	if (*((uint32_t *)istate->epc) == 0x7c03e83b) {
+	if (*((uint32_t *) istate->epc) == 0x7c03e83b) {
 		ASSERT(THREAD);
 		istate->epc += 4;
 		istate->v1 = istate->k1;
-	} else 
+	} else
 		unhandled_exception(n, istate);
 }
Index: kernel/arch/mips32/src/mm/tlb.c
===================================================================
--- kernel/arch/mips32/src/mm/tlb.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/mips32/src/mm/tlb.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -321,8 +321,6 @@
 void tlb_refill_fail(istate_t *istate)
 {
-	char *symbol, *sym2;
-
-	symbol = symtab_fmt_name_lookup(istate->epc);
-	sym2 = symtab_fmt_name_lookup(istate->ra);
+	const char *symbol = symtab_fmt_name_lookup(istate->epc);
+	const char *sym2 = symtab_fmt_name_lookup(istate->ra);
 	
 	fault_if_from_uspace(istate, "TLB Refill Exception on %p.",
@@ -335,8 +333,6 @@
 void tlb_invalid_fail(istate_t *istate)
 {
-	char *symbol;
-
-	symbol = symtab_fmt_name_lookup(istate->epc);
-
+	const char *symbol = symtab_fmt_name_lookup(istate->epc);
+	
 	fault_if_from_uspace(istate, "TLB Invalid Exception on %p.",
 	    cp0_badvaddr_read());
@@ -347,8 +343,6 @@
 void tlb_modified_fail(istate_t *istate)
 {
-	char *symbol;
-
-	symbol = symtab_fmt_name_lookup(istate->epc);
-
+	const char *symbol = symtab_fmt_name_lookup(istate->epc);
+	
 	fault_if_from_uspace(istate, "TLB Modified Exception on %p.",
 	    cp0_badvaddr_read());
Index: kernel/arch/ppc32/src/cpu/cpu.c
===================================================================
--- kernel/arch/ppc32/src/cpu/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ppc32/src/cpu/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -54,5 +54,5 @@
 void cpu_print_report(cpu_t *m)
 {
-	char *name;
+	const char *name;
 	
 	switch (m->arch.version) {
Index: kernel/arch/ppc32/src/mm/tlb.c
===================================================================
--- kernel/arch/ppc32/src/mm/tlb.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/ppc32/src/mm/tlb.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -114,10 +114,7 @@
 static void pht_refill_fail(uintptr_t badvaddr, istate_t *istate)
 {
-	char *symbol;
-	char *sym2;
-
-	symbol = symtab_fmt_name_lookup(istate->pc);
-	sym2 = symtab_fmt_name_lookup(istate->lr);
-
+	const char *symbol = symtab_fmt_name_lookup(istate->pc);
+	const char *sym2 = symtab_fmt_name_lookup(istate->lr);
+	
 	fault_if_from_uspace(istate,
 	    "PHT Refill Exception on %p.", badvaddr);
Index: kernel/arch/sparc64/src/cpu/sun4u/cpu.c
===================================================================
--- kernel/arch/sparc64/src/cpu/sun4u/cpu.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/sparc64/src/cpu/sun4u/cpu.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -129,5 +129,6 @@
 void cpu_print_report(cpu_t *m)
 {
-	char *manuf, *impl;
+	const char *manuf;
+	const char *impl;
 
 	switch (m->arch.ver.manuf) {
Index: kernel/arch/sparc64/src/mm/sun4u/tlb.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4u/tlb.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/sparc64/src/mm/sun4u/tlb.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -64,5 +64,5 @@
     tlb_tag_access_reg_t, const char *);
 
-char *context_encoding[] = {
+const char *context_encoding[] = {
 	"Primary",
 	"Secondary",
Index: kernel/arch/sparc64/src/mm/sun4v/tlb.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4v/tlb.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/sparc64/src/mm/sun4v/tlb.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -89,5 +89,5 @@
  * field of the MMU fault status area is i.
  */
-char *fault_types[] = {
+static const char *fault_types[] = {
 	"unknown",
 	"fast miss",
@@ -107,5 +107,4 @@
 	"invalid page size"
 	};
-	
 
 /** Array of MMU fault status areas. */
Index: kernel/arch/sparc64/src/trap/exception.c
===================================================================
--- kernel/arch/sparc64/src/trap/exception.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/arch/sparc64/src/trap/exception.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -46,9 +46,7 @@
 void dump_istate(istate_t *istate)
 {
-	char *tpcs, *tnpcs;
-
-	tpcs = symtab_fmt_name_lookup(istate->tpc);
-	tnpcs = symtab_fmt_name_lookup(istate->tnpc);
-
+	const char *tpcs = symtab_fmt_name_lookup(istate->tpc);
+	const char *tnpcs = symtab_fmt_name_lookup(istate->tnpc);
+	
 	printf("TSTATE=%#" PRIx64 "\n", istate->tstate);
 	printf("TPC=%#" PRIx64 " (%s)\n", istate->tpc, tpcs);
Index: kernel/genarch/include/acpi/acpi.h
===================================================================
--- kernel/genarch/include/acpi/acpi.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/genarch/include/acpi/acpi.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -67,5 +67,5 @@
 	uint8_t *signature;
 	struct acpi_sdt_header **sdt_ptr;
-	char *description;
+	const char *description;
 };
 
Index: kernel/genarch/src/acpi/madt.c
===================================================================
--- kernel/genarch/src/acpi/madt.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/genarch/src/acpi/madt.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -72,5 +72,5 @@
 unsigned int madt_entries_index_cnt = 0;
 
-char *entry[] = {
+const char *entry[] = {
 	"L_APIC",
 	"IO_APIC",
Index: kernel/generic/include/console/chardev.h
===================================================================
--- kernel/generic/include/console/chardev.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/console/chardev.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -53,5 +53,5 @@
 /** Character input device. */
 typedef struct indev {
-	char *name;
+	const char *name;
 	waitq_t wq;
 	
@@ -81,5 +81,5 @@
 /** Character output device. */
 typedef struct outdev {
-	char *name;
+	const char *name;
 	
 	/** Protects everything below. */
@@ -95,10 +95,10 @@
 } outdev_t;
 
-extern void indev_initialize(char *name, indev_t *indev,
+extern void indev_initialize(const char *name, indev_t *indev,
     indev_operations_t *op);
 extern void indev_push_character(indev_t *indev, wchar_t ch);
 extern wchar_t indev_pop_character(indev_t *indev);
 
-extern void outdev_initialize(char *name, outdev_t *outdev,
+extern void outdev_initialize(const char *name, outdev_t *outdev,
     outdev_operations_t *op);
 
Index: kernel/generic/include/console/kconsole.h
===================================================================
--- kernel/generic/include/console/kconsole.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/console/kconsole.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -94,5 +94,5 @@
 extern void kconsole_notify_init(void);
 extern bool kconsole_check_poll(void);
-extern void kconsole(char *prompt, char *msg, bool kcon);
+extern void kconsole(const char *prompt, const char *msg, bool kcon);
 extern void kconsole_thread(void *data);
 
Index: kernel/generic/include/interrupt.h
===================================================================
--- kernel/generic/include/interrupt.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/interrupt.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -46,5 +46,5 @@
 typedef void (* iroutine)(int n, istate_t *istate);
 
-extern void fault_if_from_uspace(istate_t *istate, char *fmt, ...);
+extern void fault_if_from_uspace(istate_t *istate, const char *fmt, ...);
 extern iroutine exc_register(int n, const char *name, iroutine f);
 extern void exc_dispatch(int n, istate_t *t);
Index: kernel/generic/include/lib/elf.h
===================================================================
--- kernel/generic/include/lib/elf.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/lib/elf.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -338,5 +338,5 @@
 #endif
 
-extern char *elf_error(unsigned int rc);
+extern const char *elf_error(unsigned int rc);
 
 /* Interpreter string used to recognize the program loader */
Index: kernel/generic/include/mm/slab.h
===================================================================
--- kernel/generic/include/mm/slab.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/mm/slab.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -86,5 +86,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	
 	link_t link;
@@ -123,5 +123,5 @@
 } slab_cache_t;
 
-extern slab_cache_t *slab_cache_create(char *, size_t, size_t,
+extern slab_cache_t *slab_cache_create(const char *, size_t, size_t,
     int (*)(void *, int), int (*)(void *), int);
 extern void slab_cache_destroy(slab_cache_t *);
Index: kernel/generic/include/panic.h
===================================================================
--- kernel/generic/include/panic.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/panic.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -60,5 +60,5 @@
 extern bool silent;
 
-extern void panic_printf(char *fmt, ...) __attribute__((noreturn));
+extern void panic_printf(const char *fmt, ...) __attribute__((noreturn));
 
 #endif
Index: kernel/generic/include/proc/task.h
===================================================================
--- kernel/generic/include/proc/task.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/proc/task.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -130,5 +130,5 @@
 extern void task_init(void);
 extern void task_done(void);
-extern task_t *task_create(as_t *as, char *name);
+extern task_t *task_create(as_t *as, const char *name);
 extern void task_destroy(task_t *t);
 extern task_t *task_find_by_id(task_id_t id);
Index: kernel/generic/include/proc/thread.h
===================================================================
--- kernel/generic/include/proc/thread.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/proc/thread.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
 #define THREAD_NAME_BUFLEN	20
 
-extern char *thread_states[];
+extern const char *thread_states[];
 
 /* Thread flags */
@@ -225,6 +225,6 @@
 
 extern void thread_init(void);
-extern thread_t *thread_create(void (*)(void *), void *, task_t *, int, char *,
-    bool);
+extern thread_t *thread_create(void (*)(void *), void *, task_t *, int,
+    const char *, bool);
 extern void thread_attach(thread_t *, task_t *);
 extern void thread_ready(thread_t *);
Index: kernel/generic/include/stacktrace.h
===================================================================
--- kernel/generic/include/stacktrace.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/stacktrace.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -46,5 +46,5 @@
 	bool (* frame_pointer_prev)(uintptr_t, uintptr_t *);
 	bool (* return_address_get)(uintptr_t, uintptr_t *);
-	bool (* symbol_resolve)(uintptr_t, char **, uintptr_t *);
+	bool (* symbol_resolve)(uintptr_t, const char **, uintptr_t *);
 } stack_trace_ops_t;
 
Index: kernel/generic/include/symtab.h
===================================================================
--- kernel/generic/include/symtab.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/symtab.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -45,6 +45,6 @@
 };
 
-extern int symtab_name_lookup(uintptr_t, char **, uintptr_t *);
-extern char *symtab_fmt_name_lookup(uintptr_t);
+extern int symtab_name_lookup(uintptr_t, const char **, uintptr_t *);
+extern const char *symtab_fmt_name_lookup(uintptr_t);
 extern int symtab_addr_lookup(const char *, uintptr_t *);
 extern void symtab_print_search(const char *);
Index: kernel/generic/include/synch/spinlock.h
===================================================================
--- kernel/generic/include/synch/spinlock.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/include/synch/spinlock.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -48,5 +48,5 @@
 	
 #ifdef CONFIG_DEBUG_SPINLOCK
-	char *name;
+	const char *name;
 #endif
 } spinlock_t;
@@ -101,5 +101,5 @@
 	SPINLOCK_STATIC_INITIALIZE_NAME(lock_name, #lock_name)
 
-extern void spinlock_initialize(spinlock_t *lock, char *name);
+extern void spinlock_initialize(spinlock_t *lock, const char *name);
 extern int spinlock_trylock(spinlock_t *lock);
 extern void spinlock_lock_debug(spinlock_t *lock);
Index: kernel/generic/src/console/chardev.c
===================================================================
--- kernel/generic/src/console/chardev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/console/chardev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
  *
  */
-void indev_initialize(char *name, indev_t *indev,
+void indev_initialize(const char *name, indev_t *indev,
     indev_operations_t *op)
 {
@@ -130,5 +130,5 @@
  *
  */
-void outdev_initialize(char *name, outdev_t *outdev,
+void outdev_initialize(const char *name, outdev_t *outdev,
     outdev_operations_t *op)
 {
Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/console/cmd.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -1033,5 +1033,5 @@
 	/* Execute the test */
 	test_quiet = false;
-	char *ret = test->entry();
+	const char *ret = test->entry();
 	
 	/* Update and read thread accounting */
@@ -1086,5 +1086,5 @@
 		/* Execute the test */
 		test_quiet = true;
-		char * ret = test->entry();
+		const char *ret = test->entry();
 		
 		/* Update and read thread accounting */
Index: kernel/generic/src/console/kconsole.c
===================================================================
--- kernel/generic/src/console/kconsole.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/console/kconsole.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -643,5 +643,5 @@
  *
  */
-void kconsole(char *prompt, char *msg, bool kcon)
+void kconsole(const char *prompt, const char *msg, bool kcon)
 {
 	if (!stdin) {
Index: kernel/generic/src/debug/stacktrace.c
===================================================================
--- kernel/generic/src/debug/stacktrace.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/debug/stacktrace.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -44,7 +44,7 @@
 {
 	int cnt = 0;
-	char *symbol;
+	const char *symbol;
 	uintptr_t offset;
-
+	
 	while (cnt++ < STACK_FRAMES_MAX && ops->frame_pointer_validate(fp)) {
 		if (ops->symbol_resolve &&
@@ -85,5 +85,5 @@
 }
 
-static bool kernel_symbol_resolve(uintptr_t addr, char **sp, uintptr_t *op)
+static bool kernel_symbol_resolve(uintptr_t addr, const char **sp, uintptr_t *op)
 {
 	return (symtab_name_lookup(addr, sp, op) == 0);
Index: kernel/generic/src/debug/symtab.c
===================================================================
--- kernel/generic/src/debug/symtab.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/debug/symtab.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -54,5 +54,5 @@
  *
  */
-int symtab_name_lookup(uintptr_t addr, char **name, uintptr_t *offset)
+int symtab_name_lookup(uintptr_t addr, const char **name, uintptr_t *offset)
 {
 #ifdef CONFIG_SYMTAB
@@ -92,7 +92,7 @@
  *
  */
-char *symtab_fmt_name_lookup(uintptr_t addr)
-{
-	char *name;
+const char *symtab_fmt_name_lookup(uintptr_t addr)
+{
+	const char *name;
 	int rc = symtab_name_lookup(addr, &name, NULL);
 	
Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/interrupt/interrupt.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -114,5 +114,5 @@
 
 /** Terminate thread and task if exception came from userspace. */
-void fault_if_from_uspace(istate_t *istate, char *fmt, ...)
+void fault_if_from_uspace(istate_t *istate, const char *fmt, ...)
 {
 	task_t *task = TASK;
@@ -162,5 +162,4 @@
 #if (IVT_ITEMS > 0)
 	unsigned int i;
-	char *symbol;
 
 	spinlock_lock(&exctbl_lock);
@@ -177,5 +176,5 @@
 	
 	for (i = 0; i < IVT_ITEMS; i++) {
-		symbol = symtab_fmt_name_lookup((unative_t) exc_table[i].f);
+		const char *symbol = symtab_fmt_name_lookup((unative_t) exc_table[i].f);
 
 #ifdef __32_BITS__
Index: kernel/generic/src/lib/elf.c
===================================================================
--- kernel/generic/src/lib/elf.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/lib/elf.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -48,5 +48,5 @@
 #include <arch.h>
 
-static char *error_codes[] = {
+static const char *error_codes[] = {
 	"no error",
 	"invalid image",
@@ -137,5 +137,5 @@
  * @return NULL terminated description of error.
  */
-char *elf_error(unsigned int rc)
+const char *elf_error(unsigned int rc)
 {
 	ASSERT(rc < sizeof(error_codes) / sizeof(char *));
Index: kernel/generic/src/main/kinit.c
===================================================================
--- kernel/generic/src/main/kinit.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/main/kinit.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -183,7 +183,6 @@
 		
 		char namebuf[TASK_NAME_BUFLEN];
-		char *name;
-		
-		name = init.tasks[i].name;
+		
+		const char *name = init.tasks[i].name;
 		if (name[0] == 0)
 			name = "<unknown>";
Index: kernel/generic/src/main/version.c
===================================================================
--- kernel/generic/src/main/version.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/main/version.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,20 +37,20 @@
 #include <macros.h>
 
-char *project = "SPARTAN kernel";
-char *copyright = "Copyright (c) 2001-2009 HelenOS project";
-char *release = STRING(RELEASE);
-char *name = STRING(NAME);
-char *arch = STRING(KARCH);
+static const char *project = "SPARTAN kernel";
+static const char *copyright = "Copyright (c) 2001-2010 HelenOS project";
+static const char *release = STRING(RELEASE);
+static const char *name = STRING(NAME);
+static const char *arch = STRING(KARCH);
 
 #ifdef REVISION
-	char *revision = ", revision " STRING(REVISION);
+	static const char *revision = ", revision " STRING(REVISION);
 #else
-	char *revision = "";
+	static const char *revision = "";
 #endif
 
 #ifdef TIMESTAMP
-	char *timestamp = " on " STRING(TIMESTAMP);
+	static const char *timestamp = " on " STRING(TIMESTAMP);
 #else
-	char *timestamp = "";
+	static const char *timestamp = "";
 #endif
 
Index: kernel/generic/src/mm/slab.c
===================================================================
--- kernel/generic/src/mm/slab.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/mm/slab.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -130,5 +130,5 @@
 /** Caches for malloc */
 static slab_cache_t *malloc_caches[SLAB_MAX_MALLOC_W - SLAB_MIN_MALLOC_W + 1];
-static char *malloc_names[] =  {
+static const char *malloc_names[] =  {
 	"malloc-16",
 	"malloc-32",
@@ -571,8 +571,7 @@
 
 /** Initialize allocated memory as a slab cache */
-static void
-_slab_cache_create(slab_cache_t *cache, char *name, size_t size, size_t align,
-    int (*constructor)(void *obj, int kmflag), int (*destructor)(void *obj),
-    int flags)
+static void _slab_cache_create(slab_cache_t *cache, const char *name,
+    size_t size, size_t align, int (*constructor)(void *obj, int kmflag),
+    int (*destructor)(void *obj), int flags)
 {
 	int pages;
@@ -631,6 +630,5 @@
 
 /** Create slab cache  */
-slab_cache_t *
-slab_cache_create(char *name, size_t size, size_t align,
+slab_cache_t *slab_cache_create(const char *name, size_t size, size_t align,
     int (*constructor)(void *obj, int kmflag), int (*destructor)(void *obj),
     int flags)
@@ -853,5 +851,5 @@
 		cache = list_get_instance(cur, slab_cache_t, link);
 
-		char *name = cache->name;
+		const char *name = cache->name;
 		uint8_t order = cache->order;
 		size_t size = cache->size;
@@ -896,5 +894,5 @@
 		    NULL, NULL, SLAB_CACHE_MAGDEFERRED);
 	}
-#ifdef CONFIG_DEBUG       
+#ifdef CONFIG_DEBUG
 	_slab_initialized = 1;
 #endif
Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/proc/task.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -171,5 +171,5 @@
  *
  */
-task_t *task_create(as_t *as, char *name)
+task_t *task_create(as_t *as, const char *name)
 {
 	ipl_t ipl;
Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/proc/thread.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -76,5 +76,5 @@
 
 /** Thread states */
-char *thread_states[] = {
+const char *thread_states[] = {
 	"Invalid",
 	"Running",
@@ -288,5 +288,5 @@
  */
 thread_t *thread_create(void (* func)(void *), void *arg, task_t *task,
-    int flags, char *name, bool uncounted)
+    int flags, const char *name, bool uncounted)
 {
 	thread_t *t;
Index: kernel/generic/src/synch/spinlock.c
===================================================================
--- kernel/generic/src/synch/spinlock.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/synch/spinlock.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
  *
  */
-void spinlock_initialize(spinlock_t *lock, char *name)
+void spinlock_initialize(spinlock_t *lock, const char *name)
 {
 	atomic_set(&lock->val, 0);
Index: kernel/generic/src/sysinfo/sysinfo.c
===================================================================
--- kernel/generic/src/sysinfo/sysinfo.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/generic/src/sysinfo/sysinfo.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -225,5 +225,5 @@
 		int i;
 		unative_t val = 0;
-		char *vtype = NULL;
+		const char *vtype = NULL;
 		
 		
Index: kernel/test/atomic/atomic1.c
===================================================================
--- kernel/test/atomic/atomic1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/atomic/atomic1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -32,5 +32,5 @@
 #include <debug.h>
 
-char *test_atomic1(void)
+const char *test_atomic1(void)
 {
 	atomic_t a;
Index: kernel/test/avltree/avltree1.c
===================================================================
--- kernel/test/avltree/avltree1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/avltree/avltree1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -265,5 +265,5 @@
 }
 
-char *test_avltree1(void)
+const char *test_avltree1(void)
 {
 	alloc_avltree_node_prepare();
Index: kernel/test/btree/btree1.c
===================================================================
--- kernel/test/btree/btree1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/btree/btree1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -34,5 +34,5 @@
 static void *data = (void *) 0xdeadbeef;
 
-char *test_btree1(void)
+const char *test_btree1(void)
 {
 	btree_t t;
Index: kernel/test/debug/mips1.c
===================================================================
--- kernel/test/debug/mips1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/debug/mips1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,5 +37,5 @@
 #include <arch.h>
 
-char *test_mips1(void)
+const char *test_mips1(void)
 {
 	TPRINTF("If kconsole is compiled in, you should enter debug mode now.\n");
Index: kernel/test/debug/mips1_skip.c
===================================================================
--- kernel/test/debug/mips1_skip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/debug/mips1_skip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -29,5 +29,5 @@
 #include <test.h>
 
-char *test_mips1(void)
+const char *test_mips1(void)
 {
 	return NULL;
Index: kernel/test/fault/fault1.c
===================================================================
--- kernel/test/fault/fault1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fault/fault1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,5 +37,5 @@
 #include <arch.h>
 
-char *test_fault1(void)
+const char *test_fault1(void)
 {
 	((int *)(0))[1] = 0;
Index: kernel/test/fpu/fpu1_ia64.c
===================================================================
--- kernel/test/fpu/fpu1_ia64.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/fpu1_ia64.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -126,5 +126,5 @@
 }
 
-char *test_fpu1(void)
+const char *test_fpu1(void)
 {
 	unsigned int i;
Index: kernel/test/fpu/fpu1_skip.c
===================================================================
--- kernel/test/fpu/fpu1_skip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/fpu1_skip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -29,5 +29,5 @@
 #include <test.h>
 
-char *test_fpu1(void)
+const char *test_fpu1(void)
 {
 	return NULL;
Index: kernel/test/fpu/fpu1_x86.c
===================================================================
--- kernel/test/fpu/fpu1_x86.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/fpu1_x86.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -123,5 +123,5 @@
 }
 
-char *test_fpu1(void)
+const char *test_fpu1(void)
 {
 	unsigned int i;
Index: kernel/test/fpu/mips2.c
===================================================================
--- kernel/test/fpu/mips2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/mips2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -109,5 +109,5 @@
 
 
-char *test_mips2(void)
+const char *test_mips2(void)
 {
 	unsigned int i;
Index: kernel/test/fpu/mips2_skip.c
===================================================================
--- kernel/test/fpu/mips2_skip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/mips2_skip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -29,5 +29,5 @@
 #include <test.h>
 
-char *test_mips2(void)
+const char *test_mips2(void)
 {
 	return NULL;
Index: kernel/test/fpu/sse1.c
===================================================================
--- kernel/test/fpu/sse1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/sse1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -107,5 +107,5 @@
 }
 
-char *test_sse1(void)
+const char *test_sse1(void)
 {
 	unsigned int i;
Index: kernel/test/fpu/sse1_skip.c
===================================================================
--- kernel/test/fpu/sse1_skip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/fpu/sse1_skip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -29,5 +29,5 @@
 #include <test.h>
 
-char *test_sse1(void)
+const char *test_sse1(void)
 {
 	return NULL;
Index: kernel/test/mm/falloc1.c
===================================================================
--- kernel/test/mm/falloc1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/falloc1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -41,5 +41,5 @@
 #define TEST_RUNS   2
 
-char *test_falloc1(void) {
+const char *test_falloc1(void) {
 	uintptr_t *frames
 	    = (uintptr_t *) malloc(MAX_FRAMES * sizeof(uintptr_t), 0);
Index: kernel/test/mm/falloc2.c
===================================================================
--- kernel/test/mm/falloc2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/falloc2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -104,5 +104,5 @@
 }
 
-char *test_falloc2(void)
+const char *test_falloc2(void)
 {
 	unsigned int i;
Index: kernel/test/mm/mapping1.c
===================================================================
--- kernel/test/mm/mapping1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/mapping1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -42,5 +42,5 @@
 #define VALUE1  0x89abcdef
 
-char *test_mapping1(void)
+const char *test_mapping1(void)
 {
 	uintptr_t frame0, frame1;
Index: kernel/test/mm/purge1.c
===================================================================
--- kernel/test/mm/purge1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/purge1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,5 +40,5 @@
 extern void tlb_invalidate_pages(asid_t asid, uintptr_t va, size_t cnt);
 
-char *test_purge1(void)
+const char *test_purge1(void)
 {
 	tlb_entry_t entryi;
Index: kernel/test/mm/purge1_skip.c
===================================================================
--- kernel/test/mm/purge1_skip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/purge1_skip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -29,5 +29,5 @@
 #include <test.h>
 
-char *test_purge1(void)
+const char *test_purge1(void)
 {
 	return NULL;
Index: kernel/test/mm/slab1.c
===================================================================
--- kernel/test/mm/slab1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/slab1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -170,5 +170,5 @@
 }
 
-char *test_slab1(void)
+const char *test_slab1(void)
 {
 	testsimple();
Index: kernel/test/mm/slab2.c
===================================================================
--- kernel/test/mm/slab2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/mm/slab2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -226,5 +226,5 @@
 }
 
-char *test_slab2(void)
+const char *test_slab2(void)
 {
 	TPRINTF("Running reclaim single-thread test .. pass 1\n");
Index: kernel/test/print/print1.c
===================================================================
--- kernel/test/print/print1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/print/print1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include <test.h>
 
-char *test_print1(void)
+const char *test_print1(void)
 {
 	TPRINTF("Testing printf(\"%%*.*s\", 5, 3, \"text\"):\n");
Index: kernel/test/print/print2.c
===================================================================
--- kernel/test/print/print2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/print/print2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include <test.h>
 
-char *test_print2(void)
+const char *test_print2(void)
 {
 	TPRINTF("Testing printf(\"%%c %%3.2c %%-3.2c %%2.3c %%-2.3c\", 'a', 'b', 'c', 'd', 'e'):\n");
Index: kernel/test/print/print3.c
===================================================================
--- kernel/test/print/print3.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/print/print3.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -33,5 +33,5 @@
 #define BUFFER_SIZE  32
 
-char *test_print3(void)
+const char *test_print3(void)
 {
 	char buffer[BUFFER_SIZE];
Index: kernel/test/print/print4.c
===================================================================
--- kernel/test/print/print4.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/print/print4.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include <test.h>
 
-char *test_print4(void)
+const char *test_print4(void)
 {
 	TPRINTF("ASCII printable characters (32 - 127) using printf(\"%%c\") and printf(\"%%lc\"):\n");
Index: kernel/test/synch/rwlock1.c
===================================================================
--- kernel/test/synch/rwlock1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/rwlock1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -41,5 +41,5 @@
 static rwlock_t rwlock;
 
-char *test_rwlock1(void)
+const char *test_rwlock1(void)
 {
 	rwlock_initialize(&rwlock);
Index: kernel/test/synch/rwlock2.c
===================================================================
--- kernel/test/synch/rwlock2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/rwlock2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -53,5 +53,5 @@
 }
 
-char *test_rwlock2(void)
+const char *test_rwlock2(void)
 {
 	thread_t *thrd;
Index: kernel/test/synch/rwlock3.c
===================================================================
--- kernel/test/synch/rwlock3.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/rwlock3.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -60,5 +60,5 @@
 }
 
-char *test_rwlock3(void)
+const char *test_rwlock3(void)
 {
 	int i;
Index: kernel/test/synch/rwlock4.c
===================================================================
--- kernel/test/synch/rwlock4.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/rwlock4.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -132,5 +132,5 @@
 }
 
-char *test_rwlock4(void)
+const char *test_rwlock4(void)
 {
 	context_t ctx;
Index: kernel/test/synch/rwlock5.c
===================================================================
--- kernel/test/synch/rwlock5.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/rwlock5.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -67,5 +67,5 @@
 }
 
-char *test_rwlock5(void)
+const char *test_rwlock5(void)
 {
 	int i, j, k;
Index: kernel/test/synch/semaphore1.c
===================================================================
--- kernel/test/synch/semaphore1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/semaphore1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -70,5 +70,5 @@
 }
 
-char *test_semaphore1(void)
+const char *test_semaphore1(void)
 {
 	int i, j, k;
Index: kernel/test/synch/semaphore2.c
===================================================================
--- kernel/test/synch/semaphore2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/synch/semaphore2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -82,5 +82,5 @@
 }
 
-char *test_semaphore2(void)
+const char *test_semaphore2(void)
 {
 	uint32_t i, k;
Index: kernel/test/sysinfo/sysinfo1.c
===================================================================
--- kernel/test/sysinfo/sysinfo1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/sysinfo/sysinfo1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -33,5 +33,5 @@
 #include <sysinfo/sysinfo.h>
 
-char *test_sysinfo1(void)
+const char *test_sysinfo1(void)
 {
 	if (!test_quiet)
Index: kernel/test/test.h
===================================================================
--- kernel/test/test.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/test.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -48,40 +48,40 @@
 	}
 
-typedef char *(*test_entry_t)(void);
+typedef const char *(*test_entry_t)(void);
 
 typedef struct {
-	char *name;
-	char *desc;
+	const char *name;
+	const char *desc;
 	test_entry_t entry;
 	bool safe;
 } test_t;
 
-extern char *test_atomic1(void);
-extern char *test_avltree1(void);
-extern char *test_btree1(void);
-extern char *test_mips1(void);
-extern char *test_fault1(void);
-extern char *test_fpu1(void);
-extern char *test_sse1(void);
-extern char *test_mips2(void);
-extern char *test_falloc1(void);
-extern char *test_falloc2(void);
-extern char *test_mapping1(void);
-extern char *test_purge1(void);
-extern char *test_slab1(void);
-extern char *test_slab2(void);
-extern char *test_rwlock1(void);
-extern char *test_rwlock2(void);
-extern char *test_rwlock3(void);
-extern char *test_rwlock4(void);
-extern char *test_rwlock5(void);
-extern char *test_semaphore1(void);
-extern char *test_semaphore2(void);
-extern char *test_print1(void);
-extern char *test_print2(void);
-extern char *test_print3(void);
-extern char *test_print4(void);
-extern char *test_thread1(void);
-extern char *test_sysinfo1(void);
+extern const char *test_atomic1(void);
+extern const char *test_avltree1(void);
+extern const char *test_btree1(void);
+extern const char *test_mips1(void);
+extern const char *test_fault1(void);
+extern const char *test_fpu1(void);
+extern const char *test_sse1(void);
+extern const char *test_mips2(void);
+extern const char *test_falloc1(void);
+extern const char *test_falloc2(void);
+extern const char *test_mapping1(void);
+extern const char *test_purge1(void);
+extern const char *test_slab1(void);
+extern const char *test_slab2(void);
+extern const char *test_rwlock1(void);
+extern const char *test_rwlock2(void);
+extern const char *test_rwlock3(void);
+extern const char *test_rwlock4(void);
+extern const char *test_rwlock5(void);
+extern const char *test_semaphore1(void);
+extern const char *test_semaphore2(void);
+extern const char *test_print1(void);
+extern const char *test_print2(void);
+extern const char *test_print3(void);
+extern const char *test_print4(void);
+extern const char *test_thread1(void);
+extern const char *test_sysinfo1(void);
 
 extern test_t tests[];
Index: kernel/test/thread/thread1.c
===================================================================
--- kernel/test/thread/thread1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ kernel/test/thread/thread1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -53,5 +53,5 @@
 }
 
-char *test_thread1(void)
+const char *test_thread1(void)
 {
 	unsigned int i;
Index: uspace/app/bdsh/cmds/builtins/cd/cd.c
===================================================================
--- uspace/app/bdsh/cmds/builtins/cd/cd.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/builtins/cd/cd.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -41,5 +41,5 @@
 #include "cd.h"
 
-static char * cmdname = "cd";
+static const char *cmdname = "cd";
 
 void help_cmd_cd(unsigned int level)
Index: uspace/app/bdsh/cmds/cmds.h
===================================================================
--- uspace/app/bdsh/cmds/cmds.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/cmds.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -33,6 +33,6 @@
 /* Module structure */
 typedef struct {
-	char *name;         /* Name of the command */
-	char *desc;         /* Description of the command */
+	const char *name;   /* Name of the command */
+	const char *desc;   /* Description of the command */
 	mod_entry_t entry;  /* Command (exec) entry function */
 	mod_help_t help;    /* Command (help) entry function */
@@ -41,6 +41,6 @@
 /* Builtin structure, same as modules except different types of entry points */
 typedef struct {
-	char *name;
-	char *desc;
+	const char *name;
+	const char *desc;
 	builtin_entry_t entry;
 	builtin_help_t help;
@@ -57,5 +57,5 @@
 extern int is_module(const char *);
 extern int is_module_alias(const char *);
-extern char * alias_for_module(const char *);
+extern char *alias_for_module(const char *);
 extern int help_module(int, unsigned int);
 extern int run_module(int, char *[]);
@@ -65,5 +65,5 @@
 extern int is_builtin(const char *);
 extern int is_builtin_alias(const char *);
-extern char * alias_for_builtin(const char *);
+extern char *alias_for_builtin(const char *);
 extern int help_builtin(int, unsigned int);
 extern int run_builtin(int, char *[], cliuser_t *);
Index: uspace/app/bdsh/cmds/modules/cat/cat.c
===================================================================
--- uspace/app/bdsh/cmds/modules/cat/cat.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/cat/cat.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,9 +43,9 @@
 #include "cmds.h"
 
-static char *cmdname = "cat";
+static const char *cmdname = "cat";
 #define CAT_VERSION "0.0.1"
 #define CAT_DEFAULT_BUFLEN 1024
 
-static char *cat_oops = "That option is not yet supported\n";
+static const char *cat_oops = "That option is not yet supported\n";
 
 static struct option const long_options[] = {
Index: uspace/app/bdsh/cmds/modules/help/help.c
===================================================================
--- uspace/app/bdsh/cmds/modules/help/help.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/help/help.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -42,5 +42,5 @@
 #include "util.h"
 
-static char *cmdname = "help";
+static const char *cmdname = "help";
 extern const char *progname;
 
Index: uspace/app/bdsh/cmds/modules/kcon/kcon.c
===================================================================
--- uspace/app/bdsh/cmds/modules/kcon/kcon.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/kcon/kcon.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,5 +40,5 @@
 #include "cmds.h"
 
-static char *cmdname = "kcon";
+static const char *cmdname = "kcon";
 
 /* Dispays help for kcon in various levels */
Index: uspace/app/bdsh/cmds/modules/ls/ls.c
===================================================================
--- uspace/app/bdsh/cmds/modules/ls/ls.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/ls/ls.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 #include "cmds.h"
 
-static char *cmdname = "ls";
+static const char *cmdname = "ls";
 
 static void ls_scan_dir(const char *d, DIR *dirp)
Index: uspace/app/bdsh/cmds/modules/mkdir/mkdir.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/mkdir/mkdir.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 #define MKDIR_VERSION "0.0.1"
 
-static char *cmdname = "mkdir";
+static const char *cmdname = "mkdir";
 
 static struct option const long_options[] = {
Index: uspace/app/bdsh/cmds/modules/mkfile/mkfile.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mkfile/mkfile.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/mkfile/mkfile.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -51,5 +51,5 @@
 #define BUFFER_SIZE 16384
 
-static char *cmdname = "mkfile";
+static const char *cmdname = "mkfile";
 
 static struct option const long_options[] = {
Index: uspace/app/bdsh/cmds/modules/module_aliases.h
===================================================================
--- uspace/app/bdsh/cmds/modules/module_aliases.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/module_aliases.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -12,5 +12,5 @@
  * the entry point being reached. */
 
-char *mod_aliases[] = {
+const char *mod_aliases[] = {
 	"ren", "mv",
 	"umount", "unmount",
Index: uspace/app/bdsh/cmds/modules/mount/mount.c
===================================================================
--- uspace/app/bdsh/cmds/modules/mount/mount.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/mount/mount.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -58,5 +58,5 @@
 {
 	unsigned int argc;
-	char *mopts = "";
+	const char *mopts = "";
 	int rc;
 
Index: uspace/app/bdsh/cmds/modules/pwd/pwd.c
===================================================================
--- uspace/app/bdsh/cmds/modules/pwd/pwd.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/pwd/pwd.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -39,5 +39,5 @@
 #include "pwd.h"
 
-static char * cmdname = "pwd";
+static const char *cmdname = "pwd";
 
 void help_cmd_pwd(unsigned int level)
Index: uspace/app/bdsh/cmds/modules/rm/rm.c
===================================================================
--- uspace/app/bdsh/cmds/modules/rm/rm.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/rm/rm.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -45,5 +45,5 @@
 #include "cmds.h"
 
-static char *cmdname = "rm";
+static const char *cmdname = "rm";
 #define RM_VERSION "0.0.1"
 
Index: uspace/app/bdsh/cmds/modules/sleep/sleep.c
===================================================================
--- uspace/app/bdsh/cmds/modules/sleep/sleep.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/sleep/sleep.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -38,5 +38,5 @@
 #include "cmds.h"
 
-static char *cmdname = "sleep";
+static const char *cmdname = "sleep";
 
 /* Dispays help for sleep in various levels */
Index: uspace/app/bdsh/cmds/modules/touch/touch.c
===================================================================
--- uspace/app/bdsh/cmds/modules/touch/touch.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/cmds/modules/touch/touch.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
 #include "cmds.h"
 
-static char *cmdname = "touch";
+static const char *cmdname = "touch";
 
 /* Dispays help for touch in various levels */
Index: uspace/app/bdsh/errors.c
===================================================================
--- uspace/app/bdsh/errors.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/errors.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
 /* Look up errno in cl_errors and return the corresponding string.
  * Return NULL if not found */
-static char *err2str(int err)
+static const char *err2str(int err)
 {
 
Index: uspace/app/bdsh/errstr.h
===================================================================
--- uspace/app/bdsh/errstr.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/errstr.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -4,5 +4,5 @@
 /* Simple array to translate error codes to meaningful strings */
 
-static char *cl_errors[] = {
+static const char *cl_errors[] = {
 	"Success",
 	"Failure",
@@ -18,5 +18,5 @@
 };
 
-static char *err2str(int);
+static const char *err2str(int);
 
 #endif
Index: uspace/app/bdsh/exec.c
===================================================================
--- uspace/app/bdsh/exec.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/exec.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -120,5 +120,5 @@
 	free(found);
 
-	tid = task_spawn((const char *)tmp, argv);
+	tid = task_spawn(tmp, (const char **) argv);
 	free(tmp);
 
Index: uspace/app/bdsh/exec.h
===================================================================
--- uspace/app/bdsh/exec.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/exec.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -5,3 +5,4 @@
 
 extern unsigned int try_exec(char *, char **);
+
 #endif
Index: uspace/app/bdsh/scli.h
===================================================================
--- uspace/app/bdsh/scli.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/bdsh/scli.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -6,5 +6,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	char *line;
 	char *cwd;
Index: uspace/app/edit/edit.c
===================================================================
--- uspace/app/edit/edit.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/edit/edit.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -475,8 +475,7 @@
 static void file_save_as(void)
 {
-	char *old_fname, *fname;
-	int rc;
-
-	old_fname = (doc.file_name != NULL) ? doc.file_name : "";
+	const char *old_fname = (doc.file_name != NULL) ? doc.file_name : "";
+	char *fname;
+	
 	fname = filename_prompt("Save As", old_fname);
 	if (fname == NULL) {
@@ -485,5 +484,5 @@
 	}
 
-	rc = file_save(fname);
+	int rc = file_save(fname);
 	if (rc != EOK)
 		return;
@@ -819,15 +818,13 @@
 	spt_t caret_pt;
 	coord_t coord;
-	char *fname;
-	int n;
 
 	tag_get_pt(&pane.caret_pos, &caret_pt);
 	spt_get_coord(&caret_pt, &coord);
 
-	fname = (doc.file_name != NULL) ? doc.file_name : "<unnamed>";
+	const char *fname = (doc.file_name != NULL) ? doc.file_name : "<unnamed>";
 
 	console_goto(con, 0, scr_rows - 1);
 	console_set_color(con, COLOR_WHITE, COLOR_BLACK, 0);
-	n = printf(" %d, %d: File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
+	int n = printf(" %d, %d: File '%s'. Ctrl-Q Quit  Ctrl-S Save  "
 	    "Ctrl-E Save As", coord.row, coord.column, fname);
 	printf("%*s", scr_columns - 1 - n, "");
Index: uspace/app/getterm/getterm.c
===================================================================
--- uspace/app/getterm/getterm.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/getterm/getterm.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -69,7 +69,7 @@
 }
 
-static task_id_t spawn(char *fname)
+static task_id_t spawn(const char *fname)
 {
-	char *args[2];
+	const char *args[2];
 	
 	args[0] = fname;
Index: uspace/app/getterm/version.c
===================================================================
--- uspace/app/getterm/version.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/getterm/version.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,18 +40,18 @@
 #include "version.h"
 
-static char *release = STRING(RELEASE);
-static char *name = STRING(NAME);
-static char *arch = STRING(UARCH);
+static const char *release = STRING(RELEASE);
+static const char *name = STRING(NAME);
+static const char *arch = STRING(UARCH);
 
 #ifdef REVISION
-	static char *revision = ", revision " STRING(REVISION);
+	static const char *revision = ", revision " STRING(REVISION);
 #else
-	static char *revision = "";
+	static const char *revision = "";
 #endif
 
 #ifdef TIMESTAMP
-	static char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
+	static const char *timestamp = "\nBuilt on " STRING(TIMESTAMP);
 #else
-	static char *timestamp = "";
+	static const char *timestamp = "";
 #endif
 
Index: uspace/app/init/init.c
===================================================================
--- uspace/app/init/init.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/init/init.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -62,5 +62,5 @@
 static bool mount_root(const char *fstype)
 {
-	char *opts = "";
+	const char *opts = "";
 	const char *root_dev = "bd/initrd";
 	
@@ -117,7 +117,7 @@
 }
 
-static void spawn(char *fname)
-{
-	char *argv[2];
+static void spawn(const char *fname)
+{
+	const char *argv[2];
 	struct stat s;
 	
@@ -134,7 +134,7 @@
 }
 
-static void srv_start(char *fname)
-{
-	char *argv[2];
+static void srv_start(const char *fname)
+{
+	const char *argv[2];
 	task_id_t id;
 	task_exit_t texit;
@@ -168,7 +168,7 @@
 }
 
-static void console(char *dev)
-{
-	char *argv[3];
+static void console(const char *dev)
+{
+	const char *argv[3];
 	char hid_in[DEVMAP_NAME_MAXLEN];
 	int rc;
@@ -193,7 +193,7 @@
 }
 
-static void getterm(char *dev, char *app)
-{
-	char *argv[4];
+static void getterm(const char *dev, const char *app)
+{
+	const char *argv[4];
 	char term[DEVMAP_NAME_MAXLEN];
 	int rc;
Index: uspace/app/redir/redir.c
===================================================================
--- uspace/app/redir/redir.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/redir/redir.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -72,5 +72,5 @@
 static task_id_t spawn(int argc, char *argv[])
 {
-	char **args = (char **) calloc(argc + 1, sizeof(char *));
+	const char **args = (const char **) calloc(argc + 1, sizeof(char *));
 	if (!args) {
 		printf("No memory available\n");
Index: uspace/app/tester/console/console1.c
===================================================================
--- uspace/app/tester/console/console1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/console/console1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -36,5 +36,5 @@
 #include "../tester.h"
 
-const char *color_name[] = {
+static const char *color_name[] = {
 	[COLOR_BLACK] = "black",
 	[COLOR_BLUE] = "blue",
@@ -47,5 +47,5 @@
 };
 
-char *test_console1(void)
+const char *test_console1(void)
 {
 	if (!test_quiet) {
Index: uspace/app/tester/fault/fault1.c
===================================================================
--- uspace/app/tester/fault/fault1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/fault/fault1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include "../tester.h"
 
-char *test_fault1(void)
+const char *test_fault1(void)
 {
 	((int *)(0))[1] = 0;
Index: uspace/app/tester/fault/fault2.c
===================================================================
--- uspace/app/tester/fault/fault2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/fault/fault2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -32,5 +32,5 @@
 typedef int __attribute__((may_alias)) aliasing_int;
 
-char *test_fault2(void)
+const char *test_fault2(void)
 {
 	volatile long long var;
Index: uspace/app/tester/fault/fault3.c
===================================================================
--- uspace/app/tester/fault/fault3.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/fault/fault3.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -30,5 +30,5 @@
 #include <stdlib.h>
 
-char *test_fault3(void)
+const char *test_fault3(void)
 {
 	abort();
Index: uspace/app/tester/ipc/connect.c
===================================================================
--- uspace/app/tester/ipc/connect.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/ipc/connect.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -39,5 +39,5 @@
 }
 
-char *test_connect(void)
+const char *test_connect(void)
 {
 	TPRINTF("Connecting to %u...", IPC_TEST_SERVICE);
Index: uspace/app/tester/ipc/ping_pong.c
===================================================================
--- uspace/app/tester/ipc/ping_pong.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/ipc/ping_pong.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -38,5 +38,5 @@
 #define COUNT_GRANULARITY  100
 
-char *test_ping_pong(void)
+const char *test_ping_pong(void)
 {
 	TPRINTF("Pinging ns server for %d seconds...", DURATION_SECS);
Index: uspace/app/tester/ipc/register.c
===================================================================
--- uspace/app/tester/ipc/register.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/ipc/register.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -74,5 +74,5 @@
 }
 
-char *test_register(void)
+const char *test_register(void)
 {
 	async_set_client_connection(client_connection);
Index: uspace/app/tester/loop/loop1.c
===================================================================
--- uspace/app/tester/loop/loop1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/loop/loop1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_loop1(void)
+const char *test_loop1(void)
 {
 	TPRINTF("Looping...");
Index: uspace/app/tester/mm/malloc1.c
===================================================================
--- uspace/app/tester/mm/malloc1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/mm/malloc1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -73,5 +73,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	sp_term_cond_s cond;
 	sp_action_prob_s prob;
@@ -90,5 +90,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	ph_alloc_size_s alloc;
 	subphase_s *subphases;
@@ -628,5 +628,5 @@
 }
 
-char *test_malloc1(void)
+const char *test_malloc1(void)
 {
 	init_mem();
Index: uspace/app/tester/print/print1.c
===================================================================
--- uspace/app/tester/print/print1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_print1(void)
+const char *test_print1(void)
 {
 	TPRINTF("Testing printf(\"%%*.*s\", 5, 3, \"text\"):\n");
Index: uspace/app/tester/print/print2.c
===================================================================
--- uspace/app/tester/print/print2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_print2(void)
+const char *test_print2(void)
 {
 	TPRINTF("Testing printf(\"%%c %%3.2c %%-3.2c %%2.3c %%-2.3c\", 'a', 'b', 'c', 'd', 'e'):\n");
Index: uspace/app/tester/print/print3.c
===================================================================
--- uspace/app/tester/print/print3.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print3.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -34,5 +34,5 @@
 #define BUFFER_SIZE  32
 
-char *test_print3(void)
+const char *test_print3(void)
 {
 	char buffer[BUFFER_SIZE];
Index: uspace/app/tester/print/print4.c
===================================================================
--- uspace/app/tester/print/print4.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/print/print4.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -31,5 +31,5 @@
 #include "../tester.h"
 
-char *test_print4(void)
+const char *test_print4(void)
 {
 	TPRINTF("ASCII printable characters (32 - 127) using printf(\"%%c\") and printf(\"%%lc\"):\n");
Index: uspace/app/tester/stdio/stdio1.c
===================================================================
--- uspace/app/tester/stdio/stdio1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/stdio/stdio1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -36,8 +36,8 @@
 static char buf[BUF_SIZE + 1];
 
-char *test_stdio1(void)
+const char *test_stdio1(void)
 {
 	FILE *file;
-	char *file_name = "/readme";
+	const char *file_name = "/readme";
 	
 	TPRINTF("Open file \"%s\"...", file_name);
Index: uspace/app/tester/stdio/stdio2.c
===================================================================
--- uspace/app/tester/stdio/stdio2.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/stdio/stdio2.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -32,8 +32,8 @@
 #include "../tester.h"
 
-char *test_stdio2(void)
+const char *test_stdio2(void)
 {
 	FILE *file;
-	char *file_name = "/test";
+	const char *file_name = "/test";
 	
 	TPRINTF("Open file \"%s\" for writing...", file_name);
Index: uspace/app/tester/tester.c
===================================================================
--- uspace/app/tester/tester.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/tester.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -69,5 +69,5 @@
 {
 	/* Execute the test */
-	char *ret = test->entry();
+	const char *ret = test->entry();
 	
 	if (ret == NULL) {
Index: uspace/app/tester/tester.h
===================================================================
--- uspace/app/tester/tester.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/tester.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -54,30 +54,30 @@
 	}
 
-typedef char *(*test_entry_t)(void);
+typedef const char *(*test_entry_t)(void);
 
 typedef struct {
-	char *name;
-	char *desc;
+	const char *name;
+	const char *desc;
 	test_entry_t entry;
 	bool safe;
 } test_t;
 
-extern char *test_thread1(void);
-extern char *test_print1(void);
-extern char *test_print2(void);
-extern char *test_print3(void);
-extern char *test_print4(void);
-extern char *test_console1(void);
-extern char *test_stdio1(void);
-extern char *test_stdio2(void);
-extern char *test_fault1(void);
-extern char *test_fault2(void);
-extern char *test_fault3(void);
-extern char *test_vfs1(void);
-extern char *test_ping_pong(void);
-extern char *test_register(void);
-extern char *test_connect(void);
-extern char *test_loop1(void);
-extern char *test_malloc1(void);
+extern const char *test_thread1(void);
+extern const char *test_print1(void);
+extern const char *test_print2(void);
+extern const char *test_print3(void);
+extern const char *test_print4(void);
+extern const char *test_console1(void);
+extern const char *test_stdio1(void);
+extern const char *test_stdio2(void);
+extern const char *test_fault1(void);
+extern const char *test_fault2(void);
+extern const char *test_fault3(void);
+extern const char *test_vfs1(void);
+extern const char *test_ping_pong(void);
+extern const char *test_register(void);
+extern const char *test_connect(void);
+extern const char *test_loop1(void);
+extern const char *test_malloc1(void);
 
 extern test_t tests[];
Index: uspace/app/tester/thread/thread1.c
===================================================================
--- uspace/app/tester/thread/thread1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/thread/thread1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -50,5 +50,5 @@
 }
 
-char *test_thread1(void)
+const char *test_thread1(void)
 {
 	unsigned int i;
Index: uspace/app/tester/vfs/vfs1.c
===================================================================
--- uspace/app/tester/vfs/vfs1.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tester/vfs/vfs1.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -54,5 +54,5 @@
 static char text[] = "Lorem ipsum dolor sit amet, consectetur adipisicing elit";
 
-static char *read_root(void)
+static const char *read_root(void)
 {
 	TPRINTF("Opening the root directory...");
@@ -73,5 +73,5 @@
 }
 
-char *test_vfs1(void)
+const char *test_vfs1(void)
 {
 	if (mkdir(MOUNT_POINT, 0) != 0)
@@ -121,5 +121,5 @@
 	close(fd0);
 	
-	char *rv = read_root();
+	const char *rv = read_root();
 	if (rv != NULL)
 		return rv;
Index: uspace/app/tetris/screen.c
===================================================================
--- uspace/app/tetris/screen.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tetris/screen.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -72,5 +72,5 @@
  * simply literal strings);
  */
-static inline void putstr(char *s)
+static inline void putstr(const char *s)
 {
 	while (*s)
@@ -181,5 +181,5 @@
 }
 
-void stop(char *why)
+void stop(const char *why)
 {
 	if (isset)
Index: uspace/app/tetris/tetris.h
===================================================================
--- uspace/app/tetris/tetris.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/tetris/tetris.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -186,5 +186,5 @@
 extern int fits_in(const struct shape *, int);
 extern void place(const struct shape *, int, int);
-extern void stop(char *);
+extern void stop(const char *);
 
 /** @}
Index: uspace/app/trace/errors.h
===================================================================
--- uspace/app/trace/errors.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/errors.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,6 +37,6 @@
 
 typedef struct {
-	char *name;	/**< Error value name (Exx) */
-	char *desc;	/**< Error description */
+	const char *name;  /**< Error value name (Exx) */
+	const char *desc;  /**< Error description */
 } err_desc_t;
 
Index: uspace/app/trace/ipc_desc.h
===================================================================
--- uspace/app/trace/ipc_desc.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/ipc_desc.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -38,5 +38,5 @@
 typedef struct {
 	int number;
-	char *name;
+	const char *name;
 } ipc_m_desc_t;
 
Index: uspace/app/trace/proto.c
===================================================================
--- uspace/app/trace/proto.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/proto.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -157,5 +157,5 @@
 }
 
-static void proto_struct_init(proto_t *proto, char *name)
+static void proto_struct_init(proto_t *proto, const char *name)
 {
 	proto->name = name;
@@ -164,5 +164,5 @@
 }
 
-proto_t *proto_new(char *name)
+proto_t *proto_new(const char *name)
 {
 	proto_t *p;
@@ -206,10 +206,10 @@
 }
 
-static void oper_struct_init(oper_t *oper, char *name)
+static void oper_struct_init(oper_t *oper, const char *name)
 {
 	oper->name = name;
 }
 
-oper_t *oper_new(char *name, int argc, val_type_t *arg_types,
+oper_t *oper_new(const char *name, int argc, val_type_t *arg_types,
     val_type_t rv_type, int respc, val_type_t *resp_types)
 {
Index: uspace/app/trace/proto.h
===================================================================
--- uspace/app/trace/proto.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/proto.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,5 +43,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 
 	int argc;
@@ -56,5 +56,5 @@
 typedef struct {
 	/** Protocol name */
-	char *name;
+	const char *name;
 
 	/** Maps method number to operation */
@@ -70,10 +70,10 @@
 void proto_register(int srv, proto_t *proto);
 proto_t *proto_get_by_srv(int srv);
-proto_t *proto_new(char *name);
+proto_t *proto_new(const char *name);
 void proto_delete(proto_t *proto);
 void proto_add_oper(proto_t *proto, int method, oper_t *oper);
 oper_t *proto_get_oper(proto_t *proto, int method);
 
-oper_t *oper_new(char *name, int argc, val_type_t *arg_types,
+oper_t *oper_new(const char *name, int argc, val_type_t *arg_types,
     val_type_t rv_type, int respc, val_type_t *resp_types);
 
Index: uspace/app/trace/syscalls.h
===================================================================
--- uspace/app/trace/syscalls.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/syscalls.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -39,5 +39,5 @@
 
 typedef struct {
-	char *name;
+	const char *name;
 	int n_args;
 	val_type_t rv_type;
Index: uspace/app/trace/trace.c
===================================================================
--- uspace/app/trace/trace.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/app/trace/trace.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -585,5 +585,5 @@
 }
 
-static loader_t *preload_task(const char *path, char *const argv[],
+static loader_t *preload_task(const char *path, char **argv,
     task_id_t *task_id)
 {
@@ -591,5 +591,5 @@
 	int rc;
 
-	/* Spawn a program loader */	
+	/* Spawn a program loader */
 	ldr = loader_connect();
 	if (ldr == NULL)
@@ -607,5 +607,5 @@
 
 	/* Send arguments */
-	rc = loader_set_args(ldr, argv);
+	rc = loader_set_args(ldr, (const char **) argv);
 	if (rc != EOK)
 		goto error;
@@ -870,25 +870,31 @@
 }
 
-static display_mask_t parse_display_mask(char *text)
+static display_mask_t parse_display_mask(const char *text)
 {
 	display_mask_t dm;
-	char *c;
-
-	c = text;
-
+	const char *c = text;
+	
 	while (*c) {
 		switch (*c) {
-		case 't': dm = dm | DM_THREAD; break;
-		case 's': dm = dm | DM_SYSCALL; break;
-		case 'i': dm = dm | DM_IPC; break;
-		case 'p': dm = dm | DM_SYSTEM | DM_USER; break;
+		case 't':
+			dm = dm | DM_THREAD;
+			break;
+		case 's':
+			dm = dm | DM_SYSCALL;
+			break;
+		case 'i':
+			dm = dm | DM_IPC;
+			break;
+		case 'p':
+			dm = dm | DM_SYSTEM | DM_USER;
+			break;
 		default:
 			printf("Unexpected event type '%c'.\n", *c);
 			exit(1);
 		}
-
+		
 		++c;
 	}
-
+	
 	return dm;
 }
@@ -896,13 +902,13 @@
 static int parse_args(int argc, char *argv[])
 {
-	char *arg;
 	char *err_p;
 
 	task_id = 0;
 
-	--argc; ++argv;
+	--argc;
+	++argv;
 
 	while (argc > 0) {
-		arg = *argv;
+		char *arg = *argv;
 		if (arg[0] == '+') {
 			display_mask = parse_display_mask(&arg[1]);
@@ -910,5 +916,6 @@
 			if (arg[1] == 't') {
 				/* Trace an already running task */
-				--argc; ++argv;
+				--argc;
+				++argv;
 				task_id = strtol(*argv, &err_p, 10);
 				task_ldr = NULL;
@@ -927,10 +934,12 @@
 			break;
 		}
-
-		--argc; ++argv;
+		
+		--argc;
+		++argv;
 	}
 
 	if (task_id != 0) {
-		if (argc == 0) return 0;
+		if (argc == 0)
+			return 0;
 		printf("Extra arguments\n");
 		print_syntax();
@@ -946,8 +955,9 @@
 	/* Preload the specified program file. */
 	printf("Spawning '%s' with arguments:\n", *argv);
-	{
-		char **cp = argv;
-		while (*cp) printf("'%s'\n", *cp++);
-	}
+	
+	char **cp = argv;
+	while (*cp)
+		printf("'%s'\n", *cp++);
+	
 	task_ldr = preload_task(*argv, argv, &task_id);
 	task_wait_for = true;
Index: uspace/lib/libc/Makefile.toolchain
===================================================================
--- uspace/lib/libc/Makefile.toolchain	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/Makefile.toolchain	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -27,22 +27,26 @@
 #
 
-GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
+OPTIMIZATION = 3
+
+GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(LIBC_PREFIX)/../../../config.h \
 	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
 	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
 	-Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -Werror -pipe -g -D__$(ENDIANESS)__
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-Werror -pipe -g -D__$(ENDIANESS)__
 
-ICC_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
+ICC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(LIBC_PREFIX)/../../../config.h \
+	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
+	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
+	-Wall -Wextra -Wno-clobbered -Wno-unused-parameter -Wmissing-prototypes \
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-Werror -pipe -g -D__$(ENDIANESS)__
+
+CLANG_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(LIBC_PREFIX)/../../../config.h \
 	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
 	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
 	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -Werror -pipe -g -D__$(ENDIANESS)__
-
-CLANG_CFLAGS = -I$(LIBC_PREFIX)/include -O3 -imacros $(LIBC_PREFIX)/../../../config.h \
-	-fexec-charset=UTF-8 -fwide-exec-charset=UTF-32$(ENDIANESS) \
-	-finput-charset=UTF-8 -ffreestanding -fno-builtin -nostdlib -nostdinc \
-	-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes \
-	-Werror-implicit-function-declaration -pipe -g -arch $(CLANG_ARCH) \
-	-D__$(ENDIANESS)__
+	-Werror-implicit-function-declaration -Wwrite-strings \
+	-pipe -g -arch $(CLANG_ARCH) -D__$(ENDIANESS)__
 
 LFLAGS = -M -N $(SOFTINT_PREFIX)/libsoftint.a
Index: uspace/lib/libc/generic/loader.c
===================================================================
--- uspace/lib/libc/generic/loader.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/loader.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -183,5 +183,5 @@
  *
  */
-int loader_set_args(loader_t *ldr, char *const argv[])
+int loader_set_args(loader_t *ldr, const char *const argv[])
 {
 	/*
@@ -189,5 +189,5 @@
 	 * compute size of the buffer needed.
 	 */
-	char *const *ap = argv;
+	const char *const *ap = argv;
 	size_t buffer_size = 0;
 	while (*ap != NULL) {
Index: uspace/lib/libc/generic/sysinfo.c
===================================================================
--- uspace/lib/libc/generic/sysinfo.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/sysinfo.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -37,7 +37,7 @@
 #include <string.h>
 
-sysarg_t sysinfo_value(char *name)
+sysarg_t sysinfo_value(const char *name)
 {
-	return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t ) name,
+	return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t) name,
 	    (sysarg_t) str_size(name));
 }
Index: uspace/lib/libc/generic/task.c
===================================================================
--- uspace/lib/libc/generic/task.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/task.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -76,5 +76,5 @@
  *
  */
-task_id_t task_spawn(const char *path, char *const args[])
+task_id_t task_spawn(const char *path, const char *const args[])
 {
 	/* Connect to a program loader. */
Index: uspace/lib/libc/generic/thread.c
===================================================================
--- uspace/lib/libc/generic/thread.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/generic/thread.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -86,5 +86,5 @@
  * @return Zero on success or a code from @ref errno.h on failure.
  */
-int thread_create(void (* function)(void *), void *arg, char *name,
+int thread_create(void (* function)(void *), void *arg, const char *name,
     thread_id_t *tid)
 {
Index: uspace/lib/libc/include/loader/loader.h
===================================================================
--- uspace/lib/libc/include/loader/loader.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/loader/loader.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -51,5 +51,5 @@
 extern int loader_set_cwd(loader_t *);
 extern int loader_set_pathname(loader_t *, const char *);
-extern int loader_set_args(loader_t *, char *const[]);
+extern int loader_set_args(loader_t *, const char *const[]);
 extern int loader_set_files(loader_t *, fdi_node_t *const[]);
 extern int loader_load_program(loader_t *);
Index: uspace/lib/libc/include/sysinfo.h
===================================================================
--- uspace/lib/libc/include/sysinfo.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/sysinfo.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,5 +40,5 @@
 #include <string.h>
 
-sysarg_t sysinfo_value(char *name);
+sysarg_t sysinfo_value(const char *name);
 
 #endif
Index: uspace/lib/libc/include/task.h
===================================================================
--- uspace/lib/libc/include/task.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/task.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -47,5 +47,5 @@
 extern task_id_t task_get_id(void);
 extern int task_set_name(const char *name);
-extern task_id_t task_spawn(const char *path, char *const argv[]);
+extern task_id_t task_spawn(const char *path, const char *const argv[]);
 extern int task_wait(task_id_t id, task_exit_t *texit, int *retval);
 extern int task_retval(int val);
Index: uspace/lib/libc/include/thread.h
===================================================================
--- uspace/lib/libc/include/thread.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libc/include/thread.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -45,5 +45,5 @@
 extern void __thread_main(uspace_arg_t *);
 
-extern int thread_create(void (*)(void *), void *, char *, thread_id_t *);
+extern int thread_create(void (*)(void *), void *, const char *, thread_id_t *);
 extern void thread_exit(int) __attribute__ ((noreturn));
 extern void thread_detach(thread_id_t);
Index: uspace/lib/libpci/access.c
===================================================================
--- uspace/lib/libpci/access.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/access.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -51,5 +51,5 @@
 }
 
-static void pci_generic_error(char *msg, ...)
+static void pci_generic_error(const char *msg, ...)
 {
 	va_list args;
@@ -62,5 +62,5 @@
 }
 
-static void pci_generic_warn(char *msg, ...)
+static void pci_generic_warn(const char *msg, ...)
 {
 	va_list args;
@@ -72,5 +72,5 @@
 }
 
-static void pci_generic_debug(char *msg, ...)
+static void pci_generic_debug(const char *msg, ...)
 {
 	va_list args;
@@ -81,5 +81,5 @@
 }
 
-static void pci_null_debug(char *msg UNUSED, ...)
+static void pci_null_debug(const char *msg UNUSED, ...)
 {
 }
Index: uspace/lib/libpci/internal.h
===================================================================
--- uspace/lib/libpci/internal.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/internal.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -13,5 +13,5 @@
 
 struct pci_methods {
-	char *name;
+	const char *name;
 	void (*config) (struct pci_access *);
 	int (*detect) (struct pci_access *);
Index: uspace/lib/libpci/names.c
===================================================================
--- uspace/lib/libpci/names.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/names.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -299,5 +299,5 @@
 }
 
-char *pci_lookup_name(struct pci_access *a, char *buf, int size, int flags,
+const char *pci_lookup_name(struct pci_access *a, char *buf, int size, int flags,
 		      ...)
 {
Index: uspace/lib/libpci/pci.h
===================================================================
--- uspace/lib/libpci/pci.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/pci.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -40,7 +40,7 @@
 
 	/* Functions you can override: */
-	void (*error) (char *msg, ...);	/* Write error message and quit */
-	void (*warning) (char *msg, ...);	/* Write a warning message */
-	void (*debug) (char *msg, ...);	/* Write a debugging message */
+	void (*error) (const char *msg, ...);	/* Write error message and quit */
+	void (*warning) (const char *msg, ...);	/* Write a warning message */
+	void (*debug) (const char *msg, ...);	/* Write a debugging message */
 
 	struct pci_dev *devices;	/* Devices found on this bus */
@@ -128,6 +128,6 @@
  */
 
-char *pci_lookup_name(struct pci_access *a, char *buf, int size, int flags,
-		      ...);
+const char *pci_lookup_name(struct pci_access *a, char *buf, int size,
+    int flags, ...);
 
 int pci_load_name_list(struct pci_access *a);	/* Called automatically by pci_lookup_*() when needed; returns success */
Index: uspace/lib/libpci/pci_ids.h
===================================================================
--- uspace/lib/libpci/pci_ids.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/lib/libpci/pci_ids.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -1,4 +1,4 @@
 /* DO NOT EDIT, THIS FILE IS AUTOMATICALLY GENERATED */
-char *pci_ids[] = {
+const char *pci_ids[] = {
 "0000  Gammagraphx, Inc.",
 "001a  Ascend Communications, Inc.",
Index: uspace/srv/hid/adb_mouse/adb_dev.c
===================================================================
--- uspace/srv/hid/adb_mouse/adb_dev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/adb_mouse/adb_dev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -50,5 +50,5 @@
 int adb_dev_init(void)
 {
-	char *input = "/dev/adb/mouse";
+	const char *input = "/dev/adb/mouse";
 	int input_fd;
 
Index: uspace/srv/hid/char_mouse/chardev.c
===================================================================
--- uspace/srv/hid/char_mouse/chardev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/char_mouse/chardev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
 int mouse_port_init(void)
 {
-	char *input = "/dev/char/ps2b";
+	const char *input = "/dev/char/ps2b";
 	int input_fd;
 
Index: uspace/srv/hid/fb/serial_console.c
===================================================================
--- uspace/srv/hid/fb/serial_console.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/fb/serial_console.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -100,5 +100,5 @@
 };
 
-void serial_puts(char *str)
+void serial_puts(const char *str)
 {
 	while (*str)
Index: uspace/srv/hid/fb/serial_console.h
===================================================================
--- uspace/srv/hid/fb/serial_console.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/fb/serial_console.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -43,5 +43,5 @@
 typedef void (*putc_function_t)(char);
 
-void serial_puts(char *str);
+void serial_puts(const char *str);
 void serial_goto(const unsigned int col, const unsigned int row);
 void serial_clrscr(void);
Index: uspace/srv/hid/kbd/port/adb.c
===================================================================
--- uspace/srv/hid/kbd/port/adb.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/kbd/port/adb.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -53,5 +53,5 @@
 int kbd_port_init(void)
 {
-	char *input = "/dev/adb/kbd";
+	const char *input = "/dev/adb/kbd";
 	int input_fd;
 
Index: uspace/srv/hid/kbd/port/chardev.c
===================================================================
--- uspace/srv/hid/kbd/port/chardev.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/hid/kbd/port/chardev.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -52,5 +52,5 @@
 int kbd_port_init(void)
 {
-	char *input = "/dev/char/ps2a";
+	const char *input = "/dev/char/ps2a";
 	int input_fd;
 
Index: uspace/srv/loader/elf_load.c
===================================================================
--- uspace/srv/loader/elf_load.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/loader/elf_load.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -60,5 +60,5 @@
 #define DPRINTF(...)
 
-static char *error_codes[] = {
+static const char *error_codes[] = {
 	"no error",
 	"invalid image",
@@ -95,12 +95,13 @@
  * pointed to by @a info.
  *
- * @param file_name	Path to the ELF file.
- * @param so_bias	Bias to use if the file is a shared object.
- * @param info		Pointer to a structure for storing information
- *			extracted from the binary.
+ * @param file_name Path to the ELF file.
+ * @param so_bias   Bias to use if the file is a shared object.
+ * @param info      Pointer to a structure for storing information
+ *                  extracted from the binary.
  *
  * @return EOK on success or negative error code.
- */
-int elf_load_file(char *file_name, size_t so_bias, elf_info_t *info)
+ *
+ */
+int elf_load_file(const char *file_name, size_t so_bias, elf_info_t *info)
 {
 	elf_ld_t elf;
@@ -130,5 +131,6 @@
  * earlier with elf_load_file(). This function does not return.
  *
- * @param info	Info structure filled earlier by elf_load_file()
+ * @param info Info structure filled earlier by elf_load_file()
+ *
  */
 void elf_run(elf_info_t *info, pcb_t *pcb)
@@ -280,5 +282,5 @@
  * @return NULL terminated description of error.
  */
-char *elf_error(unsigned int rc)
+const char *elf_error(unsigned int rc)
 {
 	assert(rc < sizeof(error_codes) / sizeof(char *));
Index: uspace/srv/loader/include/elf.h
===================================================================
--- uspace/srv/loader/include/elf.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/loader/include/elf.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -337,5 +337,5 @@
 #endif
 
-extern char *elf_error(unsigned int rc);
+extern const char *elf_error(unsigned int rc);
 
 #endif
Index: uspace/srv/loader/include/elf_load.h
===================================================================
--- uspace/srv/loader/include/elf_load.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/loader/include/elf_load.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup generic	
+/** @addtogroup generic
  * @{
  */
@@ -51,5 +51,5 @@
 
 	/** ELF interpreter name or NULL if statically-linked */
-	char *interp;
+	const char *interp;
 
 	/** Pointer to the dynamic section */
@@ -74,5 +74,5 @@
 } elf_ld_t;
 
-int elf_load_file(char *file_name, size_t so_bias, elf_info_t *info);
+int elf_load_file(const char *file_name, size_t so_bias, elf_info_t *info);
 void elf_run(elf_info_t *info, pcb_t *pcb);
 void elf_create_pcb(elf_info_t *info, pcb_t *pcb);
Index: uspace/srv/net/il/ip/ip.c
===================================================================
--- uspace/srv/net/il/ip/ip.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/il/ip/ip.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -479,5 +479,5 @@
 	ERROR_DECLARE;
 
-	measured_string_t	names[] = {{ "IPV", 3 }, { "IP_CONFIG", 9 }, { "IP_ADDR", 7 }, { "IP_NETMASK", 10 }, { "IP_GATEWAY", 10 }, { "IP_BROADCAST", 12 }, { "ARP", 3 }, { "IP_ROUTING", 10 }};
+	measured_string_t	names[] = {{ str_dup("IPV"), 3 }, { str_dup("IP_CONFIG"), 9 }, { str_dup("IP_ADDR"), 7 }, { str_dup("IP_NETMASK"), 10 }, { str_dup("IP_GATEWAY"), 10 }, { str_dup("IP_BROADCAST"), 12 }, { str_dup("ARP"), 3 }, { str_dup("IP_ROUTING"), 10 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/net/net/net.c
===================================================================
--- uspace/srv/net/net/net.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/net/net.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -154,5 +154,5 @@
  *  @returns Other error codes as defined for the add_configuration() function.
  */
-int	read_netif_configuration( char * name, netif_ref netif );
+int	read_netif_configuration( const char * name, netif_ref netif );
 
 /** Networking module global data.
@@ -413,5 +413,5 @@
 }
 
-int read_netif_configuration( char * name, netif_ref netif ){
+int read_netif_configuration( const char * name, netif_ref netif ){
 	// read the netif configuration file
 	return read_configuration_file( CONF_DIR, name, & netif->configuration );
@@ -485,7 +485,7 @@
 
 #ifdef CONFIG_NETIF_DP8390
-	char *		conf_files[] = { "lo", "ne2k" };
+	const char *		conf_files[] = { "lo", "ne2k" };
 #else
-	char *		conf_files[] = { "lo" };
+	const char *		conf_files[] = { "lo" };
 #endif
 
Index: uspace/srv/net/net/start/netstart.c
===================================================================
--- uspace/srv/net/net/start/netstart.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/net/start/netstart.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -69,5 +69,5 @@
  *  @returns Other error codes as defined for the task_spawn() function.
  */
-task_id_t	spawn( char * fname );
+task_id_t	spawn( const char * fname );
 
 int main( int argc, char * argv[] ){
@@ -97,6 +97,6 @@
 }
 
-task_id_t spawn( char * fname ){
-	char *	argv[ 2 ];
+task_id_t spawn( const char * fname ){
+	const char *	argv[ 2 ];
 	task_id_t	res;
 
Index: uspace/srv/net/netif/lo/lo.c
===================================================================
--- uspace/srv/net/netif/lo/lo.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/netif/lo/lo.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -102,5 +102,5 @@
 int netif_get_addr_message( device_id_t device_id, measured_string_ref address ){
 	if( ! address ) return EBADMEM;
-	address->value = DEFAULT_ADDR;
+	address->value = str_dup(DEFAULT_ADDR);
 	address->length = DEFAULT_ADDR_LEN;
 	return EOK;
Index: uspace/srv/net/nil/eth/eth.c
===================================================================
--- uspace/srv/net/nil/eth/eth.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/nil/eth/eth.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -308,5 +308,5 @@
 	eth_device_ref	device;
 	int				index;
-	measured_string_t	names[ 2 ] = {{ "ETH_MODE", 8 }, { "ETH_DUMMY", 9 }};
+	measured_string_t	names[ 2 ] = {{ str_dup("ETH_MODE"), 8 }, { str_dup("ETH_DUMMY"), 9 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/net/structures/module_map.c
===================================================================
--- uspace/srv/net/structures/module_map.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/structures/module_map.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,5 +49,5 @@
 GENERIC_CHAR_MAP_IMPLEMENT( modules, module_t )
 
-int add_module( module_ref * module, modules_ref modules, char * name, char * filename, services_t service, task_id_t task_id, connect_module_t connect_module ){
+int add_module( module_ref * module, modules_ref modules, const char * name, const char * filename, services_t service, task_id_t task_id, connect_module_t connect_module ){
 	ERROR_DECLARE;
 
@@ -86,6 +86,6 @@
 }
 
-task_id_t spawn( char * fname ){
-	char * argv[ 2 ];
+task_id_t spawn( const char * fname ){
+	const char * argv[ 2 ];
 	task_id_t	res;
 
Index: uspace/srv/net/structures/module_map.h
===================================================================
--- uspace/srv/net/structures/module_map.h	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/structures/module_map.h	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -79,8 +79,8 @@
 	/** Module name.
 	 */
-	char *		name;
+	const char *		name;
 	/** Module full path filename.
 	 */
-	char *		filename;
+	const char *		filename;
 	/** Connecting function.
 	 */
@@ -99,5 +99,5 @@
  *  @returns ENOMEM if there is not enough memory left.
  */
-int	add_module( module_ref * module, modules_ref modules, char * name, char * filename, services_t service, task_id_t task_id, connect_module_t * connect_module );
+int	add_module( module_ref * module, modules_ref modules, const char * name, const char * filename, services_t service, task_id_t task_id, connect_module_t * connect_module );
 
 /** Searches and returns the specified module.
@@ -116,5 +116,5 @@
  *  @returns 0 if there is no such module.
  */
-task_id_t	spawn( char * fname );
+task_id_t	spawn( const char * fname );
 
 #endif
Index: uspace/srv/net/tl/icmp/icmp.c
===================================================================
--- uspace/srv/net/tl/icmp/icmp.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/tl/icmp/icmp.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -464,5 +464,5 @@
 	ERROR_DECLARE;
 
-	measured_string_t	names[] = {{ "ICMP_ERROR_REPORTING", 20 }, { "ICMP_ECHO_REPLYING", 18 }};
+	measured_string_t	names[] = {{ str_dup("ICMP_ERROR_REPORTING"), 20 }, { str_dup("ICMP_ECHO_REPLYING"), 18 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/net/tl/udp/udp.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -192,5 +192,5 @@
 	ERROR_DECLARE;
 
-	measured_string_t	names[] = {{ "UDP_CHECKSUM_COMPUTING", 22 }, { "UDP_AUTOBINDING", 15 }};
+	measured_string_t	names[] = {{ str_dup("UDP_CHECKSUM_COMPUTING"), 22 }, { str_dup("UDP_AUTOBINDING"), 15 }};
 	measured_string_ref	configuration;
 	size_t				count = sizeof( names ) / sizeof( measured_string_t );
Index: uspace/srv/taskmon/taskmon.c
===================================================================
--- uspace/srv/taskmon/taskmon.c	(revision a634485c00ca23ba2df2fecef2d928929debee43)
+++ uspace/srv/taskmon/taskmon.c	(revision a000878c0dee83a08f032207ffd800c201fca95b)
@@ -49,9 +49,9 @@
 static void fault_event(ipc_callid_t callid, ipc_call_t *call)
 {
-	char *argv[6];
-	char *fname;
+	const char *argv[6];
+	const char *fname;
 	char *dump_fname;
 	char *s_taskid;
-	char **s;
+	const char **s;
 
 	task_id_t taskid;
@@ -89,5 +89,6 @@
 
 	printf(NAME ": Executing");
-        s = argv;
+	
+	s = argv;
 	while (*s != NULL) {
 		printf(" %s", *s);
