From 414b512c60706e34473edd58fe876037ea77138c Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Tue, 6 Aug 2019 12:50:38 -0400
Subject: [PATCH] remove riscv64 bits/user.h contents

the contents conflicted with asm/ptrace.h. glibc does not provide
anything in user.h for riscv, so software cannot be depending on it.

simplified from patch submitted by Baruch Siach.

[ baruch: add empty line so that 'patch -E' doesn't delete user.h ]
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
Upstream status: commit d493206de7df

 arch/riscv64/bits/user.h | 42 ----------------------------------------
 1 file changed, 42 deletions(-)

diff --git a/arch/riscv64/bits/user.h b/arch/riscv64/bits/user.h
index bd0f0fc7027f..8b137891791f 100644
--- a/arch/riscv64/bits/user.h
+++ b/arch/riscv64/bits/user.h
@@ -1,43 +1 @@
-struct user_regs_struct {
-	unsigned long pc;
-	unsigned long ra;
-	unsigned long sp;
-	unsigned long gp;
-	unsigned long tp;
-	unsigned long t0;
-	unsigned long t1;
-	unsigned long t2;
-	unsigned long s0;
-	unsigned long s1;
-	unsigned long a0;
-	unsigned long a1;
-	unsigned long a2;
-	unsigned long a3;
-	unsigned long a4;
-	unsigned long a5;
-	unsigned long a6;
-	unsigned long a7;
-	unsigned long s2;
-	unsigned long s3;
-	unsigned long s4;
-	unsigned long s5;
-	unsigned long s6;
-	unsigned long s7;
-	unsigned long s8;
-	unsigned long s9;
-	unsigned long s10;
-	unsigned long s11;
-	unsigned long t3;
-	unsigned long t4;
-	unsigned long t5;
-	unsigned long t6;
-};
 
-struct user_fpregs_struct {
-	double f[32];
-	unsigned int fcsr;
-};
-
-#define ELF_NGREG 32
-typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
-typedef struct user_fpregs_struct elf_fpregset_t;
-- 
2.20.1

