diff -Naur -X exclude-files ac_clean/arch/um/drivers/ubd.c ac/arch/um/drivers/ubd.c
--- ac_clean/arch/um/drivers/ubd.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/drivers/ubd.c	Sun May 27 18:35:21 2001
@@ -5,13 +5,14 @@
 
 #include "ubd_user.h"
 #define MAJOR_NR UBD_MAJOR
+#include "linux/config.h"
 #include "linux/blk.h"
 #include "linux/blkdev.h"
 #include "linux/hdreg.h"
 #include "linux/init.h"
 #include "linux/devfs_fs_kernel.h"
 #include "linux/cdrom.h"
-#include <linux/proc_fs.h>
+#include "linux/proc_fs.h"
 #include "asm/segment.h"
 #include "asm/uaccess.h"
 #include "asm/irq.h"
diff -Naur -X exclude-files ac_clean/arch/um/kernel/current.c ac/arch/um/kernel/current.c
--- ac_clean/arch/um/kernel/current.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/current.c	Sun May 27 18:36:17 2001
@@ -3,9 +3,10 @@
  * Licensed under the GPL
  */
 
+#include "linux/config.h"
 #include "linux/sched.h"
 
-#ifndef __SMP__
+#ifndef CONFIG_SMP
 
 struct task_struct *current_task;
 
diff -Naur -X exclude-files ac_clean/arch/um/kernel/irq.c ac/arch/um/kernel/irq.c
--- ac_clean/arch/um/kernel/irq.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/irq.c	Sun May 27 18:36:37 2001
@@ -5,6 +5,7 @@
  *	Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar
  */
 
+#include "linux/config.h"
 #include "linux/kernel.h"
 #include "linux/smp.h"
 #include "linux/irq.h"
diff -Naur -X exclude-files ac_clean/arch/um/kernel/mem.c ac/arch/um/kernel/mem.c
--- ac_clean/arch/um/kernel/mem.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/mem.c	Sun May 27 18:37:03 2001
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/config.h"
 #include "linux/types.h"
 #include "linux/mm.h"
 #include "linux/fs.h"
diff -Naur -X exclude-files ac_clean/arch/um/kernel/process_kern.c ac/arch/um/kernel/process_kern.c
--- ac_clean/arch/um/kernel/process_kern.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/process_kern.c	Sun May 27 18:37:50 2001
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/config.h"
 #include "linux/sched.h"
 #include "linux/interrupt.h"
 #include "linux/mm.h"
@@ -144,7 +145,7 @@
 		tracer_panic("task didn't set its pid");
 	task->mm = NULL;
 	task->active_mm = NULL;
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 	if(cpu != -1){
 		cpu_tasks[cpu].pid = extern_pid;
 		cpu_tasks[cpu].task = task;
@@ -217,7 +218,7 @@
 
 void do_bh(void)
 {
-#ifndef __SMP__
+#ifndef CONFIG_SMP
 	if (softirq_active(0) & softirq_mask(0)){
 		do_softirq();
 		unblock_signals();
@@ -366,7 +367,7 @@
 		switch_record[switch_index].to = to;
 		switch_record[switch_index++].processor = to->processor;
 		if(switch_index == 1024) switch_index = 0;
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 		cpu_tasks[proc_id].task = to;
 		cpu_tasks[proc_id].pid = to->thread.extern_pid;
 		if(cpu_tasks[0].pid == cpu_tasks[1].pid)
@@ -443,7 +444,7 @@
 {
 	del_from_runqueue(current);
 	init_idle();
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 	smp_num_cpus++;
 #endif
 	do_idle();
@@ -494,7 +495,7 @@
 
 char *current_cmd(void)
 {
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 	return("(Unknown)");
 #else
 	unsigned long addr;
diff -Naur -X exclude-files ac_clean/arch/um/kernel/signal_kern.c ac/arch/um/kernel/signal_kern.c
--- ac_clean/arch/um/kernel/signal_kern.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/signal_kern.c	Sun May 27 18:39:21 2001
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/config.h"
 #include "linux/stddef.h"
 #include "linux/sys.h"
 #include "linux/sched.h"
@@ -304,7 +305,7 @@
 	unsigned long handler;
 	int repeat, signal;
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 #error signal_deliverer needs some SMP work
 #else
 	task = current;
diff -Naur -X exclude-files ac_clean/arch/um/kernel/smp.c ac/arch/um/kernel/smp.c
--- ac_clean/arch/um/kernel/smp.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/smp.c	Sun May 27 18:39:41 2001
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/config.h"
 #include "linux/sched.h"
 #include "linux/threads.h"
 #include "asm/smp.h"
@@ -14,7 +15,7 @@
 #include "kern_util.h"
 #include "kern.h"
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 
 /* Total count of live CPUs */
 int smp_num_cpus = 0;
@@ -122,7 +123,7 @@
 	return(-1);
 }
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 int hard_smp_processor_id(void)
 {
 	return(pid_to_processor_id(getpid()));
diff -Naur -X exclude-files ac_clean/arch/um/kernel/trap_user.c ac/arch/um/kernel/trap_user.c
--- ac_clean/arch/um/kernel/trap_user.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/trap_user.c	Sun May 27 18:45:44 2001
@@ -52,7 +52,7 @@
 	return((*proc)(NULL));
 }
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 #error need to make these arrays
 #endif
 
@@ -165,7 +165,7 @@
 			eip = ptrace(PTRACE_PEEKUSER, pid, UM_IP_OFFSET, 0);
 			signal_record[signal_index].addr = eip;
 			signal_record[signal_index++].signal = sig;
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 			proc_id = pid_to_processor_id(pid);
 			task = cpu_tasks[proc_id].task;
 #else
diff -Naur -X exclude-files ac_clean/arch/um/kernel/um_arch.c ac/arch/um/kernel/um_arch.c
--- ac_clean/arch/um/kernel/um_arch.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/um_arch.c	Sun May 27 18:46:18 2001
@@ -3,6 +3,7 @@
  * Licensed under the GPL
  */
 
+#include "linux/config.h"
 #include "linux/sched.h"
 #include "linux/mm.h"
 #include "linux/types.h"
@@ -65,7 +66,7 @@
 
 	block_signals();
 	pid = getpid();
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 	cpu_tasks[0].pid = pid;
 	cpu_tasks[0].task = current;
 	smp_num_cpus = 1;
@@ -216,7 +217,7 @@
 		else if(!strncmp(argv[i], "mem=", strlen("mem="))) 
 			physmem_size = memparse(argv[i] + strlen("mem="), 
 						&retptr);
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 		else if(!strncmp(argv[i], "ncpus=", strlen("ncpus=")))
 			ncpus = strtoul(argv[i] + strlen("ncpus="), NULL, 10);
 #endif
diff -Naur -X exclude-files ac_clean/arch/um/kernel/user_syms.c ac/arch/um/kernel/user_syms.c
--- ac_clean/arch/um/kernel/user_syms.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/kernel/user_syms.c	Sun May 27 18:46:40 2001
@@ -9,6 +9,10 @@
 #include <sys/vfs.h>
 #include "user_util.h"
 
+/* XXX All the CONFIG_* stuff is broken because this file can't include
+ * config.h
+ */
+
 /* Had to steal this from linux/module.h because that file can't be included
  * since this includes various user-level headers.
  */
diff -Naur -X exclude-files ac_clean/arch/um/ptproxy/proxy.c ac/arch/um/ptproxy/proxy.c
--- ac_clean/arch/um/ptproxy/proxy.c	Sun May 27 15:42:43 2001
+++ ac/arch/um/ptproxy/proxy.c	Sun May 27 18:47:17 2001
@@ -7,6 +7,8 @@
 Jeff Dike (jdike@karaya.com) : Modified for integration into uml
 **********************************************************************/
 
+/* XXX This file shouldn't refer to CONFIG_* */
+
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -101,7 +103,7 @@
 	syscall_continue (debugger->pid);
 }
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 #error need to make these arrays
 #endif
 
diff -Naur -X exclude-files ac_clean/include/asm-um/current.h ac/include/asm-um/current.h
--- ac_clean/include/asm-um/current.h	Sun May 27 15:42:45 2001
+++ ac/include/asm-um/current.h	Sun May 27 18:54:31 2001
@@ -1,9 +1,11 @@
 #ifndef __UM_CURRENT_H
 #define __UM_CURRENT_H
 
+#include "linux/config.h"
+
 struct task_struct;
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 extern struct task_struct *current_task[];
 
 #define CURRENT_TASK(dummy) (((unsigned long) &dummy) & (PAGE_MASK << 2))
diff -Naur -X exclude-files ac_clean/include/asm-um/smp.h ac/include/asm-um/smp.h
--- ac_clean/include/asm-um/smp.h	Sun May 27 15:42:45 2001
+++ ac/include/asm-um/smp.h	Sun May 27 18:54:31 2001
@@ -1,9 +1,10 @@
 #ifndef __UM_SMP_H
 #define __UM_SMP_H
 
+#include "linux/config.h"
 #include "asm/current.h"
 
-#ifdef __SMP__
+#ifdef CONFIG_SMP
 
 #define smp_processor_id() (current->processor)