Index: src/Makefile
===================================================================
--- src/Makefile	(revision bcdd9aaa2b06e0698f837f3dd463b72dbb23dfb9)
+++ src/Makefile	(revision c835e7c4c5606a7427f1b4d2e3d028ddd344932e)
@@ -19,4 +19,5 @@
 	lib/the.c \
 	debug/print.c \
+	debug/symtab.c \
 	time/clock.c \
 	time/timeout.c \
@@ -65,5 +66,5 @@
 clean:
 	find . ../arch/$(ARCH)/src ../test -name '*.o' -exec rm \{\} \;
-	-rm *.bin kernel.map
+	-rm *.bin kernel.map kernel.map.pre debug/real_map.bin
 	$(MAKE) -C ../arch/$(ARCH)/boot clean
 
@@ -74,5 +75,9 @@
 
 kernel.bin: $(arch_objects) $(objects) $(test_objects)
-	$(LD) $(LFLAGS) $(arch_objects) $(objects) $(test_objects) -o $@ -Map kernel.map
+	$(OBJCOPY) -I binary -O $(BFD_NAME) -B $(BFD_ARCH) --prefix-sections=symtab Makefile debug/empty_map.o
+	$(LD) $(LFLAGS) $(arch_objects) $(objects) $(test_objects) debug/empty_map.o -o $@ -Map kernel.map.pre
+	debug/genmap.py kernel.map.pre debug/real_map.bin
+	$(OBJCOPY) -I binary -O $(BFD_NAME) -B $(BFD_ARCH) --prefix-sections=symtab debug/real_map.bin debug/real_map.o
+	$(LD) $(LFLAGS) $(arch_objects) $(objects) $(test_objects) debug/real_map.o -o $@ -Map kernel.map	
 
 %.s: %.S
