Index: Makefile
===================================================================
--- Makefile	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ Makefile	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -183,5 +183,5 @@
 
 arch/$(ARCH)/_link.ld: arch/$(ARCH)/_link.ld.in
-	$(CC) $(DEFS) $(CFLAGS) -E -x c $< | grep -v "^\#" > $@
+	$(CC) $(DEFS) $(CFLAGS) -D__ASM__ -E -x c $< | grep -v "^\#" > $@
 
 generic/src/debug/real_map.bin: depend arch/$(ARCH)/_link.ld $(ARCH_OBJECTS) $(GENARCH_OBJECTS) $(GENERIC_OBJECTS)
Index: arch/amd64/include/mm/page.h
===================================================================
--- arch/amd64/include/mm/page.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/amd64/include/mm/page.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -32,11 +32,13 @@
 #include <arch/mm/frame.h>
 
+#define PAGE_WIDTH	FRAME_WIDTH
+#define PAGE_SIZE	FRAME_SIZE
+
+#ifdef KERNEL
+
 #ifndef __ASM__
 #  include <mm/page.h>
 #  include <arch/types.h>
 #endif
-
-#define PAGE_WIDTH	FRAME_WIDTH
-#define PAGE_SIZE	FRAME_SIZE
 
 #ifndef __ASM__
@@ -143,5 +145,7 @@
 extern void page_arch_init(void);
 
-#endif
+#endif /* __ASM__ */
+
+#endif /* KERNEL */
 
 #endif
Index: arch/ia32/include/mm/frame.h
===================================================================
--- arch/ia32/include/mm/frame.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/ia32/include/mm/frame.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -30,8 +30,12 @@
 #define __ia32_FRAME_H__
 
-#include <arch/types.h>
-
 #define FRAME_WIDTH	12	/* 4K */
 #define FRAME_SIZE	(1<<FRAME_WIDTH)
+
+
+#ifdef KERNEL
+#ifndef __ASM__
+
+#include <arch/types.h>
 
 extern __address last_frame;
@@ -39,3 +43,6 @@
 extern void frame_arch_init(void);
 
+#endif /* __ASM__ */
+#endif /* KERNEL */
+
 #endif
Index: arch/ia32/include/mm/page.h
===================================================================
--- arch/ia32/include/mm/page.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/ia32/include/mm/page.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -30,6 +30,10 @@
 #define __ia32_PAGE_H__
 
+#include <arch/mm/frame.h>
+
 #define PAGE_WIDTH	FRAME_WIDTH
 #define PAGE_SIZE	FRAME_SIZE
+
+#ifdef KERNEL
 
 #ifndef __ASM__
@@ -136,3 +140,5 @@
 #endif /* __ASM__ */
 
+#endif /* KERNEL */
+
 #endif
Index: arch/ia64/include/mm/frame.h
===================================================================
--- arch/ia64/include/mm/frame.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/ia64/include/mm/frame.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -33,8 +33,13 @@
 #define FRAME_SIZE		(1<<FRAME_WIDTH)
 
+#ifdef KERNEL
+#ifndef __ASM__
+
 extern void frame_arch_init(void);
-
 
 #define ARCH_STACK_FRAMES TWO_FRAMES
 
+#endif /* __ASM__ */
+#endif /* KERNEL */
+
 #endif
Index: arch/ia64/include/mm/page.h
===================================================================
--- arch/ia64/include/mm/page.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/ia64/include/mm/page.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -31,6 +31,11 @@
 #define __ia64_PAGE_H__
 
+#include <arch/mm/frame.h>
+
 #define PAGE_SIZE	FRAME_SIZE
 #define PAGE_WIDTH	FRAME_WIDTH
+
+
+#ifdef KERNEL
 
 /** Bit width of the TLB-locked portion of kernel address space. */
@@ -266,5 +271,7 @@
 extern void vhpt_set_record(vhpt_entry_t *v, __address page, asid_t asid, __address frame, int flags);
 
+#endif /* __ASM__ */
+
+#endif /* KERNEL */
+
 #endif
-
-#endif
Index: arch/mips32/include/mm/frame.h
===================================================================
--- arch/mips32/include/mm/frame.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/mips32/include/mm/frame.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -33,5 +33,11 @@
 #define FRAME_SIZE		(1<<FRAME_WIDTH)
 
+#ifdef KERNEL
+#ifndef __ASM__
+
 extern void frame_arch_init(void);
 
+#endif /* __ASM__ */
+#endif /* KERNEL */
+
 #endif
Index: arch/mips32/include/mm/page.h
===================================================================
--- arch/mips32/include/mm/page.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/mips32/include/mm/page.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -30,4 +30,6 @@
 #define __mips32_PAGE_H__
 
+#include <arch/mm/frame.h>
+
 #define PAGE_WIDTH	FRAME_WIDTH
 #define PAGE_SIZE	FRAME_SIZE
@@ -40,4 +42,6 @@
 #  define PA2KA(x)	((x) + 0x80000000)
 #endif
+
+#ifdef KERNEL
 
 /*
@@ -135,3 +139,5 @@
 #endif /* __ASM__ */
 
+#endif /* KERNEL */
+
 #endif
Index: arch/ppc32/include/mm/frame.h
===================================================================
--- arch/ppc32/include/mm/frame.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/ppc32/include/mm/frame.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -33,5 +33,11 @@
 #define FRAME_SIZE		(1<<FRAME_WIDTH)
 
+#ifdef KERNEL
+#ifndef __ASM__
+
 extern void frame_arch_init(void);
 
+#endif /* __ASM__ */
+#endif /* KERNEL */
+
 #endif
Index: arch/ppc32/include/mm/page.h
===================================================================
--- arch/ppc32/include/mm/page.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/ppc32/include/mm/page.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -30,6 +30,10 @@
 #define __ppc32_PAGE_H__
 
+#include <arch/mm/frame.h>
+
 #define PAGE_WIDTH	FRAME_WIDTH
 #define PAGE_SIZE	FRAME_SIZE
+
+#ifdef KERNEL
 
 #ifndef __ASM__
@@ -85,3 +89,5 @@
 #endif /* __ASM__ */
 
+#endif /* KERNEL */
+
 #endif
Index: arch/sparc64/include/mm/frame.h
===================================================================
--- arch/sparc64/include/mm/frame.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/sparc64/include/mm/frame.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -30,8 +30,11 @@
 #define __sparc64_FRAME_H__
 
-#include <arch/types.h>
-
 #define FRAME_WIDTH		13	/* 8K */
 #define FRAME_SIZE		(1<<FRAME_WIDTH)
+
+#ifdef KERNEL
+#ifndef __ASM__
+
+#include <arch/types.h>
 
 union frame_address {
@@ -49,2 +52,5 @@
 
 #endif
+#endif
+
+#endif
Index: arch/sparc64/include/mm/page.h
===================================================================
--- arch/sparc64/include/mm/page.h	(revision e74cb73cbab961321532b012b1090380dd325f74)
+++ arch/sparc64/include/mm/page.h	(revision d1f8a87ac9eee01b7c1dd694d9dba04fb72387be)
@@ -30,10 +30,13 @@
 #define __sparc64_PAGE_H__
 
-#include <mm/page.h>
 #include <arch/mm/frame.h>
-#include <arch/types.h>
 
 #define PAGE_WIDTH	FRAME_WIDTH
 #define PAGE_SIZE	FRAME_SIZE
+
+#ifdef KERNEL
+
+#include <mm/page.h>
+#include <arch/types.h>
 
 #define KA2PA(x)	((__address) (x))
@@ -54,3 +57,5 @@
 extern void page_arch_init(void);
 
+#endif /* KERNEL */
+
 #endif
