KBUILD_KCONFIG := arch/um/Kconfig.$(HEADER_ARCH)
 
-archprepare: $(SHARED_HEADERS)/user_constants.h
+archprepare: include/generated/user_constants.h
 archprepare: $(SHARED_HEADERS)/kern_constants.h
 
 LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
 # When cleaning we don't include .config, so we don't include
 # TT or skas makefiles and don't clean skas_ptregs.h.
 CLEAN_FILES += linux x.i gmon.out \
-       $(SHARED_HEADERS)/user_constants.h \
        $(SHARED_HEADERS)/kern_constants.h
 
 archclean:
          echo ""; )
 endef
 
-$(SHARED_HEADERS)/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s
+include/generated/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s
        $(call filechk,gen-asm-offsets)
 
 $(SHARED_HEADERS)/kern_constants.h:
 
 #ifndef __SYSDEP_I386_PTRACE_H
 #define __SYSDEP_I386_PTRACE_H
 
-#include "user_constants.h"
+#include <generated/user_constants.h>
 #include "sysdep/faultinfo.h"
 
 #define MAX_REG_NR (UM_FRAME_SIZE / sizeof(unsigned long))
 
 #include <sys/ptrace.h>
 #include <linux/ptrace.h>
 #include <asm/ptrace.h>
-#include "user_constants.h"
+#include <generated/user_constants.h>
 
 #define PT_OFFSET(r) ((r) * sizeof(long))
 
 
 #ifndef __SYSDEP_I386_SC_H
 #define __SYSDEP_I386_SC_H
 
-#include <user_constants.h>
+#include <generated/user_constants.h>
 
 #define SC_OFFSET(sc, field) \
        *((unsigned long *) &(((char *) (sc))[HOST_##field]))
 
 #ifndef __SYSDEP_X86_64_PTRACE_H
 #define __SYSDEP_X86_64_PTRACE_H
 
-#include "user_constants.h"
+#include <generated/user_constants.h>
 #include "sysdep/faultinfo.h"
 
 #define MAX_REG_OFFSET (UM_FRAME_SIZE)
 
 #include <linux/ptrace.h>
 #include <asm/ptrace.h>
 #undef __FRAME_OFFSETS
-#include "user_constants.h"
+#include <generated/user_constants.h>
 
 #define PT_INDEX(off) ((off) / sizeof(unsigned long))
 
 
  * Released under the GPL
  */
 
-#include <user_constants.h>
+#include <generated/user_constants.h>
 
 #define SC_OFFSET(sc, field) \
         *((unsigned long *) &(((char *) (sc))[HOST_##field]))