diff --git a/include/asm-sparc/user.h b/include/asm-sparc/user.h
index b5f1abf..3400ea8 100644
--- a/include/asm-sparc/user.h
+++ b/include/asm-sparc/user.h
@@ -1,60 +1,6 @@
-/* $Id: user.h,v 1.5 1998/02/23 01:49:22 rth Exp $
- * asm-sparc/user.h: Core file definitions for the Sparc.
- *
- * Keep in sync with reg.h.  Actually, we could get rid of this
- * one, since we won't a.out core dump that much anyways - miguel.
- * Copyright (C) 1995 (davem@caip.rutgers.edu)
- */
 #ifndef _SPARC_USER_H
 #define _SPARC_USER_H
 
-#include <asm/a.out.h>
-struct sunos_regs {
-	unsigned long psr, pc, npc, y;
-	unsigned long regs[15];
-};
-
-struct sunos_fpqueue {
-	unsigned long *addr;
-	unsigned long inst;
-};
-
-struct sunos_fp {
-	union {
-		unsigned long regs[32];
-		double reg_dbls[16];
-	} fregs;
-	unsigned long fsr;
-	unsigned long flags;
-	unsigned long extra;
-	unsigned long fpq_count;
-	struct sunos_fpqueue fpq[16];
-};
-
-struct sunos_fpu {
-	struct sunos_fp fpstatus;
-};
-
-/* The SunOS core file header layout. */
-struct user {
-	unsigned long magic;
-	unsigned long len;
-	struct sunos_regs regs;
-	struct exec uexec;
-	int           signal;
-	size_t        u_tsize; /* all of these in bytes! */
-	size_t        u_dsize;
-	size_t        u_ssize;
-	char          u_comm[17];
-	struct sunos_fpu fpu;
-	unsigned long sigcode;   /* Special sigcontext subcode, if any */
-};
-
-#define NBPG                   0x2000
-#define UPAGES                 1
-#define HOST_TEXT_START_ADDR   (u.start_code)
-#define HOST_DATA_START_ADDR   (u.uexec.a_data)
-#define HOST_STACK_END_ADDR    (- u.u_ssize * NBPG)
-#define SUNOS_CORE_MAGIC       0x080456
+/* Nothing to define.  */
 
 #endif /* !(_SPARC_USER_H) */
