Index: kernel/Makefile
===================================================================
--- kernel/Makefile	(revision a4125fb155a1a1dc8d12da8d1d63d6722a79e39a)
+++ kernel/Makefile	(revision 1cb092db568d2b204d6707d983f35e6d3828d3a1)
@@ -82,5 +82,10 @@
 
 INCLUDES = generic/include
+
+ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
+OPTIMIZATION = s
+else
 OPTIMIZATION = 3
+endif
 
 DEFS = -DKERNEL -DRELEASE=$(RELEASE) "-DNAME=$(NAME)" -D__$(BITS)_BITS__ -D__$(ENDIANESS)__
@@ -352,4 +357,7 @@
 $(RAW): $(LINK) $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(SYMTAB_OBJECTS)
 	$(LD) -N $(LFLAGS) -T $(LINK) -M -Map $(MAP) -o $@ $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS) $(EXTRA_OBJECTS) $(SYMTAB_OBJECTS)
+ifeq ($(CONFIG_STRIP_BINARIES),y)
+	$(STRIP) $(RAW) 
+endif
 
 $(LINK): $(LINK).in $(DEPEND)
Index: uspace/Makefile.common
===================================================================
--- uspace/Makefile.common	(revision a4125fb155a1a1dc8d12da8d1d63d6722a79e39a)
+++ uspace/Makefile.common	(revision 1cb092db568d2b204d6707d983f35e6d3828d3a1)
@@ -104,5 +104,9 @@
 	find . -name '*.o' -follow -exec rm \{\} \;
 
+ifeq ($(CONFIG_OPTIMIZE_FOR_SIZE),y)
+OPTIMIZATION = s
+else
 OPTIMIZATION = 3
+endif
 
 GCC_CFLAGS = -I$(LIBC_PREFIX)/include -O$(OPTIMIZATION) -imacros $(CONFIG_HEADER) \
@@ -167,4 +171,7 @@
 $(BINARY): $(LINKER_SCRIPT) $(OBJECTS) $(LIBS) $(BASE_LIBS)
 	$(LD) -N $(LFLAGS) -T $(LINKER_SCRIPT) -M -Map $(BINARY).map -o $(BINARY) $(OBJECTS) $(LIBS) $(BASE_LIBS)
+ifeq ($(CONFIG_STRIP_BINARIES),y)
+	$(STRIP) $(BINARY)
+endif
 endif
 
