Merge origin/netpush (networking code) (XCC)
[akaros.git] / tools / compilers / gcc-glibc / glibc-2.14.1-riscv.patch
index 298c978..f088313 100644 (file)
@@ -1,7 +1,8 @@
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/scripts/config.sub glibc-2.14.1/scripts/config.sub
---- ../glibc-2.14.1-orig/scripts/config.sub    2011-10-25 02:50:25.000000000 -0700
-+++ glibc-2.14.1/scripts/config.sub    2011-10-25 02:46:03.000000000 -0700
-@@ -290,6 +290,7 @@
+diff --git a/glibc-2.14.1/scripts/config.sub b/glibc-2.14.1/scripts/config.sub
+index 459eb41..46a0794 100755
+--- a/glibc-2.14.1/scripts/config.sub
++++ glibc-2.14.1/scripts/config.sub
+@@ -290,6 +290,7 @@ case $basic_machine in
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
        | pyramid \
@@ -9,15 +10,110 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/scripts/config.
        | rx \
        | score \
        | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/abort-instr.h glibc-2.14.1/sysdeps/riscv/abort-instr.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/abort-instr.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/abort-instr.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/Implies b/glibc-2.14.1/sysdeps/riscv/Implies
+new file mode 100644
+index 0000000..3c3d8e7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/Implies
+@@ -0,0 +1,5 @@
++ieee754/flt-32
++ieee754/dbl-64
++
++# This needs to change to support rv32
++riscv/rv64
+diff --git a/glibc-2.14.1/sysdeps/riscv/Makefile b/glibc-2.14.1/sysdeps/riscv/Makefile
+new file mode 100644
+index 0000000..b21eb39
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/Makefile
+@@ -0,0 +1,9 @@
++ifeq ($(subdir),misc)
++sysdep_headers += sys/asm.h sgidefs.h
++endif
++
++ifeq ($(subdir),rt)
++librt-sysdep_routines += rt-sysdep
++endif
++
++ASFLAGS-.os += $(pic-ccflag)
+diff --git a/glibc-2.14.1/sysdeps/riscv/__longjmp.S b/glibc-2.14.1/sysdeps/riscv/__longjmp.S
+new file mode 100644
+index 0000000..7c191b2
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/__longjmp.S
+@@ -0,0 +1,59 @@
++/* Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
++      Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <sys/asm.h>
++
++ENTRY (__longjmp)
++      REG_L ra,  0*SZREG(a0)
++      REG_L sp,  1*SZREG(a0)
++      REG_L tp,  2*SZREG(a0)
++      REG_L s0,  3*SZREG(a0)
++      REG_L s1,  4*SZREG(a0)
++      REG_L s2,  5*SZREG(a0)
++      REG_L s3,  6*SZREG(a0)
++      REG_L s4,  7*SZREG(a0)
++      REG_L s5,  8*SZREG(a0)
++      REG_L s6,  9*SZREG(a0)
++      REG_L s7, 10*SZREG(a0)
++      REG_L s8, 11*SZREG(a0)
++      REG_L s9, 12*SZREG(a0)
++
++#ifdef __riscv_hard_float
++      REG_L t0, 13*SZREG(a0)
++
++      fld  fs0, 8*0 + 14*SZREG(a0)
++      fld  fs1, 8*1 + 14*SZREG(a0)
++      fld  fs2, 8*2 + 14*SZREG(a0)
++      fld  fs3, 8*3 + 14*SZREG(a0)
++      fld  fs4, 8*4 + 14*SZREG(a0)
++      fld  fs5, 8*5 + 14*SZREG(a0)
++      fld  fs6, 8*6 + 14*SZREG(a0)
++      fld  fs7, 8*7 + 14*SZREG(a0)
++      fld  fs8, 8*8 + 14*SZREG(a0)
++      fld  fs9, 8*9 + 14*SZREG(a0)
++
++      mtfsr t0
++#endif
++
++      sltu t0, a1, 1    # t0 = (a1 == 0)
++      add  v0, t0, a1   # v0 = (a1 == 0 ? 1 : a1)
++      ret
++
++END(__longjmp)
+diff --git a/glibc-2.14.1/sysdeps/riscv/abort-instr.h b/glibc-2.14.1/sysdeps/riscv/abort-instr.h
+new file mode 100644
+index 0000000..a901452
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/abort-instr.h
 @@ -0,0 +1,2 @@
 +/* An instruction which should crash any program is a breakpoint.  */
 +#define ABORT_INSTRUCTION asm ("unimp")
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/atomic.h glibc-2.14.1/sysdeps/riscv/bits/atomic.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/atomic.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/atomic.h   2011-11-01 23:44:42.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/atomic.h b/glibc-2.14.1/sysdeps/riscv/bits/atomic.h
+new file mode 100644
+index 0000000..9f7890e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/atomic.h
 @@ -0,0 +1,177 @@
 +/* Low-level functions for atomic operations. Mips version.
 +   Copyright (C) 2005 Free Software Foundation, Inc.
@@ -196,9 +292,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +#define atomic_full_barrier() __sync_synchronize()
 +
 +#endif /* bits/atomic.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/dlfcn.h glibc-2.14.1/sysdeps/riscv/bits/dlfcn.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/dlfcn.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/dlfcn.h    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/dlfcn.h b/glibc-2.14.1/sysdeps/riscv/bits/dlfcn.h
+new file mode 100644
+index 0000000..a5b5bf5
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/dlfcn.h
 @@ -0,0 +1,66 @@
 +/* System dependent definitions for run-time dynamic loading.
 +   Copyright (C) 1996, 1997, 1999, 2000, 2001, 2004
@@ -266,9 +364,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +__END_DECLS
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/endian.h glibc-2.14.1/sysdeps/riscv/bits/endian.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/endian.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/endian.h   2011-10-27 21:55:31.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/endian.h b/glibc-2.14.1/sysdeps/riscv/bits/endian.h
+new file mode 100644
+index 0000000..0119a54
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/endian.h
 @@ -0,0 +1,13 @@
 +/* The MIPS architecture has selectable endianness.
 +   This file is for a machine using big-endian mode.  */
@@ -283,9 +383,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +#if __RISCVEL
 +# define __BYTE_ORDER __LITTLE_ENDIAN
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/fenv.h glibc-2.14.1/sysdeps/riscv/bits/fenv.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/fenv.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/fenv.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/fenv.h b/glibc-2.14.1/sysdeps/riscv/bits/fenv.h
+new file mode 100644
+index 0000000..24e0694
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/fenv.h
 @@ -0,0 +1,77 @@
 +/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -364,9 +466,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +/* Floating-point environment where none of the exception is masked.  */
 +# define FE_NOMASK_ENV  ((__const fenv_t *) -2)
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/ipctypes.h glibc-2.14.1/sysdeps/riscv/bits/ipctypes.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/ipctypes.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/ipctypes.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/ipctypes.h b/glibc-2.14.1/sysdeps/riscv/bits/ipctypes.h
+new file mode 100644
+index 0000000..0956e7d
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/ipctypes.h
 @@ -0,0 +1,32 @@
 +/* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM.  MIPS version
 +   Copyright (C) 2002 Free Software Foundation, Inc.
@@ -400,10 +504,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +
 +
 +#endif /* bits/ipctypes.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/link.h glibc-2.14.1/sysdeps/riscv/bits/link.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/link.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/link.h     2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,118 @@
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/link.h b/glibc-2.14.1/sysdeps/riscv/bits/link.h
+new file mode 100644
+index 0000000..f216ebd
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/link.h
+@@ -0,0 +1,76 @@
 +/* Copyright (C) 2005, 2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
@@ -426,68 +532,26 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +# error "Never include <bits/link.h> directly; use <link.h> instead."
 +#endif
 +
-+#include <sgidefs.h>
-+
-+#if _RISCV_SIM == _ABIO32
-+
-+/* Registers for entry into PLT on MIPS.  */
-+typedef struct La_mips_32_regs
-+{
-+  uint32_t lr_reg[4]; /* $a0 through $a3 */
-+  double lr_fpreg[2]; /* $f12 and $f14 */
-+  uint32_t lr_ra;
-+  uint32_t lr_sp;
-+} La_mips_32_regs;
-+
-+/* Return values for calls from PLT on MIPS.  */
-+typedef struct La_mips_32_retval
-+{
-+  uint32_t lrv_v0;
-+  uint32_t lrv_v1;
-+  double lrv_f0;
-+  double lrv_f2;
-+} La_mips_32_retval;
-+
-+#else
-+
 +typedef struct La_mips_64_regs
 +{
-+  uint64_t lr_reg[8]; /* $a0 through $a7 */
-+  double lr_fpreg[8]; /* $f12 throgh $f19 */
-+  uint64_t lr_ra;
-+  uint64_t lr_sp;
++  unsigned long lr_reg[8]; /* $a0 through $a7 */
++  double lr_fpreg[8]; /* $f4 throgh $f11 */
++  unsigned long lr_ra;
++  unsigned long lr_sp;
 +} La_mips_64_regs;
 +
 +/* Return values for calls from PLT on MIPS.  */
 +typedef struct La_mips_64_retval
 +{
-+  uint64_t lrv_v0;
-+  uint64_t lrv_v1;
-+  double lrv_f0;
-+  double lrv_f2;
++  unsigned long lrv_v0;
++  unsigned long lrv_v1;
++  double lrv_fv0;
++  double lrv_fv1;
 +} La_mips_64_retval;
 +
-+#endif
-+
 +__BEGIN_DECLS
 +
-+#if _RISCV_SIM == _ABIO32
-+
-+extern Elf32_Addr la_mips_o32_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
-+                                          uintptr_t *__refcook,
-+                                          uintptr_t *__defcook,
-+                                          La_mips_32_regs *__regs,
-+                                          unsigned int *__flags,
-+                                          const char *__symname,
-+                                          long int *__framesizep);
-+extern unsigned int la_mips_o32_gnu_pltexit (Elf32_Sym *__sym, unsigned int __ndx,
-+                                           uintptr_t *__refcook,
-+                                           uintptr_t *__defcook,
-+                                           const La_mips_32_regs *__inregs,
-+                                           La_mips_32_retval *__outregs,
-+                                           const char *__symname);
-+
-+#elif _RISCV_SIM == _ABIN32
++#if _RISCV_SIM == _ABI32
 +
 +extern Elf32_Addr la_mips_n32_gnu_pltenter (Elf32_Sym *__sym, unsigned int __ndx,
 +                                          uintptr_t *__refcook,
@@ -522,17 +586,21 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +#endif
 +
 +__END_DECLS
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/linkmap.h glibc-2.14.1/sysdeps/riscv/bits/linkmap.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/linkmap.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/linkmap.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/linkmap.h b/glibc-2.14.1/sysdeps/riscv/bits/linkmap.h
+new file mode 100644
+index 0000000..a6df782
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/linkmap.h
 @@ -0,0 +1,4 @@
 +struct link_map_machine
 +  {
 +    ElfW(Addr) plt; /* Address of .plt */
 +  };
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/mathdef.h glibc-2.14.1/sysdeps/riscv/bits/mathdef.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/mathdef.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/mathdef.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/mathdef.h b/glibc-2.14.1/sysdeps/riscv/bits/mathdef.h
+new file mode 100644
+index 0000000..d718016
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/mathdef.h
 @@ -0,0 +1,45 @@
 +/* Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2007
 +      Free Software Foundation, Inc.
@@ -574,14 +642,16 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +
 +#endif        /* ISO C99 */
 +
-+#if ! defined __NO_LONG_DOUBLE_MATH && _RISCV_SIM == _ABIO32
++#if ! defined __NO_LONG_DOUBLE_MATH && _RISCV_SIM == _ABI32
 +/* Signal that we do not really have a `long double'.  This disables the
 +   declaration of all the `long double' function variants.  */
 +# define __NO_LONG_DOUBLE_MATH        1
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/nan.h glibc-2.14.1/sysdeps/riscv/bits/nan.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/nan.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/nan.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/nan.h b/glibc-2.14.1/sysdeps/riscv/bits/nan.h
+new file mode 100644
+index 0000000..baaaa55
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/nan.h
 @@ -0,0 +1,56 @@
 +/* `NAN' constant for IEEE 754 machines.
 +   Copyright (C) 1992, 1996, 1997, 1999, 2002, 2004
@@ -639,9 +709,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +# define NAN  (__nan_union.__d)
 +
 +#endif        /* GCC.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/setjmp.h glibc-2.14.1/sysdeps/riscv/bits/setjmp.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/setjmp.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/setjmp.h   2011-11-02 01:20:35.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/setjmp.h b/glibc-2.14.1/sysdeps/riscv/bits/setjmp.h
+new file mode 100644
+index 0000000..40d6295
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/setjmp.h
 @@ -0,0 +1,47 @@
 +/* Define the machine-dependent type `jmp_buf'.  RISC-V version.
 +   Copyright (C) 1992,1993,1995,1997,2000,2002,2003,2004,2005,2006
@@ -690,9 +762,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +  } __jmp_buf[1];
 +
 +#endif /* _RISCV_BITS_SETJMP_H */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bits/wordsize.h glibc-2.14.1/sysdeps/riscv/bits/wordsize.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/bits/wordsize.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bits/wordsize.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bits/wordsize.h b/glibc-2.14.1/sysdeps/riscv/bits/wordsize.h
+new file mode 100644
+index 0000000..f956c87
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bits/wordsize.h
 @@ -0,0 +1,22 @@
 +/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -716,19 +790,25 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/b
 +#if _RISCV_SIM == _ABI64
 +# define __WORDSIZE_COMPAT32  1
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bsd-_setjmp.c glibc-2.14.1/sysdeps/riscv/bsd-_setjmp.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/bsd-_setjmp.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bsd-_setjmp.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bsd-_setjmp.c b/glibc-2.14.1/sysdeps/riscv/bsd-_setjmp.c
+new file mode 100644
+index 0000000..0d41310
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bsd-_setjmp.c
 @@ -0,0 +1 @@
 +/* _setjmp is implemented in setjmp.S */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/bsd-setjmp.c glibc-2.14.1/sysdeps/riscv/bsd-setjmp.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/bsd-setjmp.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/bsd-setjmp.c    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/bsd-setjmp.c b/glibc-2.14.1/sysdeps/riscv/bsd-setjmp.c
+new file mode 100644
+index 0000000..ee7c5e3
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/bsd-setjmp.c
 @@ -0,0 +1 @@
 +/* setjmp is implemented in setjmp.S */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/dl-dtprocnum.h glibc-2.14.1/sysdeps/riscv/dl-dtprocnum.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/dl-dtprocnum.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/dl-dtprocnum.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/dl-dtprocnum.h b/glibc-2.14.1/sysdeps/riscv/dl-dtprocnum.h
+new file mode 100644
+index 0000000..dfd03ba
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/dl-dtprocnum.h
 @@ -0,0 +1,22 @@
 +/* Configuration of lookup functions.  MIPS version.
 +   Copyright (C) 2000 Free Software Foundation, Inc.
@@ -752,9 +832,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +/* Number of extra dynamic section entries for this architecture.  By
 +   default there are none.  */
 +#define DT_THISPROCNUM        DT_MIPS_NUM
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/dl-lookup.c glibc-2.14.1/sysdeps/riscv/dl-lookup.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/dl-lookup.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/dl-lookup.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/dl-lookup.c b/glibc-2.14.1/sysdeps/riscv/dl-lookup.c
+new file mode 100644
+index 0000000..4090efe
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/dl-lookup.c
 @@ -0,0 +1,1033 @@
 +/* Look up a symbol in the loaded objects.
 +   MIPS/Linux version - special handling of non-PIC undefined symbol rules.
@@ -1789,10 +1871,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +    }
 +#endif
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/dl-machine.h glibc-2.14.1/sysdeps/riscv/dl-machine.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/dl-machine.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/dl-machine.h    2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,746 @@
+diff --git a/glibc-2.14.1/sysdeps/riscv/dl-machine.h b/glibc-2.14.1/sysdeps/riscv/dl-machine.h
+new file mode 100644
+index 0000000..830c199
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/dl-machine.h
+@@ -0,0 +1,735 @@
 +/* Machine-dependent ELF dynamic relocation inline functions.  MIPS version.
 +   Copyright (C) 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007
 +   Free Software Foundation, Inc.
@@ -1826,14 +1910,9 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +#error ENTRY_POINT needs to be defined for MIPS.
 +#endif
 +
-+#include <sgidefs.h>
 +#include <sys/asm.h>
 +#include <dl-tls.h>
 +
-+/* The offset of gp from GOT might be system-dependent.  It's set by
-+   ld.  The same value is also */
-+#define OFFSET_GP_GOT 0x7f0
-+
 +#ifndef _RTLD_PROLOGUE
 +# define _RTLD_PROLOGUE(entry)                                                \
 +      ".globl\t" __STRING(entry) "\n\t"                               \
@@ -1880,7 +1959,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +static inline ElfW(Addr) *
 +elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
 +{
-+  return (ElfW(Addr) *) (gpreg - OFFSET_GP_GOT);
++  return (ElfW(Addr) *) gpreg;
 +}
 +
 +/* Return the link-time address of _DYNAMIC.  Conveniently, this is the
@@ -1996,22 +2075,16 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +      # the address of the dynamic structure. Though MIPS ABI\n\
 +      # doesn't say nothing about this, I emulate this here.\n\
 +      " STRINGXV(PIC_LA(a0, gp, _DYNAMIC)) "\n\
-+      # Subtract OFFSET_GP_GOT\n\
-+      " STRINGXP(REG_S) " a0, -" STRINGXP(OFFSET_GP_GOT) "(gp)\n\
++      " STRINGXP(REG_S) " a0, 0(gp)\n\
 +      move a0, sp\n\
-+      addi sp, sp, -16\n\
-+      \n\
 +      rdnpc t0\n\
 +.Lcoff: \n\
-+      " STRINGXV(PIC_LA(a4, gp, .Lcoff)) "\n\
-+      sub a4, t0, a4\n\
-+      \n\
++      " STRINGXV(PIC_LA(t1, gp, .Lcoff)) "\n\
 +      " STRINGXV(PIC_LA(t7, gp, _dl_start)) "\n\
-+      add t7, t7, t0\n\
++      sub  t0, t0, t1\n\
++      add  t7, t7, t0\n\
 +      jalr t7\n\
-+      \n\
-+      addi sp, sp, 16\n\
-+      j _dl_start_user\n\
++      # Fall through to _dl_start_user \
 +      " _RTLD_EPILOGUE(ENTRY_POINT) "\
 +      \n\
 +      \n\
@@ -2539,9 +2612,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +}
 +
 +#endif /* RESOLVE_MAP */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/dl-tls.h glibc-2.14.1/sysdeps/riscv/dl-tls.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/dl-tls.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/dl-tls.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/dl-tls.h b/glibc-2.14.1/sysdeps/riscv/dl-tls.h
+new file mode 100644
+index 0000000..69d3893
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/dl-tls.h
 @@ -0,0 +1,49 @@
 +/* Thread-local storage handling in the ELF dynamic linker.  MIPS version.
 +   Copyright (C) 2005 Free Software Foundation, Inc.
@@ -2592,9 +2667,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +
 +/* Value used for dtv entries for which the allocation is delayed.  */
 +#define TLS_DTV_UNALLOCATED   ((void *) -1l)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/dl-trampoline.c glibc-2.14.1/sysdeps/riscv/dl-trampoline.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/dl-trampoline.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/dl-trampoline.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/dl-trampoline.c b/glibc-2.14.1/sysdeps/riscv/dl-trampoline.c
+new file mode 100644
+index 0000000..8baad99
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/dl-trampoline.c
 @@ -0,0 +1,295 @@
 +/* PLT trampoline.  MIPS version.
 +   Copyright (C) 1996-2001, 2002, 2003, 2004, 2005
@@ -2831,7 +2908,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +      .frame  sp, " STRINGXP(ELF_DL_FRAME_SIZE) ", ra\n\
 +      " STRINGXV(SETUP_GP64(t4, _dl_runtime_resolve)) "\n\
 +      # Save arguments and sp value in stack.\n\
-+      addi  sp, sp, " STRINGXP(ELF_DL_FRAME_SIZE) "\n\
++      addi  sp, sp, " STRINGXP(-ELF_DL_FRAME_SIZE) "\n\
 +      # Save slot call pc.\n\
 +      move    v0, ra\n\
 +      " ELF_DL_SAVE_ARG_REGS "\
@@ -2856,7 +2933,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +   - x17 (t5) - caller's return address
 +   - x18 (t6) - PLT entry index
 +   - x19 (t7) - address of _dl_runtime_pltresolve
-+   - o32 $28 (gp), n32/n64 $14 (t2) - address of .got.plt
++   - x14 (t2) - address of .got.plt
 +
 +   Different registers are used for .got.plt because the ABI was
 +   originally designed for o32, where gp was available (call
@@ -2864,8 +2941,8 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +
 +   _dl_fixup needs:
 +
-+   - $4 (a0) - link map address
-+   - $5 (a1) - .rel.plt offset (== PLT entry index * 8)  */
++   - x4 (a0) - link map address
++   - x5 (a1) - .rel.plt offset (== PLT entry index * 8)  */
 +
 +asm ("\n\
 +      .text\n\
@@ -2891,9 +2968,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/d
 +      .previous\n\
 +");
 +
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/elf/configure glibc-2.14.1/sysdeps/riscv/elf/configure
---- ../glibc-2.14.1-orig/sysdeps/riscv/elf/configure   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/elf/configure   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/elf/configure b/glibc-2.14.1/sysdeps/riscv/elf/configure
+new file mode 100644
+index 0000000..196f24f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/elf/configure
 @@ -0,0 +1,46 @@
 +# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
 + # Local configure fragment for sysdeps/mips/elf.
@@ -2941,9 +3020,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/e
 +fi
 +fi
 +
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/elf/configure.in glibc-2.14.1/sysdeps/riscv/elf/configure.in
---- ../glibc-2.14.1-orig/sysdeps/riscv/elf/configure.in        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/elf/configure.in        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/elf/configure.in b/glibc-2.14.1/sysdeps/riscv/elf/configure.in
+new file mode 100644
+index 0000000..8af2fa0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/elf/configure.in
 @@ -0,0 +1,35 @@
 +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 +# Local configure fragment for sysdeps/mips/elf.
@@ -2980,9 +3061,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/e
 +dnl No MIPS GCC supports accessing static and hidden symbols in an
 +dnl position independent way.
 +dnl AC_DEFINE(PI_STATIC_AND_HIDDEN)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/elf/start.S glibc-2.14.1/sysdeps/riscv/elf/start.S
---- ../glibc-2.14.1-orig/sysdeps/riscv/elf/start.S     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/elf/start.S     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/elf/start.S b/glibc-2.14.1/sysdeps/riscv/elf/start.S
+new file mode 100644
+index 0000000..d0ed80c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/elf/start.S
 @@ -0,0 +1,105 @@
 +/* Startup code compliant to the ELF Mips ABI.
 +   Copyright (C) 1995, 1997, 2000, 2001, 2002, 2003, 2004
@@ -3089,9 +3172,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/e
 +      .long 0
 +      .weak data_start
 +      data_start = __data_start
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/bits/mathinline.h glibc-2.14.1/sysdeps/riscv/fpu/bits/mathinline.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/bits/mathinline.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/bits/mathinline.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/bits/mathinline.h b/glibc-2.14.1/sysdeps/riscv/fpu/bits/mathinline.h
+new file mode 100644
+index 0000000..dfb033a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/bits/mathinline.h
 @@ -0,0 +1,52 @@
 +/* Inline math functions for RISC-V.
 +   Copyright (C) 2011
@@ -3145,9 +3230,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +
 +#endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
 +#endif /* __GNUC__ */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/e_sqrt.c glibc-2.14.1/sysdeps/riscv/fpu/e_sqrt.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/e_sqrt.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/e_sqrt.c    2011-10-27 22:20:54.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/e_sqrt.c b/glibc-2.14.1/sysdeps/riscv/fpu/e_sqrt.c
+new file mode 100644
+index 0000000..f956945
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/e_sqrt.c
 @@ -0,0 +1,26 @@
 +/* Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -3175,9 +3262,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  __asm__ ("fsqrt.d %0,%1" : "=f" (z) : "f" (x));
 +  return z;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/e_sqrtf.c glibc-2.14.1/sysdeps/riscv/fpu/e_sqrtf.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/e_sqrtf.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/e_sqrtf.c   2011-10-27 22:21:11.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/e_sqrtf.c b/glibc-2.14.1/sysdeps/riscv/fpu/e_sqrtf.c
+new file mode 100644
+index 0000000..6243194
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/e_sqrtf.c
 @@ -0,0 +1,26 @@
 +/* Copyright (C) 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -3205,9 +3294,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  __asm__ ("fsqrt.s %0,%1" : "=f" (z) : "f" (x));
 +  return z;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fclrexcpt.c glibc-2.14.1/sysdeps/riscv/fpu/fclrexcpt.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fclrexcpt.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fclrexcpt.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fclrexcpt.c b/glibc-2.14.1/sysdeps/riscv/fpu/fclrexcpt.c
+new file mode 100644
+index 0000000..f773312
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fclrexcpt.c
 @@ -0,0 +1,47 @@
 +/* Clear given exceptions in current floating-point environment.
 +   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
@@ -3256,9 +3347,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  /* Success.  */
 +  return 0;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fedisblxcpt.c glibc-2.14.1/sysdeps/riscv/fpu/fedisblxcpt.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fedisblxcpt.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fedisblxcpt.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fedisblxcpt.c b/glibc-2.14.1/sysdeps/riscv/fpu/fedisblxcpt.c
+new file mode 100644
+index 0000000..62e1a71
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fedisblxcpt.c
 @@ -0,0 +1,42 @@
 +/* Disable floating-point exceptions.
 +   Copyright (C) 2000 Free Software Foundation, Inc.
@@ -3302,9 +3395,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +
 +  return old_exc;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/feenablxcpt.c glibc-2.14.1/sysdeps/riscv/fpu/feenablxcpt.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/feenablxcpt.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/feenablxcpt.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/feenablxcpt.c b/glibc-2.14.1/sysdeps/riscv/fpu/feenablxcpt.c
+new file mode 100644
+index 0000000..4c28581
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/feenablxcpt.c
 @@ -0,0 +1,42 @@
 +/* Enable floating-point exceptions.
 +   Copyright (C) 2000 Free Software Foundation, Inc.
@@ -3348,9 +3443,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +
 +  return old_exc;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fegetenv.c glibc-2.14.1/sysdeps/riscv/fpu/fegetenv.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fegetenv.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fegetenv.c  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fegetenv.c b/glibc-2.14.1/sysdeps/riscv/fpu/fegetenv.c
+new file mode 100644
+index 0000000..da5d597
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fegetenv.c
 @@ -0,0 +1,32 @@
 +/* Store current floating-point environment.
 +   Copyright (C) 1998, 1999, 2000, 2002, 2010 Free Software Foundation, Inc.
@@ -3384,9 +3481,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  return 0;
 +}
 +libm_hidden_def (fegetenv)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fegetexcept.c glibc-2.14.1/sysdeps/riscv/fpu/fegetexcept.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fegetexcept.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fegetexcept.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fegetexcept.c b/glibc-2.14.1/sysdeps/riscv/fpu/fegetexcept.c
+new file mode 100644
+index 0000000..14b1241
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fegetexcept.c
 @@ -0,0 +1,34 @@
 +/* Get enabled floating-point exceptions.
 +   Copyright (C) 2000 Free Software Foundation, Inc.
@@ -3422,9 +3521,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +
 +  return (exc & ENABLE_MASK) >> ENABLE_SHIFT;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fegetround.c glibc-2.14.1/sysdeps/riscv/fpu/fegetround.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fegetround.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fegetround.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fegetround.c b/glibc-2.14.1/sysdeps/riscv/fpu/fegetround.c
+new file mode 100644
+index 0000000..efb1ba0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fegetround.c
 @@ -0,0 +1,33 @@
 +/* Return current rounding direction.
 +   Copyright (C) 1998 Free Software Foundation, Inc.
@@ -3459,9 +3560,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +
 +  return cw & 0x3;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/feholdexcpt.c glibc-2.14.1/sysdeps/riscv/fpu/feholdexcpt.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/feholdexcpt.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/feholdexcpt.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/feholdexcpt.c b/glibc-2.14.1/sysdeps/riscv/fpu/feholdexcpt.c
+new file mode 100644
+index 0000000..02ddc1b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/feholdexcpt.c
 @@ -0,0 +1,40 @@
 +/* Store current floating-point environment and clear exceptions.
 +   Copyright (C) 2000 Free Software Foundation, Inc.
@@ -3503,9 +3606,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +}
 +
 +libm_hidden_def (feholdexcept)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fenv_libc.h glibc-2.14.1/sysdeps/riscv/fpu/fenv_libc.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fenv_libc.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fenv_libc.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fenv_libc.h b/glibc-2.14.1/sysdeps/riscv/fpu/fenv_libc.h
+new file mode 100644
+index 0000000..d971d2c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fenv_libc.h
 @@ -0,0 +1,32 @@
 +/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -3539,9 +3644,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +
 +
 +#endif /* _FENV_LIBC_H */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fesetenv.c glibc-2.14.1/sysdeps/riscv/fpu/fesetenv.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fesetenv.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fesetenv.c  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fesetenv.c b/glibc-2.14.1/sysdeps/riscv/fpu/fesetenv.c
+new file mode 100644
+index 0000000..b71a877
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fesetenv.c
 @@ -0,0 +1,43 @@
 +/* Install given floating-point environment.
 +   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
@@ -3586,9 +3693,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +}
 +
 +libm_hidden_def (fesetenv)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fesetround.c glibc-2.14.1/sysdeps/riscv/fpu/fesetround.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fesetround.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fesetround.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fesetround.c b/glibc-2.14.1/sysdeps/riscv/fpu/fesetround.c
+new file mode 100644
+index 0000000..c28bd60
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fesetround.c
 @@ -0,0 +1,45 @@
 +/* Set current rounding direction.
 +   Copyright (C) 1998 Free Software Foundation, Inc.
@@ -3635,9 +3744,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +}
 +
 +libm_hidden_def (fesetround)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/feupdateenv.c glibc-2.14.1/sysdeps/riscv/fpu/feupdateenv.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/feupdateenv.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/feupdateenv.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/feupdateenv.c b/glibc-2.14.1/sysdeps/riscv/fpu/feupdateenv.c
+new file mode 100644
+index 0000000..5051562
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/feupdateenv.c
 @@ -0,0 +1,44 @@
 +/* Install given floating-point environment and raise exceptions.
 +   Copyright (C) 1998, 1999, 2000, 2002, 2010 Free Software Foundation, Inc.
@@ -3683,9 +3794,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  return 0;
 +}
 +libm_hidden_def (feupdateenv)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fgetexcptflg.c glibc-2.14.1/sysdeps/riscv/fpu/fgetexcptflg.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fgetexcptflg.c      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fgetexcptflg.c      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fgetexcptflg.c b/glibc-2.14.1/sysdeps/riscv/fpu/fgetexcptflg.c
+new file mode 100644
+index 0000000..27875b3
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fgetexcptflg.c
 @@ -0,0 +1,40 @@
 +/* Store current representation for exceptions.
 +   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
@@ -3727,9 +3840,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  /* Success.  */
 +  return 0;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fraiseexcpt.c glibc-2.14.1/sysdeps/riscv/fpu/fraiseexcpt.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fraiseexcpt.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fraiseexcpt.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fraiseexcpt.c b/glibc-2.14.1/sysdeps/riscv/fpu/fraiseexcpt.c
+new file mode 100644
+index 0000000..3e2ebe0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fraiseexcpt.c
 @@ -0,0 +1,47 @@
 +/* Raise given exceptions.
 +   Copyright (C) 2000, 2002 Free Software Foundation, Inc.
@@ -3778,9 +3893,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +}
 +
 +libm_hidden_def (feraiseexcept)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fsetexcptflg.c glibc-2.14.1/sysdeps/riscv/fpu/fsetexcptflg.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/fsetexcptflg.c      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/fsetexcptflg.c      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/fsetexcptflg.c b/glibc-2.14.1/sysdeps/riscv/fpu/fsetexcptflg.c
+new file mode 100644
+index 0000000..b129375
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/fsetexcptflg.c
 @@ -0,0 +1,43 @@
 +/* Set floating-point environment exception handling.
 +   Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
@@ -3825,9 +3942,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  /* Success.  */
 +  return 0;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/ftestexcept.c glibc-2.14.1/sysdeps/riscv/fpu/ftestexcept.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/ftestexcept.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/ftestexcept.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/ftestexcept.c b/glibc-2.14.1/sysdeps/riscv/fpu/ftestexcept.c
+new file mode 100644
+index 0000000..385554c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/ftestexcept.c
 @@ -0,0 +1,34 @@
 +/* Test exception in current environment.
 +   Copyright (C) 1998, 2010 Free Software Foundation, Inc.
@@ -3863,9 +3982,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +  return cw & excepts & FE_ALL_EXCEPT;
 +}
 +libm_hidden_def (fetestexcept)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu/libm-test-ulps glibc-2.14.1/sysdeps/riscv/fpu/libm-test-ulps
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu/libm-test-ulps      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu/libm-test-ulps      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu/libm-test-ulps b/glibc-2.14.1/sysdeps/riscv/fpu/libm-test-ulps
+new file mode 100644
+index 0000000..b514496
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu/libm-test-ulps
 @@ -0,0 +1,890 @@
 +# Begin of automatic generation
 +
@@ -4757,9 +4878,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +ifloat: 2
 +
 +# end of automatic generation
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/fpu_control.h glibc-2.14.1/sysdeps/riscv/fpu_control.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/fpu_control.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/fpu_control.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/fpu_control.h b/glibc-2.14.1/sysdeps/riscv/fpu_control.h
+new file mode 100644
+index 0000000..664d6ea
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/fpu_control.h
 @@ -0,0 +1,112 @@
 +/* FPU control word bits.  Mips version.
 +   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2006, 2008
@@ -4873,9 +4996,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/f
 +#endif /* __mips_soft_float */
 +
 +#endif        /* fpu_control.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/gccframe.h glibc-2.14.1/sysdeps/riscv/gccframe.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/gccframe.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/gccframe.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/gccframe.h b/glibc-2.14.1/sysdeps/riscv/gccframe.h
+new file mode 100644
+index 0000000..ec9311c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/gccframe.h
 @@ -0,0 +1,22 @@
 +/* Definition of object in frame unwind info.  mips version.
 +   Copyright (C) 2001 Free Software Foundation, Inc.
@@ -4899,9 +5024,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/g
 +#define FIRST_PSEUDO_REGISTER 76
 +
 +#include <sysdeps/generic/gccframe.h>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/ieee754.h glibc-2.14.1/sysdeps/riscv/ieee754.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/ieee754.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/ieee754.h       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/ieee754.h b/glibc-2.14.1/sysdeps/riscv/ieee754.h
+new file mode 100644
+index 0000000..912e088
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/ieee754.h
 @@ -0,0 +1,325 @@
 +/* Copyright (C) 1992, 1995, 1996, 1999, 2002, 2003
 +      Free Software Foundation, Inc.
@@ -5228,18 +5355,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/i
 +__END_DECLS
 +
 +#endif /* ieee754.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/Implies glibc-2.14.1/sysdeps/riscv/Implies
---- ../glibc-2.14.1-orig/sysdeps/riscv/Implies 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/Implies 2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,5 @@
-+ieee754/flt-32
-+ieee754/dbl-64
-+
-+# This needs to change to support rv32
-+riscv/rv64
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/init-first.c glibc-2.14.1/sysdeps/riscv/init-first.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/init-first.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/init-first.c    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/init-first.c b/glibc-2.14.1/sysdeps/riscv/init-first.c
+new file mode 100644
+index 0000000..1390f99
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/init-first.c
 @@ -0,0 +1,66 @@
 +/* Initialization code run first thing by the ELF startup code.  For mips/Unix.
 +   Copyright (C) 1996, 1997, 2010 Free Software Foundation, Inc.
@@ -5307,9 +5427,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/i
 +  init (&argc);
 +#endif
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/jmpbuf-unwind.h glibc-2.14.1/sysdeps/riscv/jmpbuf-unwind.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/jmpbuf-unwind.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/jmpbuf-unwind.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/jmpbuf-unwind.h b/glibc-2.14.1/sysdeps/riscv/jmpbuf-unwind.h
+new file mode 100644
+index 0000000..bfa1a64
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/jmpbuf-unwind.h
 @@ -0,0 +1,46 @@
 +/* Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -5357,9 +5479,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/j
 +
 +/* We use the normal longjmp for unwinding.  */
 +#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/ldsodefs.h glibc-2.14.1/sysdeps/riscv/ldsodefs.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/ldsodefs.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/ldsodefs.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/ldsodefs.h b/glibc-2.14.1/sysdeps/riscv/ldsodefs.h
+new file mode 100644
+index 0000000..5f85eef
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/ldsodefs.h
 @@ -0,0 +1,150 @@
 +/* Run-time dynamic linker data structures for loaded ELF shared objects.
 +   Copyright (C) 2000, 2002, 2003, 2006, 2007 Free Software Foundation, Inc.
@@ -5511,9 +5635,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/l
 +#define ELF64_R_INFO(sym, type) ELF64_MIPS_R_INFO ((sym), (type))
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/libc-tls.c glibc-2.14.1/sysdeps/riscv/libc-tls.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/libc-tls.c      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/libc-tls.c      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/libc-tls.c b/glibc-2.14.1/sysdeps/riscv/libc-tls.c
+new file mode 100644
+index 0000000..a3d6301
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/libc-tls.c
 @@ -0,0 +1,37 @@
 +/* Thread-local storage handling in the ELF dynamic linker.  MIPS version.
 +   Copyright (C) 2005 Free Software Foundation, Inc.
@@ -5552,85 +5678,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/l
 +}
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/__longjmp.S glibc-2.14.1/sysdeps/riscv/__longjmp.S
---- ../glibc-2.14.1-orig/sysdeps/riscv/__longjmp.S     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/__longjmp.S     2011-11-02 01:24:15.000000000 -0700
-@@ -0,0 +1,59 @@
-+/* Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
-+      Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+
-+ENTRY (__longjmp)
-+      REG_L ra,  0*SZREG(a0)
-+      REG_L sp,  1*SZREG(a0)
-+      REG_L tp,  2*SZREG(a0)
-+      REG_L s0,  3*SZREG(a0)
-+      REG_L s1,  4*SZREG(a0)
-+      REG_L s2,  5*SZREG(a0)
-+      REG_L s3,  6*SZREG(a0)
-+      REG_L s4,  7*SZREG(a0)
-+      REG_L s5,  8*SZREG(a0)
-+      REG_L s6,  9*SZREG(a0)
-+      REG_L s7, 10*SZREG(a0)
-+      REG_L s8, 11*SZREG(a0)
-+      REG_L s9, 12*SZREG(a0)
-+
-+#ifdef __riscv_hard_float
-+      REG_L t0, 13*SZREG(a0)
-+
-+      fld  fs0, 8*0 + 14*SZREG(a0)
-+      fld  fs1, 8*1 + 14*SZREG(a0)
-+      fld  fs2, 8*2 + 14*SZREG(a0)
-+      fld  fs3, 8*3 + 14*SZREG(a0)
-+      fld  fs4, 8*4 + 14*SZREG(a0)
-+      fld  fs5, 8*5 + 14*SZREG(a0)
-+      fld  fs6, 8*6 + 14*SZREG(a0)
-+      fld  fs7, 8*7 + 14*SZREG(a0)
-+      fld  fs8, 8*8 + 14*SZREG(a0)
-+      fld  fs9, 8*9 + 14*SZREG(a0)
-+
-+      mtfsr t0
-+#endif
-+
-+      sltu t0, a1, 1    # t0 = (a1 == 0)
-+      add  v0, t0, a1   # v0 = (a1 == 0 ? 1 : a1)
-+      ret
-+
-+END(__longjmp)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/Makefile glibc-2.14.1/sysdeps/riscv/Makefile
---- ../glibc-2.14.1-orig/sysdeps/riscv/Makefile        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/Makefile        2011-10-27 22:23:23.000000000 -0700
-@@ -0,0 +1,9 @@
-+ifeq ($(subdir),misc)
-+sysdep_headers += sys/asm.h sgidefs.h
-+endif
-+
-+ifeq ($(subdir),rt)
-+librt-sysdep_routines += rt-sysdep
-+endif
-+
-+ASFLAGS-.os += $(pic-ccflag)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/memcpy.c glibc-2.14.1/sysdeps/riscv/memcpy.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/memcpy.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/memcpy.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/memcpy.c b/glibc-2.14.1/sysdeps/riscv/memcpy.c
+new file mode 100644
+index 0000000..ed4dd4b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/memcpy.c
 @@ -0,0 +1,50 @@
 +#include <string.h>
 +
@@ -5682,9 +5734,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/m
 +}
 +
 +libc_hidden_builtin_def (memcpy)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/memset.c glibc-2.14.1/sysdeps/riscv/memset.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/memset.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/memset.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/memset.c b/glibc-2.14.1/sysdeps/riscv/memset.c
+new file mode 100644
+index 0000000..69b2f53
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/memset.c
 @@ -0,0 +1,49 @@
 +typedef unsigned long size_t;
 +//#include <string.h>
@@ -5735,9 +5789,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/m
 +}
 +
 +weak_alias (memset, __GI_memset)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/memusage.h glibc-2.14.1/sysdeps/riscv/memusage.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/memusage.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/memusage.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/memusage.h b/glibc-2.14.1/sysdeps/riscv/memusage.h
+new file mode 100644
+index 0000000..c558a06
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/memusage.h
 @@ -0,0 +1,21 @@
 +/* Copyright (C) 2000 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -5760,9 +5816,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/m
 +#define GETSP() ({ register uintptr_t stack_ptr asm ("sp"); stack_ptr; })
 +
 +#include <sysdeps/generic/memusage.h>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/Makefile glibc-2.14.1/sysdeps/riscv/nptl/Makefile
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/Makefile   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/Makefile   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/Makefile b/glibc-2.14.1/sysdeps/riscv/nptl/Makefile
+new file mode 100644
+index 0000000..d0c59a5
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/Makefile
 @@ -0,0 +1,25 @@
 +# Copyright (C) 2005 Free Software Foundation, Inc.
 +# This file is part of the GNU C Library.
@@ -5789,58 +5847,19 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/n
 +ifeq ($(subdir),nptl)
 +libpthread-sysdep_routines += nptl-sysdep
 +endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/nptl-sysdep.c glibc-2.14.1/sysdeps/riscv/nptl/nptl-sysdep.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/nptl-sysdep.c      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/nptl-sysdep.c      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/nptl-sysdep.c b/glibc-2.14.1/sysdeps/riscv/nptl/nptl-sysdep.c
+new file mode 100644
+index 0000000..16c1736
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/nptl-sysdep.c
 @@ -0,0 +1,2 @@
 +/* Pull in __syscall_error.  */
 +#include <sysdep.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/pthreaddef.h glibc-2.14.1/sysdeps/riscv/nptl/pthreaddef.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/pthreaddef.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/pthreaddef.h       2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,39 @@
-+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+/* Default stack size.  */
-+#define ARCH_STACK_DEFAULT_SIZE       (2 * 1024 * 1024)
-+
-+/* Required stack pointer alignment at beginning.  */
-+#define STACK_ALIGN           16
-+
-+/* Minimal stack size after allocating thread descriptor and guard size.  */
-+#define MINIMAL_REST_STACK    2048
-+
-+/* Alignment requirement for TCB.  */
-+#define TCB_ALIGNMENT         16
-+
-+
-+/* Location of current stack frame.  */
-+#define CURRENT_STACK_FRAME   __builtin_frame_address (0)
-+
-+
-+/* XXX Until we have a better place keep the definitions here.  */
-+
-+#define __exit_thread_inline(val) \
-+  INLINE_SYSCALL (exit, 1, (val))
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/pthread_spin_lock.c glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_lock.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/pthread_spin_lock.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_lock.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_lock.c b/glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_lock.c
+new file mode 100644
+index 0000000..14d873b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_lock.c
 @@ -0,0 +1,32 @@
 +/* Copyright (C) 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -5874,9 +5893,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/n
 +
 +  return 0;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/pthread_spin_trylock.c glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_trylock.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/pthread_spin_trylock.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_trylock.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_trylock.c b/glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_trylock.c
+new file mode 100644
+index 0000000..cb3b6cf
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/pthread_spin_trylock.c
 @@ -0,0 +1,33 @@
 +/* Copyright (C) 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -5911,27 +5932,13 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/n
 +
 +  return ret;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/tcb-offsets.sym glibc-2.14.1/sysdeps/riscv/nptl/tcb-offsets.sym
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/tcb-offsets.sym    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/tcb-offsets.sym    2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,11 @@
-+#include <sysdep.h>
-+#include <tls.h>
-+
-+--
-+
-+-- Abuse tls.h macros to derive offsets relative to the thread register.
-+#define thread_offsetof(mem)  (long)(offsetof(struct pthread, mem) - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
-+
-+MULTIPLE_THREADS_OFFSET               thread_offsetof (header.multiple_threads)
-+PID_OFFSET                    thread_offsetof (pid)
-+TID_OFFSET                    thread_offsetof (tid)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/nptl/tls.h glibc-2.14.1/sysdeps/riscv/nptl/tls.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/nptl/tls.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/nptl/tls.h      2011-10-27 22:17:29.000000000 -0700
-@@ -0,0 +1,165 @@
-+/* Definition for thread-local data handling.  NPTL/MIPS version.
-+   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/pthreaddef.h b/glibc-2.14.1/sysdeps/riscv/nptl/pthreaddef.h
+new file mode 100644
+index 0000000..e72b4bc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/pthreaddef.h
+@@ -0,0 +1,39 @@
++/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
 +   The GNU C Library is free software; you can redistribute it and/or
@@ -5949,19 +5956,82 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/n
 +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 +   02111-1307 USA.  */
 +
-+#ifndef _TLS_H
-+#define _TLS_H        1
++/* Default stack size.  */
++#define ARCH_STACK_DEFAULT_SIZE       (2 * 1024 * 1024)
 +
-+#include <dl-sysdep.h>
++/* Required stack pointer alignment at beginning.  */
++#define STACK_ALIGN           16
 +
-+#ifndef __ASSEMBLER__
-+# include <stdbool.h>
-+# include <stddef.h>
-+# include <stdint.h>
++/* Minimal stack size after allocating thread descriptor and guard size.  */
++#define MINIMAL_REST_STACK    2048
 +
-+/* Type for the dtv.  */
-+typedef union dtv
-+{
++/* Alignment requirement for TCB.  */
++#define TCB_ALIGNMENT         16
++
++
++/* Location of current stack frame.  */
++#define CURRENT_STACK_FRAME   __builtin_frame_address (0)
++
++
++/* XXX Until we have a better place keep the definitions here.  */
++
++#define __exit_thread_inline(val) \
++  INLINE_SYSCALL (exit, 1, (val))
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/tcb-offsets.sym b/glibc-2.14.1/sysdeps/riscv/nptl/tcb-offsets.sym
+new file mode 100644
+index 0000000..e0e71dc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/tcb-offsets.sym
+@@ -0,0 +1,11 @@
++#include <sysdep.h>
++#include <tls.h>
++
++--
++
++-- Abuse tls.h macros to derive offsets relative to the thread register.
++#define thread_offsetof(mem)  (long)(offsetof(struct pthread, mem) - TLS_TCB_OFFSET - TLS_PRE_TCB_SIZE)
++
++MULTIPLE_THREADS_OFFSET               thread_offsetof (header.multiple_threads)
++PID_OFFSET                    thread_offsetof (pid)
++TID_OFFSET                    thread_offsetof (tid)
+diff --git a/glibc-2.14.1/sysdeps/riscv/nptl/tls.h b/glibc-2.14.1/sysdeps/riscv/nptl/tls.h
+new file mode 100644
+index 0000000..e18be2a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/nptl/tls.h
+@@ -0,0 +1,165 @@
++/* Definition for thread-local data handling.  NPTL/MIPS version.
++   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef _TLS_H
++#define _TLS_H        1
++
++#include <dl-sysdep.h>
++
++#ifndef __ASSEMBLER__
++# include <stdbool.h>
++# include <stddef.h>
++# include <stdint.h>
++
++/* Type for the dtv.  */
++typedef union dtv
++{
 +  size_t counter;
 +  struct
 +  {
@@ -6095,9 +6165,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/n
 +#endif /* __ASSEMBLER__ */
 +
 +#endif        /* tls.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/preconfigure glibc-2.14.1/sysdeps/riscv/preconfigure
---- ../glibc-2.14.1-orig/sysdeps/riscv/preconfigure    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/preconfigure    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/preconfigure b/glibc-2.14.1/sysdeps/riscv/preconfigure
+new file mode 100644
+index 0000000..40bbbc3
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/preconfigure
 @@ -0,0 +1,21 @@
 +ccccase "$CC $CFLAGS $CPPFLAGS " in
 +*" -mabi=32 "*) mips_cc_abi=32 ;;
@@ -6120,22 +6192,62 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/p
 +  CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi"
 +fi
 +;;
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv32/Implies glibc-2.14.1/sysdeps/riscv/rv32/Implies
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv32/Implies    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv32/Implies    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv32/Implies b/glibc-2.14.1/sysdeps/riscv/rv32/Implies
+new file mode 100644
+index 0000000..b2313e9
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv32/Implies
 @@ -0,0 +1,2 @@
 +riscv
 +wordsize-32
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv32/Makefile glibc-2.14.1/sysdeps/riscv/rv32/Makefile
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv32/Makefile   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv32/Makefile   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv32/Makefile b/glibc-2.14.1/sysdeps/riscv/rv32/Makefile
+new file mode 100644
+index 0000000..dec0b02
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv32/Makefile
 @@ -0,0 +1,3 @@
 +ifeq ($(filter -mabi=32,$(CC)),)
 +CC += -mabi=32
 +endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/gmp-mparam.h glibc-2.14.1/sysdeps/riscv/rv64/gmp-mparam.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/gmp-mparam.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/gmp-mparam.h       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/Implies b/glibc-2.14.1/sysdeps/riscv/rv64/Implies
+new file mode 100644
+index 0000000..fae63bc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/Implies
+@@ -0,0 +1,6 @@
++ieee754/flt-32
++ieee754/dbl-64
++riscv/rv64/soft-fp
++riscv/rv64
++riscv
++wordsize-64
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/Makefile b/glibc-2.14.1/sysdeps/riscv/rv64/Makefile
+new file mode 100644
+index 0000000..47e2b8c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/Makefile
+@@ -0,0 +1,3 @@
++ifeq ($(filter -mabi=64,$(CC)),)
++CC += -mabi=64
++endif
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/Versions b/glibc-2.14.1/sysdeps/riscv/rv64/Versions
+new file mode 100644
+index 0000000..253a65f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/Versions
+@@ -0,0 +1,7 @@
++libm {
++  GLIBC_2.1 {
++    # A generic bug got this omitted from other configurations' version
++    # sets, but we always had it.
++    exp2l;
++  }
++}
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/gmp-mparam.h b/glibc-2.14.1/sysdeps/riscv/rv64/gmp-mparam.h
+new file mode 100644
+index 0000000..7666137
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/gmp-mparam.h
 @@ -0,0 +1,31 @@
 +/* gmp-mparam.h -- Compiler/machine parameter header file.
 +
@@ -6168,19 +6280,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/r
 +#define BITS_PER_INT 32
 +#define BITS_PER_SHORTINT 16
 +#define BITS_PER_CHAR 8
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/Implies glibc-2.14.1/sysdeps/riscv/rv64/Implies
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/Implies    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/Implies    2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,6 @@
-+ieee754/flt-32
-+ieee754/dbl-64
-+riscv/rv64/soft-fp
-+riscv/rv64
-+riscv
-+wordsize-64
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/libm-test-ulps glibc-2.14.1/sysdeps/riscv/rv64/libm-test-ulps
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/libm-test-ulps     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/libm-test-ulps     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/libm-test-ulps b/glibc-2.14.1/sysdeps/riscv/rv64/libm-test-ulps
+new file mode 100644
+index 0000000..d9df631
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/libm-test-ulps
 @@ -0,0 +1,1245 @@
 +# Begin of automatic generation
 +
@@ -7427,16 +7531,20 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/r
 +ldouble: 5
 +
 +# end of automatic generation
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/Makefile glibc-2.14.1/sysdeps/riscv/rv64/Makefile
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/Makefile   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/Makefile   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/Makefile b/glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/Makefile
+new file mode 100644
+index 0000000..ada13e8
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/Makefile
 @@ -0,0 +1,3 @@
-+ifeq ($(filter -mabi=64,$(CC)),)
-+CC += -mabi=64
++ifeq ($(subdir),math)
++CPPFLAGS += -I../soft-fp
 +endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c b/glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c
+new file mode 100644
+index 0000000..81fd58a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/e_sqrtl.c
 @@ -0,0 +1,39 @@
 +/* long double square root in software floating-point emulation.
 +   Copyright (C) 1997, 1999, 2006 Free Software Foundation, Inc.
@@ -7477,16 +7585,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/r
 +  FP_HANDLE_EXCEPTIONS;
 +  return c;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/soft-fp/Makefile glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/Makefile
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/soft-fp/Makefile   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/Makefile   2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,3 @@
-+ifeq ($(subdir),math)
-+CPPFLAGS += -I../soft-fp
-+endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/soft-fp/sfp-machine.h glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/sfp-machine.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/soft-fp/sfp-machine.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/sfp-machine.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/sfp-machine.h b/glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/sfp-machine.h
+new file mode 100644
+index 0000000..9c1ee3b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/rv64/soft-fp/sfp-machine.h
 @@ -0,0 +1,74 @@
 +#include <fenv.h>
 +#include <fpu_control.h>
@@ -7562,20 +7665,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/r
 +#else
 +#define FP_INIT_ROUNDMODE     _fcw = FP_RND_NEAREST
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/rv64/Versions glibc-2.14.1/sysdeps/riscv/rv64/Versions
---- ../glibc-2.14.1-orig/sysdeps/riscv/rv64/Versions   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/rv64/Versions   2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,7 @@
-+libm {
-+  GLIBC_2.1 {
-+    # A generic bug got this omitted from other configurations' version
-+    # sets, but we always had it.
-+    exp2l;
-+  }
-+}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/setjmp.S glibc-2.14.1/sysdeps/riscv/setjmp.S
---- ../glibc-2.14.1-orig/sysdeps/riscv/setjmp.S        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/setjmp.S        2011-11-02 01:21:55.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/setjmp.S b/glibc-2.14.1/sysdeps/riscv/setjmp.S
+new file mode 100644
+index 0000000..64af5e1
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/setjmp.S
 @@ -0,0 +1,75 @@
 +/* Copyright (C) 1996, 1997, 2000, 2002, 2003, 2004
 +      Free Software Foundation, Inc.
@@ -7652,9 +7746,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +END(__sigsetjmp)
 +
 +weak_alias(_setjmp, __GI__setjmp)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/sgidefs.h glibc-2.14.1/sysdeps/riscv/sgidefs.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/sgidefs.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/sgidefs.h       2011-10-27 22:22:09.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/sgidefs.h b/glibc-2.14.1/sysdeps/riscv/sgidefs.h
+new file mode 100644
+index 0000000..34a6e61
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/sgidefs.h
 @@ -0,0 +1,41 @@
 +/* Copyright (C) 1996, 1997, 1998, 2003, 2004 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -7697,9 +7793,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +#define _RISCV_SIM_ABI64              _ABI64
 +
 +#endif /* sgidefs.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/shlib-versions glibc-2.14.1/sysdeps/riscv/shlib-versions
---- ../glibc-2.14.1-orig/sysdeps/riscv/shlib-versions  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/shlib-versions  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/shlib-versions b/glibc-2.14.1/sysdeps/riscv/shlib-versions
+new file mode 100644
+index 0000000..7809393
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/shlib-versions
 @@ -0,0 +1,21 @@
 +mips.*-.*-linux.*     libm=6                  GLIBC_2.0 GLIBC_2.2
 +
@@ -7722,9 +7820,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +mips.*-.*-linux.*     libnsl=1                GLIBC_2.0 GLIBC_2.2
 +
 +mips.*-.*-linux.*     librt=1                 GLIBC_2.0 GLIBC_2.2
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/soft-fp/sfp-machine.h glibc-2.14.1/sysdeps/riscv/soft-fp/sfp-machine.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/soft-fp/sfp-machine.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/soft-fp/sfp-machine.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/soft-fp/sfp-machine.h b/glibc-2.14.1/sysdeps/riscv/soft-fp/sfp-machine.h
+new file mode 100644
+index 0000000..3b2a40f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/soft-fp/sfp-machine.h
 @@ -0,0 +1,47 @@
 +#define _FP_W_TYPE_SIZE               32
 +#define _FP_W_TYPE            unsigned long
@@ -7773,9 +7873,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +#define FP_EX_OVERFLOW          (1 << 2)
 +#define FP_EX_UNDERFLOW         (1 << 1)
 +#define FP_EX_INEXACT           (1 << 0)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/stackinfo.h glibc-2.14.1/sysdeps/riscv/stackinfo.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/stackinfo.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/stackinfo.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/stackinfo.h b/glibc-2.14.1/sysdeps/riscv/stackinfo.h
+new file mode 100644
+index 0000000..7a5e3e0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/stackinfo.h
 @@ -0,0 +1,34 @@
 +/* Copyright (C) 2000, 2010 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -7811,9 +7913,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
 +
 +#endif        /* stackinfo.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/sys/asm.h glibc-2.14.1/sysdeps/riscv/sys/asm.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/sys/asm.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/sys/asm.h       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/sys/asm.h b/glibc-2.14.1/sysdeps/riscv/sys/asm.h
+new file mode 100644
+index 0000000..331a16e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/sys/asm.h
 @@ -0,0 +1,206 @@
 +/* Copyright (C) 1997, 1998, 2002, 2003, 2004, 2005
 +   Free Software Foundation, Inc.
@@ -8021,10 +8125,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +#endif
 +
 +#endif /* sys/asm.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/sys/ucontext.h glibc-2.14.1/sysdeps/riscv/sys/ucontext.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/sys/ucontext.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/sys/ucontext.h  2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,159 @@
+diff --git a/glibc-2.14.1/sysdeps/riscv/sys/ucontext.h b/glibc-2.14.1/sysdeps/riscv/sys/ucontext.h
+new file mode 100644
+index 0000000..257f56a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/sys/ucontext.h
+@@ -0,0 +1,144 @@
 +/* Copyright (C) 1998, 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
@@ -8049,15 +8155,10 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +#define _SYS_UCONTEXT_H       1
 +
 +#include <features.h>
-+#include <sgidefs.h>
 +#include <signal.h>
 +
 +/* Type for general register.  */
-+#if _RISCV_SIM == _ABIO32
-+typedef __uint32_t greg_t;
-+#else
-+typedef __uint64_t greg_t;
-+#endif
++typedef unsigned long greg_t;
 +
 +/* Number of general registers.  */
 +#define NGREG 36
@@ -8147,15 +8248,9 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +{
 +  union
 +  {
-+#if _RISCV_SIM == _ABIO32
-+    double fp_dregs[16];
-+    float fp_fregs[32];
-+    unsigned int fp_regs[32];
-+#else
 +    double fp_dregs[32];
 +    /* float fp_fregs[32]; */
 +    __uint64_t fp_regs[32];
-+#endif
 +  } fp_r;
 +  unsigned int fp_csr;
 +  unsigned int fp_pad;
@@ -8171,11 +8266,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +/* Userlevel context.  */
 +typedef struct ucontext
 +{
-+#if _RISCV_SIM == _ABIO32
 +  unsigned long int uc_flags;
-+#else
-+  __uint64_t uc_flags;
-+#endif
 +  struct ucontext *uc_link;
 +  __sigset_t uc_sigmask;
 +  stack_t uc_stack;
@@ -8184,9 +8275,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/s
 +} ucontext_t;
 +
 +#endif /* sys/ucontext.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/tcb-offsets.sym glibc-2.14.1/sysdeps/riscv/tcb-offsets.sym
---- ../glibc-2.14.1-orig/sysdeps/riscv/tcb-offsets.sym 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/tcb-offsets.sym 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/tcb-offsets.sym b/glibc-2.14.1/sysdeps/riscv/tcb-offsets.sym
+new file mode 100644
+index 0000000..e0e71dc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/tcb-offsets.sym
 @@ -0,0 +1,11 @@
 +#include <sysdep.h>
 +#include <tls.h>
@@ -8199,9 +8292,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/t
 +MULTIPLE_THREADS_OFFSET               thread_offsetof (header.multiple_threads)
 +PID_OFFSET                    thread_offsetof (pid)
 +TID_OFFSET                    thread_offsetof (tid)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/tls-macros.h glibc-2.14.1/sysdeps/riscv/tls-macros.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/tls-macros.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/tls-macros.h    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/riscv/tls-macros.h b/glibc-2.14.1/sysdeps/riscv/tls-macros.h
+new file mode 100644
+index 0000000..e23d8b2
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/tls-macros.h
 @@ -0,0 +1,51 @@
 +/* Macros to support TLS testing in times of missing compiler support.  */
 +
@@ -8254,10 +8349,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/t
 +        "add %0,tp,%1"                                \
 +        : "=r" (__result), "=&r" (__tmp)              \
 +     __result; })
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/tst-audit.h glibc-2.14.1/sysdeps/riscv/tst-audit.h
---- ../glibc-2.14.1-orig/sysdeps/riscv/tst-audit.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/riscv/tst-audit.h     2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,40 @@
+diff --git a/glibc-2.14.1/sysdeps/riscv/tst-audit.h b/glibc-2.14.1/sysdeps/riscv/tst-audit.h
+new file mode 100644
+index 0000000..ac011fc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/riscv/tst-audit.h
+@@ -0,0 +1,33 @@
 +/* Definitions for testing PLT entry/exit auditing.  ARM version.
 +
 +   Copyright (C) 2005 Free Software Foundation, Inc.
@@ -8281,13 +8378,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/t
 +
 +#include <sgidefs.h>
 +
-+#if _RISCV_SIM == _ABIO32
-+#define pltenter la_mips_o32_gnu_pltenter
-+#define pltexit la_mips_o32_gnu_pltexit
-+#define La_regs La_mips_32_regs
-+#define La_retval La_mips_32_retval
-+#else
-+#if _RISCV_SIM == _ABIN32
++#if _RISCV_SIM == _ABI32
 +#define pltenter la_mips_n32_gnu_pltenter
 +#define pltexit la_mips_n32_gnu_pltexit
 +#else
@@ -8296,11 +8387,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/riscv/t
 +#endif
 +#define La_regs La_mips_64_regs
 +#define La_retval La_mips_64_retval
-+#endif
 +#define int_retval lrv_v0
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/riscv/pipe.S glibc-2.14.1/sysdeps/unix/riscv/pipe.S
---- ../glibc-2.14.1-orig/sysdeps/unix/riscv/pipe.S     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/riscv/pipe.S     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/riscv/pipe.S b/glibc-2.14.1/sysdeps/unix/riscv/pipe.S
+new file mode 100644
+index 0000000..26c9c78
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/riscv/pipe.S
 @@ -0,0 +1,33 @@
 +/* Copyright (C) 1992, 1995, 1997, 2000, 2002 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -8335,14 +8427,18 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/ri
 +
 +libc_hidden_def (__pipe)
 +weak_alias (__pipe, pipe)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/riscv/rt-sysdep.c glibc-2.14.1/sysdeps/unix/riscv/rt-sysdep.c
---- ../glibc-2.14.1-orig/sysdeps/unix/riscv/rt-sysdep.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/riscv/rt-sysdep.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/riscv/rt-sysdep.c b/glibc-2.14.1/sysdeps/unix/riscv/rt-sysdep.c
+new file mode 100644
+index 0000000..3ff5595
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/riscv/rt-sysdep.c
 @@ -0,0 +1 @@
 +#include <sysdep.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/riscv/sysdep.c glibc-2.14.1/sysdeps/unix/riscv/sysdep.c
---- ../glibc-2.14.1-orig/sysdeps/unix/riscv/sysdep.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/riscv/sysdep.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/riscv/sysdep.c b/glibc-2.14.1/sysdeps/unix/riscv/sysdep.c
+new file mode 100644
+index 0000000..74e7197
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/riscv/sysdep.c
 @@ -0,0 +1,43 @@
 +/* Copyright (C) 1992, 1993, 1994, 1997, 1998, 1999, 2000, 2002, 2003 
 +   Free Software Foundation, Inc.
@@ -8387,9 +8483,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/ri
 +
 +  return -1;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/riscv/sysdep.h glibc-2.14.1/sysdeps/unix/riscv/sysdep.h
---- ../glibc-2.14.1-orig/sysdeps/unix/riscv/sysdep.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/riscv/sysdep.h   2011-10-27 22:23:40.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/riscv/sysdep.h b/glibc-2.14.1/sysdeps/unix/riscv/sysdep.h
+new file mode 100644
+index 0000000..52e47c4
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/riscv/sysdep.h
 @@ -0,0 +1,73 @@
 +/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003, 2004
 +   Free Software Foundation, Inc.
@@ -8464,141 +8562,435 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/ri
 +L(syse1):
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/endian.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/endian.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/endian.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/endian.h   2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,16 @@
-+/* The MIPS architecture has selectable endianness.
-+   Linux/MIPS exists in two both little and big endian flavours and we
-+   want to be able to share the installed headerfiles between both,
-+   so we define __BYTE_ORDER based on GCC's predefines.  */
-+
-+#ifndef _ENDIAN_H
-+# error "Never use <bits/endian.h> directly; include <endian.h> instead."
-+#endif
-+
-+#ifdef __RISCVEB__
-+# define __BYTE_ORDER __BIG_ENDIAN
-+#else
-+# ifdef __RISCVEL__
-+#  define __BYTE_ORDER __LITTLE_ENDIAN
-+# endif
-+#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/errno.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/errno.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/errno.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/errno.h    2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,63 @@
-+/* Error constants.  MIPS/Linux specific version.
-+   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2006
-+   Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#ifdef _ERRNO_H
-+
-+# undef EDOM
-+# undef EILSEQ
-+# undef ERANGE
-+# include <linux/errno.h>
-+
-+/* Linux has no ENOTSUP error code.  */
-+# define ENOTSUP EOPNOTSUPP
-+
-+# ifndef ECANCELED
-+#  define ECANCELED   158
-+# endif
-+
-+/* Support for error codes to support robust mutexes was added later, too.  */
-+# ifndef EOWNERDEAD
-+#  define EOWNERDEAD          165
-+#  define ENOTRECOVERABLE     166
-+# endif
-+
-+# ifndef ERFKILL
-+#  define ERFKILL             167
-+# endif
-+
-+# ifndef __ASSEMBLER__
-+/* Function to get address of global `errno' variable.  */
-+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
-+
-+#  if !defined _LIBC || defined _LIBC_REENTRANT
-+/* When using threads, errno is a per-thread value.  */
-+#   define errno (*__errno_location ())
-+#  endif
-+# endif /* !__ASSEMBLER__ */
-+#endif /* _ERRNO_H */
-+
-+#if !defined _ERRNO_H && defined __need_Emath
-+/* This is ugly but the kernel header is not clean enough.  We must
-+   define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
-+   defined.  */
-+# define EDOM 33      /* Math argument out of domain of function.  */
-+# define EILSEQ       88      /* Illegal byte sequence.  */
-+# define ERANGE       34      /* Math result not representable.  */
-+#endif /* !_ERRNO_H && __need_Emath */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h    2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,296 @@
-+/* O_*, F_*, FD_* bit values for Linux.
-+   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2006,
-+   2007, 2009, 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Implies b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Implies
+new file mode 100644
+index 0000000..72096a4
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Implies
+@@ -0,0 +1,2 @@
++# This needs to change to support rv32
++unix/sysv/linux/riscv/rv64
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Makefile b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Makefile
+new file mode 100644
+index 0000000..1b8996d
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Makefile
+@@ -0,0 +1,139 @@
++ifeq ($(subdir),signal)
++#sysdep_routines += sigsuspend
++endif
 +
-+#ifndef       _FCNTL_H
-+# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-+#endif
++ifeq ($(subdir),misc)
 +
-+#include <sgidefs.h>
-+#include <sys/types.h>
-+#ifdef __USE_GNU
-+# include <bits/uio.h>
-+#endif
++no_syscall_list_h = 1
 +
++# A callable macro that expands to a shell command.  Preprocess file $(1)
++# using ABI option $(2) and see which macros it defines.  Print FOO for each
++# macro of the form __NR$(3)_FOO, filtering out ABI-specific __NR macros
++# that have a prefix other than $(3).
++mips_list_syscalls =  $(filter-out -m%,$(CC)) -E -x c $(+includes) \
++                          $(sysincludes) -D_LIBC -dM -mabi=$(2) $(1) | \
++                      sed -n 's@^\#define __NR$(3)_\([^ ]*\) .*@\1@p' | \
++                      sed -e '/^[ON]32_/d' -e '/^N64_/d' -e '/^64_/d' | \
++                      LC_ALL=C sort
 +
-+/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
-+   located on an ext2 file system */
-+#define O_ACCMODE        0003
-+#define O_RDONLY           00
-+#define O_WRONLY           01
-+#define O_RDWR                     02
-+#define O_APPEND       0x0008
-+#define O_SYNC                 0x4010
-+#define O_NONBLOCK     0x0080
-+#define O_NDELAY      O_NONBLOCK
-+#define O_CREAT                0x0100 /* not fcntl */
-+#define O_TRUNC                0x0200 /* not fcntl */
-+#define O_EXCL                 0x0400 /* not fcntl */
++# Generate a list of SYS_* macros from the linux __NR macros.
++#
++# Before version 2.6, linux had separate 32-bit and 64-bit MIPS ports,
++# each with its own set of headers.  The ports were merged for 2.6 and
++# this merged port defines the syscalls in a slightly different way.
++# There are therefore three sets of headers that we need to consider:
++#
++#    (1) Headers from the separate 32-bit MIPS port.  They just define
++#      a single list of __NR macros.
++#
++#    (2) Headers from the separate 64-bit MIPS port.  They unconditionally
++#      define syscalls for all three ABIs, with o32 syscalls prefixed
++#      by __NR_O32, n32 syscalls prefixed by __NR_N32 and n64 syscalls
++#      prefixed by plain __NR.
++#
++#    (3) Headers from the combined port.  They use the _RISCV_SIM macro to
++#      define the right set of syscalls for the current ABI.  The syscalls
++#      themselves have no special ABI prefix, but the headers also define:
++#
++#         __NR_O32_Linux{,_syscalls}
++#         __NR_N32_Linux{,_syscalls}
++#         __NR_64_Linux{,_syscalls}
++#
++# In case (1) we just want a simple list of SYS_* macros.  In cases (2)
++# and (3) we want a file that will work for all three ABIs, regardless
++# of which ABI we are currently using.  We also want the file to work
++# if the user later moves from (2) to (3).  Thus the file we create
++# for (2) and (3) has the form:
++#
++#    #if _RISCV_SIM == _ABIN32
++#    # ifdef __NR_N32_open
++#    #  define SYS_n32syscall1 __NR_N32_n32syscall1
++#    #  ...
++#    # else
++#    #  define SYS_n32syscall1 __NR_n32syscall1
++#    #  ...
++#    # endif
++#    #elif _RISCV_SIM == _ABI64
++#    # define SYS_n64syscall1 __NR_n64syscall1
++#    # ...
++#    #else
++#    # ifdef __NR_O32_open
++#    #  define SYS_o32syscall1 __NR_O32_o32syscall1
++#    #  ...
++#    # else
++#    #  define SYS_o32syscall1 __NR_o32syscall1
++#    #  ...
++#    # endif
++#    #endif
++#
++# Here, __NR_N32_open and __NR_O32_open are used to detect case (2)
++# over case (3).  The n64 SYS_* macros can always use the normal
++# ABI-less names.
++$(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h
++      $(make-target-directory)
++      $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC $< -MD -MP \
++            -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' > /dev/null
++      { \
++       echo '/* Generated at libc build time from kernel syscall list.  */';\
++       echo ''; \
++       echo '#ifndef _SYSCALL_H'; \
++       echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
++       echo '#endif'; \
++       echo ''; \
++       echo '#include <sgidefs.h>'; \
++       rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
++       $(call mips_list_syscalls,$<,n32,_N32) > $(@:.d=.h).newn32; \
++       if test -s $(@:.d=.h).newn32; then \
++         if grep open $(@:.d=.h).newn32 > /dev/null; then \
++           $(call mips_list_syscalls,$<,32,_O32) > $(@:.d=.h).new32; \
++           $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
++         else \
++           $(call mips_list_syscalls,$<,32,) > $(@:.d=.h).new32; \
++           $(call mips_list_syscalls,$<,n32,) > $(@:.d=.h).newn32; \
++           $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
++         fi; \
++         echo '#if _RISCV_SIM == _ABIN32'; \
++         echo '# ifdef __NR_N32_open'; \
++         sed 's@\(.*\)@#  define SYS_\1 __NR_N32_\1@' < $(@:.d=.h).newn32; \
++         echo '# else'; \
++         sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).newn32; \
++         echo '# endif'; \
++         echo '#elif _RISCV_SIM == _ABI64'; \
++         sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new64; \
++         echo '#else'; \
++         echo '# ifdef __NR_O32_open'; \
++         sed 's@\(.*\)@#  define SYS_\1 __NR_O32_\1@' < $(@:.d=.h).new32; \
++         echo '# else'; \
++         sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).new32; \
++         echo '# endif'; \
++         echo '#endif'; \
++       else \
++         $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC -dM $< | \
++         sed -n 's@^\#define __NR_\([^ ]*\) .*@\#define SYS_\1 __NR_\1@p' | \
++         LC_ALL=C sort; \
++       fi; \
++       rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
++      } > $(@:.d=.h).new
++      mv -f $(@:.d=.h).new $(@:.d=.h)
++ifneq (,$(objpfx))
++      sed $(sed-remove-objpfx) $(@:.h=.d)-t > $(@:.h=.d)-t2
++      rm -f $(@:.h=.d)-t
++      mv -f $(@:.h=.d)-t2 $(@:.h=.d)
++else
++      mv -f $(@:.h=.d)-t $(@:.h=.d)
++endif
++endif
++
++ifeq ($(subdir),elf)
++ifeq ($(build-shared),yes)
++# This is needed for DSO loading from static binaries.
++sysdep-dl-routines += dl-static
++sysdep_routines += dl-static
++sysdep-rtld-routines += dl-static
++endif
++endif
++
++ifeq ($(subdir),stdlib)
++sysdep_routines += __start_context
++gen-as-const-headers += ucontext_i.sym
++endif
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Versions b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Versions
+new file mode 100644
+index 0000000..a56322a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Versions
+@@ -0,0 +1,40 @@
++ld {
++  GLIBC_PRIVATE {
++    # used for loading by static libraries
++    _dl_var_init;
++  }
++}
++libc {
++  # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
++  # When you get an error from errlist-compat.awk, you need to add a new
++  # version here.  Don't do this blindly, since this means changing the ABI
++  # for all GNU/Linux configurations.
++
++  GLIBC_2.0 {
++    #errlist-compat   123
++    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
++
++    # Exception handling support functions from libgcc
++    __register_frame; __register_frame_table; __deregister_frame;
++    __frame_state_for; __register_frame_info_table;
++
++    # Needed by gcc:
++    _flush_cache;
++
++    # c*
++    cachectl; cacheflush;
++
++    # s*
++    sysmips;
++  }
++  GLIBC_2.2 {
++    #errlist-compat   1134
++    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
++
++    # _*
++    _test_and_set;
++  }
++  GLIBC_2.11 {
++    fallocate64;
++  }
++}
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S
+new file mode 100644
+index 0000000..e903c7e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S
+@@ -0,0 +1,2 @@
++#define __longjmp ____longjmp_chk
++#include <__longjmp.S>
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/__start_context.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/__start_context.S
+new file mode 100644
+index 0000000..d87c9cc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/__start_context.S
+@@ -0,0 +1,39 @@
++/* Modify saved context.
++   Copyright (C) 2009 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
++   02110-1301, USA.  */
++
++#include <sysdep.h>
++#include <sys/asm.h>
++
++#include "ucontext_i.h"
++
++      .text
++LEAF (__start_context)
++      SETUP_GP64(s8, __start_context)
++      move    a0, zero
++      beqz    s0, 1f
++
++      /* setcontext (ucp) */
++      move    a0, s0
++      PIC_JAL(s8, __setcontext)
++      move    a0, v0
++
++1:    PIC_JAL(s8, HIDDEN_JUMPTARGET (exit))
++
++PSEUDO_END (__start_context)
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/_test_and_set.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/_test_and_set.c
+new file mode 100644
+index 0000000..9fd48f7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/_test_and_set.c
+@@ -0,0 +1,30 @@
++/* Copyright (C) 2000 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++/* Define the real-function versions of all inline functions
++   defined in sys/tas.h  */
++
++#include <features.h>
++
++#define _EXTERN_INLINE
++#ifndef __USE_EXTERN_INLINES
++# define __USE_EXTERN_INLINES 1
++#endif
++
++#include "sys/tas.h"
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/endian.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/endian.h
+new file mode 100644
+index 0000000..6caa0bd
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/endian.h
+@@ -0,0 +1,16 @@
++/* The MIPS architecture has selectable endianness.
++   Linux/MIPS exists in two both little and big endian flavours and we
++   want to be able to share the installed headerfiles between both,
++   so we define __BYTE_ORDER based on GCC's predefines.  */
++
++#ifndef _ENDIAN_H
++# error "Never use <bits/endian.h> directly; include <endian.h> instead."
++#endif
++
++#ifdef __RISCVEB__
++# define __BYTE_ORDER __BIG_ENDIAN
++#else
++# ifdef __RISCVEL__
++#  define __BYTE_ORDER __LITTLE_ENDIAN
++# endif
++#endif
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/errno.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/errno.h
+new file mode 100644
+index 0000000..62b952c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/errno.h
+@@ -0,0 +1,63 @@
++/* Error constants.  MIPS/Linux specific version.
++   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2006
++   Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifdef _ERRNO_H
++
++# undef EDOM
++# undef EILSEQ
++# undef ERANGE
++# include <linux/errno.h>
++
++/* Linux has no ENOTSUP error code.  */
++# define ENOTSUP EOPNOTSUPP
++
++# ifndef ECANCELED
++#  define ECANCELED   158
++# endif
++
++/* Support for error codes to support robust mutexes was added later, too.  */
++# ifndef EOWNERDEAD
++#  define EOWNERDEAD          165
++#  define ENOTRECOVERABLE     166
++# endif
++
++# ifndef ERFKILL
++#  define ERFKILL             167
++# endif
++
++# ifndef __ASSEMBLER__
++/* Function to get address of global `errno' variable.  */
++extern int *__errno_location (void) __THROW __attribute__ ((__const__));
++
++#  if !defined _LIBC || defined _LIBC_REENTRANT
++/* When using threads, errno is a per-thread value.  */
++#   define errno (*__errno_location ())
++#  endif
++# endif /* !__ASSEMBLER__ */
++#endif /* _ERRNO_H */
++
++#if !defined _ERRNO_H && defined __need_Emath
++/* This is ugly but the kernel header is not clean enough.  We must
++   define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
++   defined.  */
++# define EDOM 33      /* Math argument out of domain of function.  */
++# define EILSEQ       88      /* Illegal byte sequence.  */
++# define ERANGE       34      /* Math result not representable.  */
++#endif /* !_ERRNO_H && __need_Emath */
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
+new file mode 100644
+index 0000000..121e449
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/fcntl.h
+@@ -0,0 +1,296 @@
++/* O_*, F_*, FD_* bit values for Linux.
++   Copyright (C) 1995, 1996, 1997, 1998, 2000, 2002, 2003, 2004, 2006,
++   2007, 2009, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef       _FCNTL_H
++# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
++#endif
++
++#include <sgidefs.h>
++#include <sys/types.h>
++#ifdef __USE_GNU
++# include <bits/uio.h>
++#endif
++
++
++/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
++   located on an ext2 file system */
++#define O_ACCMODE        0003
++#define O_RDONLY           00
++#define O_WRONLY           01
++#define O_RDWR                     02
++#define O_APPEND       0x0008
++#define O_SYNC                 0x4010
++#define O_NONBLOCK     0x0080
++#define O_NDELAY      O_NONBLOCK
++#define O_CREAT                0x0100 /* not fcntl */
++#define O_TRUNC                0x0200 /* not fcntl */
++#define O_EXCL                 0x0400 /* not fcntl */
 +#define O_NOCTTY       0x0800 /* not fcntl */
 +#define O_FSYNC                O_SYNC
 +#define O_ASYNC                0x1000
@@ -8851,9 +9243,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#endif
 +
 +__END_DECLS
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h
+new file mode 100644
+index 0000000..a8dcf24
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ioctl-types.h
 @@ -0,0 +1,76 @@
 +/* Structure types for pre-termios terminal ioctls.  Linux/MIPS version.
 +   Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
@@ -8931,9 +9325,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#define N_HDLC                13      /* synchronous HDLC  */
 +#define N_SYNC_PPP    14      /* synchronous PPP  */
 +#define       N_HCI           15      /* Bluetooth HCI UART  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/ipc.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ipc.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/ipc.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ipc.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ipc.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ipc.h
+new file mode 100644
+index 0000000..1f629ce
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/ipc.h
 @@ -0,0 +1,55 @@
 +/* Copyright (C) 1995, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -8990,9 +9386,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +    unsigned long int __unused1;
 +    unsigned long int __unused2;
 +};
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/mman.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/mman.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/mman.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/mman.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/mman.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/mman.h
+new file mode 100644
+index 0000000..097cb8f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/mman.h
 @@ -0,0 +1,111 @@
 +/* Definitions for POSIX memory map interface.  Linux/MIPS version.
 +   Copyright (C) 1997, 2000, 2003, 2004, 2005, 2006, 2009, 2011
@@ -9105,9 +9503,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +# define POSIX_MADV_WILLNEED  3 /* Will need these pages.  */
 +# define POSIX_MADV_DONTNEED  4 /* Don't need these pages.  */
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/msq.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/msq.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/msq.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/msq.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/msq.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/msq.h
+new file mode 100644
+index 0000000..5d72fc1
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/msq.h
 @@ -0,0 +1,92 @@
 +/* Copyright (C) 2002, 2007 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9201,9 +9601,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  };
 +
 +#endif /* __USE_MISC */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/poll.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/poll.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/poll.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/poll.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/poll.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/poll.h
+new file mode 100644
+index 0000000..8231239
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/poll.h
 @@ -0,0 +1,50 @@
 +/* Copyright (C) 1997, 2001, 2006, 2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9255,9 +9657,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#define POLLERR               0x008           /* Error condition.  */
 +#define POLLHUP               0x010           /* Hung up.  */
 +#define POLLNVAL      0x020           /* Invalid polling request.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/resource.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/resource.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/resource.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/resource.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/resource.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/resource.h
+new file mode 100644
+index 0000000..a70061a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/resource.h
 @@ -0,0 +1,270 @@
 +/* Bit values & structures for resource limits.  Linux/MIPS version.
 +   Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2004, 2005, 2006, 2008,
@@ -9529,9 +9933,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#endif
 +
 +__END_DECLS
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sem.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sem.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sem.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sem.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sem.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sem.h
+new file mode 100644
+index 0000000..6282de9
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sem.h
 @@ -0,0 +1,85 @@
 +/* Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9618,9 +10024,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +};
 +
 +#endif /* __USE_MISC */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/shm.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/shm.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/shm.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/shm.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/shm.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/shm.h
+new file mode 100644
+index 0000000..07f9743
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/shm.h
 @@ -0,0 +1,95 @@
 +/* Copyright (C) 1995,1996,1997,2000,2001,2002,2003,2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -9717,9 +10125,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  };
 +
 +#endif /* __USE_MISC */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h
+new file mode 100644
+index 0000000..8983988
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigaction.h
 @@ -0,0 +1,91 @@
 +/* The proper definitions for Linux/MIPS's sigaction.
 +   Copyright (C) 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2003, 2010
@@ -9812,9 +10222,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +# define SIG_SETMASK32 256    /* Goodie from SGI for BSD compatibility:
 +                                 set only the low 32 bit of the sigset.  */
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
+new file mode 100644
+index 0000000..d663d35
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigcontext.h
 @@ -0,0 +1,84 @@
 +/* Copyright (C) 1996, 1997, 1998, 2003, 2004, 2006 Free Software
 +   Foundation, Inc.  This file is part of the GNU C Library.
@@ -9900,9 +10312,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +#endif /* _RISCV_SIM != _ABIO32 */
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h
+new file mode 100644
+index 0000000..d5fef4d
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/siginfo.h
 @@ -0,0 +1,319 @@
 +/* siginfo_t, sigevent and constants.  Linux/MIPS version.
 +   Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
@@ -10223,9 +10637,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +};
 +
 +#endif        /* have _SIGNAL_H.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/signum.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/signum.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/signum.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/signum.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/signum.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/signum.h
+new file mode 100644
+index 0000000..a9b6848
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/signum.h
 @@ -0,0 +1,79 @@
 +/* Signal number definitions.  Linux version.
 +   Copyright (C) 1995, 1997, 1998 Free Software Foundation, Inc.
@@ -10306,9 +10722,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#define __SIGRTMAX    (_NSIG - 1)
 +
 +#endif        /* <signal.h> included.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h
+new file mode 100644
+index 0000000..d2c8552
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/sigstack.h
 @@ -0,0 +1,55 @@
 +/* sigstack, sigaltstack definitions.
 +   Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
@@ -10365,87 +10783,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +    size_t ss_size;
 +    int ss_flags;
 +  } stack_t;
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/statfs.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/statfs.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/statfs.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/statfs.h   2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,74 @@
-+/* Copyright (C) 1997, 2000, 2010 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#ifndef _SYS_STATFS_H
-+# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
-+#endif
-+
-+#include <bits/types.h>  /* for __fsid_t and __fsblkcnt_t*/
-+
-+struct statfs
-+  {
-+    long int f_type;
-+#define f_fstyp f_type
-+    long int f_bsize;
-+    long int f_frsize;        /* Fragment size - unsupported */
-+#ifndef __USE_FILE_OFFSET64
-+    __fsblkcnt_t f_blocks;
-+    __fsblkcnt_t f_bfree;
-+    __fsblkcnt_t f_files;
-+    __fsblkcnt_t f_ffree;
-+    __fsblkcnt_t f_bavail;
-+#else
-+    __fsblkcnt64_t f_blocks;
-+    __fsblkcnt64_t f_bfree;
-+    __fsblkcnt64_t f_files;
-+    __fsblkcnt64_t f_ffree;
-+    __fsblkcnt64_t f_bavail;
-+#endif
-+
-+      /* Linux specials */
-+    __fsid_t f_fsid;
-+    long int f_namelen;
-+    long int f_flags;
-+    long int f_spare[5];
-+  };
-+
-+#ifdef __USE_LARGEFILE64
-+struct statfs64
-+  {
-+    long int f_type;
-+#define f_fstyp f_type
-+    long int f_bsize;
-+    long int f_frsize;        /* Fragment size - unsupported */
-+    __fsblkcnt64_t f_blocks;
-+    __fsblkcnt64_t f_bfree;
-+    __fsblkcnt64_t f_files;
-+    __fsblkcnt64_t f_ffree;
-+    __fsblkcnt64_t f_bavail;
-+
-+      /* Linux specials */
-+    __fsid_t f_fsid;
-+    long int f_namelen;
-+    long int f_flags;
-+    long int f_spare[5];
-+  };
-+#endif
-+
-+/* Tell code we have these members.  */
-+#define _STATFS_F_NAMELEN
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/stat.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/stat.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/stat.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/stat.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/stat.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/stat.h
+new file mode 100644
+index 0000000..4959b64
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/stat.h
 @@ -0,0 +1,265 @@
 +/* Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004,
 +      2007, 2009, 2010 Free Software Foundation, Inc.
@@ -10712,9 +11054,91 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#endif
 +
 +#endif        /* bits/stat.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/termios.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/termios.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/bits/termios.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/termios.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/statfs.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/statfs.h
+new file mode 100644
+index 0000000..22a9dde
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/statfs.h
+@@ -0,0 +1,74 @@
++/* Copyright (C) 1997, 2000, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef _SYS_STATFS_H
++# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
++#endif
++
++#include <bits/types.h>  /* for __fsid_t and __fsblkcnt_t*/
++
++struct statfs
++  {
++    long int f_type;
++#define f_fstyp f_type
++    long int f_bsize;
++    long int f_frsize;        /* Fragment size - unsupported */
++#ifndef __USE_FILE_OFFSET64
++    __fsblkcnt_t f_blocks;
++    __fsblkcnt_t f_bfree;
++    __fsblkcnt_t f_files;
++    __fsblkcnt_t f_ffree;
++    __fsblkcnt_t f_bavail;
++#else
++    __fsblkcnt64_t f_blocks;
++    __fsblkcnt64_t f_bfree;
++    __fsblkcnt64_t f_files;
++    __fsblkcnt64_t f_ffree;
++    __fsblkcnt64_t f_bavail;
++#endif
++
++      /* Linux specials */
++    __fsid_t f_fsid;
++    long int f_namelen;
++    long int f_flags;
++    long int f_spare[5];
++  };
++
++#ifdef __USE_LARGEFILE64
++struct statfs64
++  {
++    long int f_type;
++#define f_fstyp f_type
++    long int f_bsize;
++    long int f_frsize;        /* Fragment size - unsupported */
++    __fsblkcnt64_t f_blocks;
++    __fsblkcnt64_t f_bfree;
++    __fsblkcnt64_t f_files;
++    __fsblkcnt64_t f_ffree;
++    __fsblkcnt64_t f_bavail;
++
++      /* Linux specials */
++    __fsid_t f_fsid;
++    long int f_namelen;
++    long int f_flags;
++    long int f_spare[5];
++  };
++#endif
++
++/* Tell code we have these members.  */
++#define _STATFS_F_NAMELEN
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/termios.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/termios.h
+new file mode 100644
+index 0000000..7a90f99
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/bits/termios.h
 @@ -0,0 +1,221 @@
 +/* termios type and macro definitions.  Linux/MIPS version.
 +   Copyright (C) 1993, 94, 95, 96, 97, 99, 2010 Free Software Foundation, Inc.
@@ -10937,9 +11361,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +#define _IOT_termios /* Hurd ioctl type field.  */ \
 +  _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/brk.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/brk.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/brk.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/brk.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/brk.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/brk.c
+new file mode 100644
+index 0000000..95e2aa7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/brk.c
 @@ -0,0 +1,60 @@
 +/* brk system call for Linux/MIPS.
 +   Copyright (C) 2000, 2005, 2006 Free Software Foundation, Inc.
@@ -11001,9 +11427,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return 0;
 +}
 +weak_alias (__brk, brk)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/clone.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/clone.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/clone.S 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/clone.S 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/clone.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/clone.S
+new file mode 100644
+index 0000000..2d73fbb
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/clone.S
 @@ -0,0 +1,124 @@
 +/* Copyright (C) 1996, 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -11129,24 +11557,26 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +      END(__thread_start)
 +
 +weak_alias (__clone, clone)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/configure glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/configure       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure
+new file mode 100644
+index 0000000..e1cffdf
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure
 @@ -0,0 +1,28 @@
 +# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
 + # Local configure fragment for sysdeps/unix/sysv/linux/riscv.
 +
 +case "$prefix" in
 +/usr | /usr/)
-+  # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib.
++  # 32-bit libraries on bi-arch platforms go in /lib32 instead of /lib.
 +  # Allow earlier configure scripts to handle libc_cv_slibdir, libdir,
 +  # and libc_cv_localedir.
 +  test -n "$libc_cv_slibdir" || \
 +  case $machine in
-+  riscv/rv64* )
-+    libc_cv_slibdir="/lib64"
++  riscv/rv32* )
++    libc_cv_slibdir="/lib32"
 +    if test "$libdir" = '${exec_prefix}/lib'; then
-+      libdir='${exec_prefix}/lib64';
++      libdir='${exec_prefix}/lib32';
 +      # Locale data can be shared between 32bit and 64bit libraries
 +      libc_cv_localedir='${exec_prefix}/lib/locale'
 +    fi
@@ -11161,9 +11591,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  arch_minimum_kernel=2.4.1
 +  libc_cv_gcc_unwind_find_fde=yes
 +fi
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/configure.in glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure.in
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/configure.in    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure.in    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure.in b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure.in
+new file mode 100644
+index 0000000..fe7bde1
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/configure.in
 @@ -0,0 +1,29 @@
 +sinclude(./aclocal.m4)dnl Autoconf lossage
 +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
@@ -11171,15 +11603,15 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +case "$prefix" in
 +/usr | /usr/)
-+  # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib.
++  # 32-bit libraries on bi-arch platforms go in /lib32 instead of /lib.
 +  # Allow earlier configure scripts to handle libc_cv_slibdir, libdir,
 +  # and libc_cv_localedir.
 +  test -n "$libc_cv_slibdir" || \
 +  case $machine in
-+  riscv/rv64* )
-+    libc_cv_slibdir="/lib64"
++  riscv/rv32* )
++    libc_cv_slibdir="/lib32"
 +    if test "$libdir" = '${exec_prefix}/lib'; then
-+      libdir='${exec_prefix}/lib64';
++      libdir='${exec_prefix}/lib32';
 +      # Locale data can be shared between 32bit and 64bit libraries
 +      libc_cv_localedir='${exec_prefix}/lib/locale'
 +    fi
@@ -11194,9 +11626,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  arch_minimum_kernel=2.4.1
 +  libc_cv_gcc_unwind_find_fde=yes
 +fi
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/dl-cache.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-cache.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/dl-cache.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-cache.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-cache.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-cache.h
+new file mode 100644
+index 0000000..cfffd50
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-cache.h
 @@ -0,0 +1,57 @@
 +/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
 +   Copyright (C) 2003, 2007 Free Software Foundation, Inc.
@@ -11255,9 +11689,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +    } while (0)
 +
 +#include_next <dl-cache.h>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/dl-static.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-static.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/dl-static.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-static.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-static.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-static.c
+new file mode 100644
+index 0000000..3a99e7e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/dl-static.c
 @@ -0,0 +1,92 @@
 +/* Variable initialization.  MIPS version.
 +   Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
@@ -11351,23 +11787,18 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +}
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/entry.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/entry.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/entry.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/entry.h 2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,5 @@
-+#ifndef __ASSEMBLY__
-+extern void __start (void);
-+#endif
-+
-+#define ENTRY_POINT __start
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/fcntl.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/fcntl.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/fcntl.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/fcntl.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/fcntl.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/fcntl.c
+new file mode 100644
+index 0000000..ea951bc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/fcntl.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/i386/fcntl.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ftruncate64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ftruncate64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ftruncate64.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ftruncate64.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ftruncate64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ftruncate64.c
+new file mode 100644
+index 0000000..a46e22f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ftruncate64.c
 @@ -0,0 +1,76 @@
 +/* Copyright (C) 1997,1998,1999,2000,2001,2002,2003,2005,2006
 +      Free Software Foundation, Inc.
@@ -11445,9 +11876,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +/* Use the generic implementation.  */
 +# include <misc/ftruncate64.c>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/getcontext.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getcontext.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/getcontext.S    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getcontext.S    2011-11-02 01:26:28.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getcontext.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getcontext.S
+new file mode 100644
+index 0000000..7cf6b81
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getcontext.S
 @@ -0,0 +1,83 @@
 +/* Save current context.
 +   Copyright (C) 2009 Free Software Foundation, Inc.
@@ -11532,14 +11965,18 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +PSEUDO_END (__getcontext)
 +
 +weak_alias (__getcontext, getcontext)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/getmsg.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getmsg.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/getmsg.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getmsg.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getmsg.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getmsg.c
+new file mode 100644
+index 0000000..3a1fa08
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getmsg.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/i386/getmsg.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/getsysstats.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getsysstats.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/getsysstats.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getsysstats.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getsysstats.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getsysstats.c
+new file mode 100644
+index 0000000..8053033
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/getsysstats.c
 @@ -0,0 +1,37 @@
 +/* Determine various system internal values, Linux/MIPS version.
 +   Copyright (C) 2001, 2009 Free Software Foundation, Inc.
@@ -11578,20 +12015,18 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  while (0)
 +
 +#include <sysdeps/unix/sysv/linux/getsysstats.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/Implies glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Implies
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/Implies 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Implies 2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,2 @@
-+# This needs to change to support rv32
-+unix/sysv/linux/riscv/rv64
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ipc_priv.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ipc_priv.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ipc_priv.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ipc_priv.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ipc_priv.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ipc_priv.h
+new file mode 100644
+index 0000000..67883be
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ipc_priv.h
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/powerpc/ipc_priv.h>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel-features.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel-features.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel-features.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel-features.h       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel-features.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel-features.h
+new file mode 100644
+index 0000000..82d9f3b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel-features.h
 @@ -0,0 +1,46 @@
 +/* Set flags signalling availability of kernel features based on given
 +   kernel version number.
@@ -11639,9 +12074,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#if _RISCV_SIM == _ABIN32 && __LINUX_KERNEL_VERSION < 0x020623
 +# undef __ASSUME_GETDENTS64_SYSCALL
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h
+new file mode 100644
+index 0000000..edf8d45
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_rt_sigframe.h
 @@ -0,0 +1,10 @@
 +/* Linux kernel RT signal frame. */
 +typedef struct kernel_rt_sigframe
@@ -11653,9 +12090,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +    uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
 +  }
 +kernel_rt_sigframe_t;
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h
+new file mode 100644
+index 0000000..dd6b622
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h
 @@ -0,0 +1,40 @@
 +/* This is the sigaction structure from the Linux 2.1.24 kernel.  */
 +
@@ -11697,9 +12136,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +      void            (*sa_restorer)(void);
 +      int             s_resv[1]; /* reserved */
 +};
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_stat.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_stat.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_stat.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_stat.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_stat.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_stat.h
+new file mode 100644
+index 0000000..6b115e8
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_stat.h
 @@ -0,0 +1,57 @@
 +#include <sgidefs.h>
 +/* As tempting as it is to define XSTAT_IS_XSTAT64 for n64, the
@@ -11758,9 +12199,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +    unsigned int st_gen;
 +  };
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_termios.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_termios.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/kernel_termios.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_termios.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_termios.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_termios.h
+new file mode 100644
+index 0000000..9b622f4
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/kernel_termios.h
 @@ -0,0 +1,35 @@
 +/* Copyright (C) 1997 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -11797,9 +12240,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  };
 +
 +#endif /* kernel_termios.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ldsodefs.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ldsodefs.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ldsodefs.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ldsodefs.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ldsodefs.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ldsodefs.h
+new file mode 100644
+index 0000000..2cb7db6
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ldsodefs.h
 @@ -0,0 +1,41 @@
 +/* Run-time dynamic linker data structures for loaded ELF shared objects. MIPS.
 +   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
@@ -11842,218 +12287,77 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   || (osabi == ELFOSABI_LINUX && ver < LIBC_ABI_MAX))
 +
 +#endif /* ldsodefs.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/libc-abis glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/libc-abis
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/libc-abis       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/libc-abis       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/libc-abis b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/libc-abis
+new file mode 100644
+index 0000000..f180a03
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/libc-abis
 @@ -0,0 +1,13 @@
 +# See the copy of this file in libc for detailed explanations.  This
 +# copy needs to include all libc definitions applicable to MIPS; only
 +# one copy will be used.
 +#
 +# Feature Name        Configuration
-+# ------------        -------------
-+#
-+# MIPS PLTs.
-+MIPS_PLT      mips*-*-linux*
-+#
-+# Unique symbol definitions for C++.
-+# Architecture independent, all ELF targets (== all targets)
-+UNIQUE
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/lockf64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/lockf64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/lockf64.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/lockf64.c       2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1 @@
-+#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/____longjmp_chk.S       2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,2 @@
-+#define __longjmp ____longjmp_chk
-+#include <__longjmp.S>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/makecontext.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/makecontext.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/makecontext.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/makecontext.c   2011-10-27 22:23:54.000000000 -0700
-@@ -0,0 +1,34 @@
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+#include <sys/ucontext.h>
-+#include <stdarg.h>
-+
-+void __makecontext (ucontext_t *ucp, void (*func) (), int argc, ...)
-+{
-+  extern void __start_context(void);
-+  int i, reg_args;
-+  long sp;
-+  va_list vl;
-+  va_start(vl, argc);
-+
-+  /* Store a magic flag in x0's save slot */
-+  ucp->uc_mcontext.gregs[0] = 1;
-+
-+  /* Set up the stack. */
-+  sp = ((long)ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size) & ALMASK;
-+  reg_args = argc < 8 ? argc : 8;
-+  sp = (sp - (argc - reg_args) * sizeof(long)) & ALMASK;
-+
-+  /* Put args in a0-a7, then put any remaining args on the stack. */
-+  for (i = 0; i < reg_args; i++)
-+    ucp->uc_mcontext.gregs[4 + i] = va_arg(vl, long);
-+  for (i = 0; i < argc - reg_args; i++)
-+    ((long*)sp)[i] = va_arg(vl, long);
-+
-+  ucp->uc_mcontext.gregs[1] = (long)&__start_context;
-+  ucp->uc_mcontext.gregs[20] = (long)ucp->uc_link;
-+  ucp->uc_mcontext.gregs[30] = sp;
-+  ucp->uc_mcontext.pc = (long)func;
-+}
-+
-+weak_alias (__makecontext, makecontext)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/Makefile glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Makefile
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/Makefile        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Makefile        2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,139 @@
-+ifeq ($(subdir),signal)
-+#sysdep_routines += sigsuspend
-+endif
-+
-+ifeq ($(subdir),misc)
-+
-+no_syscall_list_h = 1
-+
-+# A callable macro that expands to a shell command.  Preprocess file $(1)
-+# using ABI option $(2) and see which macros it defines.  Print FOO for each
-+# macro of the form __NR$(3)_FOO, filtering out ABI-specific __NR macros
-+# that have a prefix other than $(3).
-+mips_list_syscalls =  $(filter-out -m%,$(CC)) -E -x c $(+includes) \
-+                          $(sysincludes) -D_LIBC -dM -mabi=$(2) $(1) | \
-+                      sed -n 's@^\#define __NR$(3)_\([^ ]*\) .*@\1@p' | \
-+                      sed -e '/^[ON]32_/d' -e '/^N64_/d' -e '/^64_/d' | \
-+                      LC_ALL=C sort
-+
-+# Generate a list of SYS_* macros from the linux __NR macros.
-+#
-+# Before version 2.6, linux had separate 32-bit and 64-bit MIPS ports,
-+# each with its own set of headers.  The ports were merged for 2.6 and
-+# this merged port defines the syscalls in a slightly different way.
-+# There are therefore three sets of headers that we need to consider:
-+#
-+#    (1) Headers from the separate 32-bit MIPS port.  They just define
-+#      a single list of __NR macros.
-+#
-+#    (2) Headers from the separate 64-bit MIPS port.  They unconditionally
-+#      define syscalls for all three ABIs, with o32 syscalls prefixed
-+#      by __NR_O32, n32 syscalls prefixed by __NR_N32 and n64 syscalls
-+#      prefixed by plain __NR.
-+#
-+#    (3) Headers from the combined port.  They use the _RISCV_SIM macro to
-+#      define the right set of syscalls for the current ABI.  The syscalls
-+#      themselves have no special ABI prefix, but the headers also define:
-+#
-+#         __NR_O32_Linux{,_syscalls}
-+#         __NR_N32_Linux{,_syscalls}
-+#         __NR_64_Linux{,_syscalls}
-+#
-+# In case (1) we just want a simple list of SYS_* macros.  In cases (2)
-+# and (3) we want a file that will work for all three ABIs, regardless
-+# of which ABI we are currently using.  We also want the file to work
-+# if the user later moves from (2) to (3).  Thus the file we create
-+# for (2) and (3) has the form:
++# ------------        -------------
 +#
-+#    #if _RISCV_SIM == _ABIN32
-+#    # ifdef __NR_N32_open
-+#    #  define SYS_n32syscall1 __NR_N32_n32syscall1
-+#    #  ...
-+#    # else
-+#    #  define SYS_n32syscall1 __NR_n32syscall1
-+#    #  ...
-+#    # endif
-+#    #elif _RISCV_SIM == _ABI64
-+#    # define SYS_n64syscall1 __NR_n64syscall1
-+#    # ...
-+#    #else
-+#    # ifdef __NR_O32_open
-+#    #  define SYS_o32syscall1 __NR_O32_o32syscall1
-+#    #  ...
-+#    # else
-+#    #  define SYS_o32syscall1 __NR_o32syscall1
-+#    #  ...
-+#    # endif
-+#    #endif
++# MIPS PLTs.
++MIPS_PLT      mips*-*-linux*
 +#
-+# Here, __NR_N32_open and __NR_O32_open are used to detect case (2)
-+# over case (3).  The n64 SYS_* macros can always use the normal
-+# ABI-less names.
-+$(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/mips/sys/syscall.h
-+      $(make-target-directory)
-+      $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC $< -MD -MP \
-+            -MF $(@:.h=.d)-t -MT '$(@:.d=.h) $(@:.h=.d)' > /dev/null
-+      { \
-+       echo '/* Generated at libc build time from kernel syscall list.  */';\
-+       echo ''; \
-+       echo '#ifndef _SYSCALL_H'; \
-+       echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
-+       echo '#endif'; \
-+       echo ''; \
-+       echo '#include <sgidefs.h>'; \
-+       rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
-+       $(call mips_list_syscalls,$<,n32,_N32) > $(@:.d=.h).newn32; \
-+       if test -s $(@:.d=.h).newn32; then \
-+         if grep open $(@:.d=.h).newn32 > /dev/null; then \
-+           $(call mips_list_syscalls,$<,32,_O32) > $(@:.d=.h).new32; \
-+           $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
-+         else \
-+           $(call mips_list_syscalls,$<,32,) > $(@:.d=.h).new32; \
-+           $(call mips_list_syscalls,$<,n32,) > $(@:.d=.h).newn32; \
-+           $(call mips_list_syscalls,$<,64,) > $(@:.d=.h).new64; \
-+         fi; \
-+         echo '#if _RISCV_SIM == _ABIN32'; \
-+         echo '# ifdef __NR_N32_open'; \
-+         sed 's@\(.*\)@#  define SYS_\1 __NR_N32_\1@' < $(@:.d=.h).newn32; \
-+         echo '# else'; \
-+         sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).newn32; \
-+         echo '# endif'; \
-+         echo '#elif _RISCV_SIM == _ABI64'; \
-+         sed 's@\(.*\)@# define SYS_\1 __NR_\1@' < $(@:.d=.h).new64; \
-+         echo '#else'; \
-+         echo '# ifdef __NR_O32_open'; \
-+         sed 's@\(.*\)@#  define SYS_\1 __NR_O32_\1@' < $(@:.d=.h).new32; \
-+         echo '# else'; \
-+         sed 's@\(.*\)@#  define SYS_\1 __NR_\1@' < $(@:.d=.h).new32; \
-+         echo '# endif'; \
-+         echo '#endif'; \
-+       else \
-+         $(CC) -E -x c $(+includes) $(sysincludes) -D_LIBC -dM $< | \
-+         sed -n 's@^\#define __NR_\([^ ]*\) .*@\#define SYS_\1 __NR_\1@p' | \
-+         LC_ALL=C sort; \
-+       fi; \
-+       rm -f $(@:.d=.h).new32 $(@:.d=.h).newn32 $(@:.d=.h).new64; \
-+      } > $(@:.d=.h).new
-+      mv -f $(@:.d=.h).new $(@:.d=.h)
-+ifneq (,$(objpfx))
-+      sed $(sed-remove-objpfx) $(@:.h=.d)-t > $(@:.h=.d)-t2
-+      rm -f $(@:.h=.d)-t
-+      mv -f $(@:.h=.d)-t2 $(@:.h=.d)
-+else
-+      mv -f $(@:.h=.d)-t $(@:.h=.d)
-+endif
-+endif
++# Unique symbol definitions for C++.
++# Architecture independent, all ELF targets (== all targets)
++UNIQUE
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/lockf64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/lockf64.c
+new file mode 100644
+index 0000000..a88f5a7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/lockf64.c
+@@ -0,0 +1 @@
++#include <sysdeps/unix/sysv/linux/i386/lockf64.c>
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/makecontext.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/makecontext.c
+new file mode 100644
+index 0000000..d0e0fe0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/makecontext.c
+@@ -0,0 +1,34 @@
++#include <sysdep.h>
++#include <sys/asm.h>
++#include <sys/ucontext.h>
++#include <stdarg.h>
 +
-+ifeq ($(subdir),elf)
-+ifeq ($(build-shared),yes)
-+# This is needed for DSO loading from static binaries.
-+sysdep-dl-routines += dl-static
-+sysdep_routines += dl-static
-+sysdep-rtld-routines += dl-static
-+endif
-+endif
++void __makecontext (ucontext_t *ucp, void (*func) (), int argc, ...)
++{
++  extern void __start_context(void);
++  int i, reg_args;
++  long sp;
++  va_list vl;
++  va_start(vl, argc);
 +
-+ifeq ($(subdir),stdlib)
-+sysdep_routines += __start_context
-+gen-as-const-headers += ucontext_i.sym
-+endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h   2011-10-25 02:48:44.000000000 -0700
++  /* Store a magic flag in x0's save slot */
++  ucp->uc_mcontext.gregs[0] = 1;
++
++  /* Set up the stack. */
++  sp = ((long)ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size) & ALMASK;
++  reg_args = argc < 8 ? argc : 8;
++  sp = (sp - (argc - reg_args) * sizeof(long)) & ALMASK;
++
++  /* Put args in a0-a7, then put any remaining args on the stack. */
++  for (i = 0; i < reg_args; i++)
++    ucp->uc_mcontext.gregs[4 + i] = va_arg(vl, long);
++  for (i = 0; i < argc - reg_args; i++)
++    ((long*)sp)[i] = va_arg(vl, long);
++
++  ucp->uc_mcontext.gregs[1] = (long)&__start_context;
++  ucp->uc_mcontext.gregs[20] = (long)ucp->uc_link;
++  ucp->uc_mcontext.gregs[30] = sp;
++  ucp->uc_mcontext.pc = (long)func;
++}
++
++weak_alias (__makecontext, makecontext)
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h
+new file mode 100644
+index 0000000..c6fae63
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/local_lim.h
 @@ -0,0 +1,101 @@
 +/* Minimum guaranteed maximum values for system limits.  MIPS Linux version.
 +   Copyright (C) 1993-1998,2000,2002,2003,2004,2007,2008
@@ -12156,9 +12460,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +/* Maximum value the semaphore can have.  */
 +#define SEM_VALUE_MAX   (2147483647)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h
+new file mode 100644
+index 0000000..c37add6
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/pthreadtypes.h
 @@ -0,0 +1,229 @@
 +/* Machine-specific pthread type layouts.  MIPS version.
 +   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
@@ -12389,9 +12695,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +
 +#endif        /* bits/pthreadtypes.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h
+new file mode 100644
+index 0000000..28f8595
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/bits/semaphore.h
 @@ -0,0 +1,37 @@
 +/* Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -12430,15 +12738,19 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  char __size[__SIZEOF_SEM_T];
 +  long int __align;
 +} sem_t;
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/clone.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/clone.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/clone.S    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/clone.S    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/clone.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/clone.S
+new file mode 100644
+index 0000000..4106a34
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/clone.S
 @@ -0,0 +1,2 @@
 +#define RESET_PID
 +#include <sysdeps/unix/sysv/linux/riscv/clone.S>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c
+new file mode 100644
+index 0000000..5b2234f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/createthread.c
 @@ -0,0 +1,24 @@
 +/* Copyright (C) 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -12464,14 +12776,18 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +/* Get the real implementation.        */
 +#include <nptl/sysdeps/pthread/createthread.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/fork.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/fork.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/fork.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/fork.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/fork.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/fork.c
+new file mode 100644
+index 0000000..d31889e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/fork.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/i386/fork.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h
+new file mode 100644
+index 0000000..4dea25b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/lowlevellock.h
 @@ -0,0 +1,293 @@
 +/* Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008,
 +   2009 Free Software Foundation, Inc.
@@ -12766,9 +13082,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  })
 +
 +#endif        /* lowlevellock.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S
+new file mode 100644
+index 0000000..51923be
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/pt-vfork.S
 @@ -0,0 +1,40 @@
 +/* Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -12810,9 +13128,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +1:
 +
 +#include <sysdeps/unix/sysv/linux/riscv/vfork.S>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h
+new file mode 100644
+index 0000000..00ea8c2
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/sysdep-cancel.h
 @@ -0,0 +1,161 @@
 +/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -12975,9 +13295,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
 +                                 header.multiple_threads) == 0, 1)
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S
+new file mode 100644
+index 0000000..83bb078
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/nptl/vfork.S
 @@ -0,0 +1,45 @@
 +/* Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -13024,15 +13346,19 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +1:
 +
 +#include <sysdeps/unix/sysv/linux/riscv/vfork.S>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pipe.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pipe.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pipe.S  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pipe.S  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pipe.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pipe.S
+new file mode 100644
+index 0000000..ed3af63
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pipe.S
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/riscv/pipe.S>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pread64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pread64.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread64.c       2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,107 @@
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread.c
+new file mode 100644
+index 0000000..a6a42d2
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread.c
+@@ -0,0 +1,109 @@
 +/* Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004
 +   Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -13053,6 +13379,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 +   02111-1307 USA.  */
 +
++#include <assert.h>
 +#include <errno.h>
 +#ifndef NO_SGIDEFS_H
 +#include <sgidefs.h>
@@ -13076,37 +13403,39 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#if defined __NR_pread || __ASSUME_PREAD_SYSCALL > 0
 +
 +# if __ASSUME_PREAD_SYSCALL == 0
-+static ssize_t __emulate_pread64 (int fd, void *buf, size_t count,
-+                                off64_t offset) internal_function;
++static ssize_t __emulate_pread (int fd, void *buf, size_t count,
++                              off_t offset) internal_function;
 +# endif
 +
 +ssize_t
-+__libc_pread64 (fd, buf, count, offset)
++__libc_pread (fd, buf, count, offset)
 +     int fd;
 +     void *buf;
 +     size_t count;
-+     off64_t offset;
++     off_t offset;
 +{
 +  ssize_t result;
 +
++#if _RISCV_SIM != _ABI64
++  assert (sizeof (offset) == 4);
++#endif
 +
 +  if (SINGLE_THREAD_P)
 +    {
-+     /* First try the syscall.  */
++      /* First try the syscall.  */
 +#if _RISCV_SIM == _ABIN32 || _RISCV_SIM == _ABI64
 +      result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
 +                             offset);
 +#else
-+     result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
-+                            __LONG_LONG_PAIR ((off_t) (offset >> 32),
-+                            (off_t) (offset & 0xffffffff)));
++      result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++                             __LONG_LONG_PAIR (offset >> 31, offset));
 +#endif
 +# if __ASSUME_PREAD_SYSCALL == 0
-+     if (result == -1 && errno == ENOSYS)
-+     /* No system call available.  Use the emulation.  */
-+     result = __emulate_pread64 (fd, buf, count, offset);
++      if (result == -1 && errno == ENOSYS)
++      /* No system call available.  Use the emulation.  */
++      result = __emulate_pread (fd, buf, count, offset);
 +# endif
-+     return result;
++      return result;
 +    }
 +
 +  int oldtype = LIBC_CANCEL_ASYNC ();
@@ -13116,13 +13445,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
 +#else
 +  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
-+                         __LONG_LONG_PAIR ((off_t) (offset >> 32),
-+                                           (off_t) (offset & 0xffffffff)));
++                         __LONG_LONG_PAIR (offset >> 31, offset));
 +#endif
 +# if __ASSUME_PREAD_SYSCALL == 0
 +  if (result == -1 && errno == ENOSYS)
 +    /* No system call available.  Use the emulation.  */
-+    result = __emulate_pread64 (fd, buf, count, offset);
++    result = __emulate_pread (fd, buf, count, offset);
 +# endif
 +
 +  LIBC_CANCEL_RESET (oldtype);
@@ -13130,20 +13458,22 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return result;
 +}
 +
-+weak_alias (__libc_pread64, __pread64)
-+weak_alias (__libc_pread64, pread64)
++strong_alias (__libc_pread, __pread)
++weak_alias (__libc_pread, pread)
 +
-+# define __libc_pread64(fd, buf, count, offset) \
-+     static internal_function __emulate_pread64 (fd, buf, count, offset)
++# define __libc_pread(fd, buf, count, offset) \
++     static internal_function __emulate_pread (fd, buf, count, offset)
 +#endif
 +
 +#if __ASSUME_PREAD_SYSCALL == 0
-+# include <sysdeps/posix/pread64.c>
++# include <sysdeps/posix/pread.c>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pread.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pread.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread.c 2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,109 @@
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread64.c
+new file mode 100644
+index 0000000..03701b8
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pread64.c
+@@ -0,0 +1,107 @@
 +/* Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004
 +   Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -13164,7 +13494,6 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 +   02111-1307 USA.  */
 +
-+#include <assert.h>
 +#include <errno.h>
 +#ifndef NO_SGIDEFS_H
 +#include <sgidefs.h>
@@ -13188,39 +13517,37 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#if defined __NR_pread || __ASSUME_PREAD_SYSCALL > 0
 +
 +# if __ASSUME_PREAD_SYSCALL == 0
-+static ssize_t __emulate_pread (int fd, void *buf, size_t count,
-+                              off_t offset) internal_function;
++static ssize_t __emulate_pread64 (int fd, void *buf, size_t count,
++                                off64_t offset) internal_function;
 +# endif
 +
 +ssize_t
-+__libc_pread (fd, buf, count, offset)
++__libc_pread64 (fd, buf, count, offset)
 +     int fd;
 +     void *buf;
 +     size_t count;
-+     off_t offset;
++     off64_t offset;
 +{
 +  ssize_t result;
 +
-+#if _RISCV_SIM != _ABI64
-+  assert (sizeof (offset) == 4);
-+#endif
 +
 +  if (SINGLE_THREAD_P)
 +    {
-+      /* First try the syscall.  */
++     /* First try the syscall.  */
 +#if _RISCV_SIM == _ABIN32 || _RISCV_SIM == _ABI64
 +      result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count,
 +                             offset);
 +#else
-+      result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
-+                             __LONG_LONG_PAIR (offset >> 31, offset));
++     result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
++                            __LONG_LONG_PAIR ((off_t) (offset >> 32),
++                            (off_t) (offset & 0xffffffff)));
 +#endif
 +# if __ASSUME_PREAD_SYSCALL == 0
-+      if (result == -1 && errno == ENOSYS)
-+      /* No system call available.  Use the emulation.  */
-+      result = __emulate_pread (fd, buf, count, offset);
++     if (result == -1 && errno == ENOSYS)
++     /* No system call available.  Use the emulation.  */
++     result = __emulate_pread64 (fd, buf, count, offset);
 +# endif
-+      return result;
++     return result;
 +    }
 +
 +  int oldtype = LIBC_CANCEL_ASYNC ();
@@ -13230,12 +13557,13 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  result = INLINE_SYSCALL (pread, 4, fd, CHECK_N (buf, count), count, offset);
 +#else
 +  result = INLINE_SYSCALL (pread, 6, fd, CHECK_N (buf, count), count, 0,
-+                         __LONG_LONG_PAIR (offset >> 31, offset));
++                         __LONG_LONG_PAIR ((off_t) (offset >> 32),
++                                           (off_t) (offset & 0xffffffff)));
 +#endif
 +# if __ASSUME_PREAD_SYSCALL == 0
 +  if (result == -1 && errno == ENOSYS)
 +    /* No system call available.  Use the emulation.  */
-+    result = __emulate_pread (fd, buf, count, offset);
++    result = __emulate_pread64 (fd, buf, count, offset);
 +# endif
 +
 +  LIBC_CANCEL_RESET (oldtype);
@@ -13243,40 +13571,48 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return result;
 +}
 +
-+strong_alias (__libc_pread, __pread)
-+weak_alias (__libc_pread, pread)
++weak_alias (__libc_pread64, __pread64)
++weak_alias (__libc_pread64, pread64)
 +
-+# define __libc_pread(fd, buf, count, offset) \
-+     static internal_function __emulate_pread (fd, buf, count, offset)
++# define __libc_pread64(fd, buf, count, offset) \
++     static internal_function __emulate_pread64 (fd, buf, count, offset)
 +#endif
 +
 +#if __ASSUME_PREAD_SYSCALL == 0
-+# include <sysdeps/posix/pread.c>
++# include <sysdeps/posix/pread64.c>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/profil-counter.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/profil-counter.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/profil-counter.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/profil-counter.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/profil-counter.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/profil-counter.h
+new file mode 100644
+index 0000000..8a6a0bc
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/profil-counter.h
 @@ -0,0 +1,2 @@
 +/* We can use the ix86 version.  */
 +#include <sysdeps/unix/sysv/linux/i386/profil-counter.h>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pthread_once.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pthread_once.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pthread_once.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pthread_once.c  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pthread_once.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pthread_once.c
+new file mode 100644
+index 0000000..2a94504
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pthread_once.c
 @@ -0,0 +1 @@
 +#include <nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/putmsg.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/putmsg.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/putmsg.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/putmsg.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/putmsg.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/putmsg.c
+new file mode 100644
+index 0000000..ebc1680
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/putmsg.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/i386/putmsg.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pwrite64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pwrite64.c      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite64.c      2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,108 @@
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite.c
+new file mode 100644
+index 0000000..370262d
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite.c
+@@ -0,0 +1,109 @@
 +/* Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004
 +   Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
-+   Contributed by Ralf Baechle <ralf@gnu.org>, 1998.
++   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 +
 +   The GNU C Library is free software; you can redistribute it and/or
 +   modify it under the terms of the GNU Lesser General Public
@@ -13293,6 +13629,7 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 +   02111-1307 USA.  */
 +
++#include <assert.h>
 +#include <errno.h>
 +#ifndef NO_SGIDEFS_H
 +#include <sgidefs.h>
@@ -13316,37 +13653,39 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#if defined __NR_pwrite || __ASSUME_PWRITE_SYSCALL > 0
 +
 +# if __ASSUME_PWRITE_SYSCALL == 0
-+static ssize_t __emulate_pwrite64 (int fd, const void *buf, size_t count,
-+                                 off64_t offset) internal_function;
++static ssize_t __emulate_pwrite (int fd, const void *buf, size_t count,
++                               off_t offset) internal_function;
 +# endif
 +
 +ssize_t
-+__libc_pwrite64 (fd, buf, count, offset)
++__libc_pwrite (fd, buf, count, offset)
 +     int fd;
 +     const void *buf;
 +     size_t count;
-+     off64_t offset;
++     off_t offset;
 +{
 +  ssize_t result;
 +
++#if _RISCV_SIM != _ABI64
++  assert (sizeof (offset) == 4);
++#endif
++
 +  if (SINGLE_THREAD_P)
 +    {
-+     /* First try the syscall.  */
++      /* First try the syscall.  */
 +#if _RISCV_SIM == _ABIN32 || _RISCV_SIM == _ABI64
 +      result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
 +                             offset);
 +#else
-+     result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
-+                            __LONG_LONG_PAIR ((off_t) (offset >> 32),
-+                           (off_t) (offset & 0xffffffff)));
++      result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++                             __LONG_LONG_PAIR (offset >> 31, offset));
 +#endif
 +# if __ASSUME_PWRITE_SYSCALL == 0
-+     if (result == -1 && errno == ENOSYS)
-+     /* No system call available.  Use the emulation.  */
-+     result = __emulate_pwrite64 (fd, buf, count, offset);
++      if (result == -1 && errno == ENOSYS)
++      /* No system call available.  Use the emulation.  */
++      result = __emulate_pwrite (fd, buf, count, offset);
 +# endif
-+
-+     return result;
++      return result;
 +    }
 +
 +  int oldtype = LIBC_CANCEL_ASYNC ();
@@ -13356,13 +13695,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
 +#else
 +  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
-+                         __LONG_LONG_PAIR ((off_t) (offset >> 32),
-+                                           (off_t) (offset & 0xffffffff)));
++                         __LONG_LONG_PAIR (offset >> 31, offset));
 +#endif
 +# if __ASSUME_PWRITE_SYSCALL == 0
 +  if (result == -1 && errno == ENOSYS)
 +    /* No system call available.  Use the emulation.  */
-+    result = __emulate_pwrite64 (fd, buf, count, offset);
++    result = __emulate_pwrite (fd, buf, count, offset);
 +# endif
 +
 +  LIBC_CANCEL_RESET (oldtype);
@@ -13370,25 +13708,26 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return result;
 +}
 +
-+weak_alias (__libc_pwrite64, __pwrite64)
-+libc_hidden_weak (__pwrite64)
-+weak_alias (__libc_pwrite64, pwrite64)
++strong_alias (__libc_pwrite, __pwrite)
++weak_alias (__libc_pwrite, pwrite)
 +
-+# define __libc_pwrite64(fd, buf, count, offset) \
-+     static internal_function __emulate_pwrite64 (fd, buf, count, offset)
++# define __libc_pwrite(fd, buf, count, offset) \
++     static internal_function __emulate_pwrite (fd, buf, count, offset)
 +#endif
 +
 +#if __ASSUME_PWRITE_SYSCALL == 0
-+# include <sysdeps/posix/pwrite64.c>
++# include <sysdeps/posix/pwrite.c>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pwrite.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/pwrite.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite.c        2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,109 @@
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite64.c
+new file mode 100644
+index 0000000..edcaa23
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/pwrite64.c
+@@ -0,0 +1,108 @@
 +/* Copyright (C) 1997, 1998, 2000, 2002, 2003, 2004
 +   Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
-+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
++   Contributed by Ralf Baechle <ralf@gnu.org>, 1998.
 +
 +   The GNU C Library is free software; you can redistribute it and/or
 +   modify it under the terms of the GNU Lesser General Public
@@ -13405,7 +13744,6 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 +   02111-1307 USA.  */
 +
-+#include <assert.h>
 +#include <errno.h>
 +#ifndef NO_SGIDEFS_H
 +#include <sgidefs.h>
@@ -13429,39 +13767,37 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#if defined __NR_pwrite || __ASSUME_PWRITE_SYSCALL > 0
 +
 +# if __ASSUME_PWRITE_SYSCALL == 0
-+static ssize_t __emulate_pwrite (int fd, const void *buf, size_t count,
-+                               off_t offset) internal_function;
++static ssize_t __emulate_pwrite64 (int fd, const void *buf, size_t count,
++                                 off64_t offset) internal_function;
 +# endif
 +
 +ssize_t
-+__libc_pwrite (fd, buf, count, offset)
++__libc_pwrite64 (fd, buf, count, offset)
 +     int fd;
 +     const void *buf;
 +     size_t count;
-+     off_t offset;
++     off64_t offset;
 +{
 +  ssize_t result;
 +
-+#if _RISCV_SIM != _ABI64
-+  assert (sizeof (offset) == 4);
-+#endif
-+
 +  if (SINGLE_THREAD_P)
 +    {
-+      /* First try the syscall.  */
++     /* First try the syscall.  */
 +#if _RISCV_SIM == _ABIN32 || _RISCV_SIM == _ABI64
 +      result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count,
 +                             offset);
 +#else
-+      result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
-+                             __LONG_LONG_PAIR (offset >> 31, offset));
++     result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
++                            __LONG_LONG_PAIR ((off_t) (offset >> 32),
++                           (off_t) (offset & 0xffffffff)));
 +#endif
 +# if __ASSUME_PWRITE_SYSCALL == 0
-+      if (result == -1 && errno == ENOSYS)
-+      /* No system call available.  Use the emulation.  */
-+      result = __emulate_pwrite (fd, buf, count, offset);
++     if (result == -1 && errno == ENOSYS)
++     /* No system call available.  Use the emulation.  */
++     result = __emulate_pwrite64 (fd, buf, count, offset);
 +# endif
-+      return result;
++
++     return result;
 +    }
 +
 +  int oldtype = LIBC_CANCEL_ASYNC ();
@@ -13471,12 +13807,13 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  result = INLINE_SYSCALL (pwrite, 4, fd, CHECK_N (buf, count), count, offset);
 +#else
 +  result = INLINE_SYSCALL (pwrite, 6, fd, CHECK_N (buf, count), count, 0,
-+                         __LONG_LONG_PAIR (offset >> 31, offset));
++                         __LONG_LONG_PAIR ((off_t) (offset >> 32),
++                                           (off_t) (offset & 0xffffffff)));
 +#endif
 +# if __ASSUME_PWRITE_SYSCALL == 0
 +  if (result == -1 && errno == ENOSYS)
 +    /* No system call available.  Use the emulation.  */
-+    result = __emulate_pwrite (fd, buf, count, offset);
++    result = __emulate_pwrite64 (fd, buf, count, offset);
 +# endif
 +
 +  LIBC_CANCEL_RESET (oldtype);
@@ -13484,19 +13821,22 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return result;
 +}
 +
-+strong_alias (__libc_pwrite, __pwrite)
-+weak_alias (__libc_pwrite, pwrite)
++weak_alias (__libc_pwrite64, __pwrite64)
++libc_hidden_weak (__pwrite64)
++weak_alias (__libc_pwrite64, pwrite64)
 +
-+# define __libc_pwrite(fd, buf, count, offset) \
-+     static internal_function __emulate_pwrite (fd, buf, count, offset)
++# define __libc_pwrite64(fd, buf, count, offset) \
++     static internal_function __emulate_pwrite64 (fd, buf, count, offset)
 +#endif
 +
 +#if __ASSUME_PWRITE_SYSCALL == 0
-+# include <sysdeps/posix/pwrite.c>
++# include <sysdeps/posix/pwrite64.c>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/readelflib.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/readelflib.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/readelflib.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/readelflib.c    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/readelflib.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/readelflib.c
+new file mode 100644
+index 0000000..547362f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/readelflib.c
 @@ -0,0 +1,74 @@
 +/* Copyright (C) 1999, 2001, 2002, 2003, 2005, 2009
 +   Free Software Foundation, Inc.
@@ -13572,9 +13912,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#define process_elf_file process_elf64_file
 +#define __ELF_NATIVE_CLASS 64
 +#include "elf/readelflib.c"
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/register-dump.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/register-dump.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/register-dump.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/register-dump.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/register-dump.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/register-dump.h
+new file mode 100644
+index 0000000..263a5fe
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/register-dump.h
 @@ -0,0 +1,105 @@
 +/* Dump registers.
 +   Copyright (C) 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
@@ -13681,9 +14023,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +
 +#define REGISTER_DUMP register_dump (fd, ctx)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c
+new file mode 100644
+index 0000000..98a41f9
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/accept4.c
 @@ -0,0 +1,32 @@
 +/* Copyright (C) 2008, 2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -13717,27 +14061,35 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#undef __NR_socketcall
 +
 +#include <sysdeps/unix/sysv/linux/accept4.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c
+new file mode 100644
+index 0000000..0f8b313
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/fxstatat.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/i386/fxstatat.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S
+new file mode 100644
+index 0000000..30434d7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_accept4.S
 @@ -0,0 +1,2 @@
 +/* MIPS does not have socket.S and the socketcall syscall should
 +   generally be avoided, though it exists.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S
+new file mode 100644
+index 0000000..30434d7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/internal_recvmmsg.S
 @@ -0,0 +1,2 @@
 +/* MIPS does not have socket.S and the socketcall syscall should
 +   generally be avoided, though it exists.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c  2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,61 @@
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c
+new file mode 100644
+index 0000000..04c952d
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c
+@@ -0,0 +1,42 @@
 +/* Copyright (C) 2007 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
@@ -13764,16 +14116,14 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   respect to the file associated with FD.  */
 +
 +int
-+__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
++posix_fadvise (int fd, off_t offset, off_t len, int advise)
 +{
 +/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
 +#ifdef __NR_fadvise64
 +  INTERNAL_SYSCALL_DECL (err);
 +  int ret = INTERNAL_SYSCALL (fadvise64, err, 7, fd, 0,
-+                            __LONG_LONG_PAIR ((long) (offset >> 32),
-+                                              (long) offset),
-+                            __LONG_LONG_PAIR ((long) (len >> 32),
-+                                              (long) len),
++                            __LONG_LONG_PAIR (offset >> 31, offset),
++                            __LONG_LONG_PAIR (len >> 31, len),
 +                            advise);
 +  if (INTERNAL_SYSCALL_ERROR_P (ret, err))
 +    return INTERNAL_SYSCALL_ERRNO (ret, err);
@@ -13782,27 +14132,12 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return ENOSYS;
 +#endif
 +}
-+
-+#include <shlib-compat.h>
-+
-+#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
-+
-+int
-+attribute_compat_text_section
-+__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
-+{
-+  return __posix_fadvise64_l64 (fd, offset, len, advise);
-+}
-+
-+versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
-+compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
-+#else
-+strong_alias (__posix_fadvise64_l64, posix_fadvise64);
-+#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise.c    2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,42 @@
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c
+new file mode 100644
+index 0000000..715d37e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/posix_fadvise64.c
+@@ -0,0 +1,61 @@
 +/* Copyright (C) 2007 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
 +
@@ -13829,14 +14164,16 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +   respect to the file associated with FD.  */
 +
 +int
-+posix_fadvise (int fd, off_t offset, off_t len, int advise)
++__posix_fadvise64_l64 (int fd, off64_t offset, off64_t len, int advise)
 +{
 +/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
 +#ifdef __NR_fadvise64
 +  INTERNAL_SYSCALL_DECL (err);
 +  int ret = INTERNAL_SYSCALL (fadvise64, err, 7, fd, 0,
-+                            __LONG_LONG_PAIR (offset >> 31, offset),
-+                            __LONG_LONG_PAIR (len >> 31, len),
++                            __LONG_LONG_PAIR ((long) (offset >> 32),
++                                              (long) offset),
++                            __LONG_LONG_PAIR ((long) (len >> 32),
++                                              (long) len),
 +                            advise);
 +  if (INTERNAL_SYSCALL_ERROR_P (ret, err))
 +    return INTERNAL_SYSCALL_ERRNO (ret, err);
@@ -13845,14 +14182,35 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  return ENOSYS;
 +#endif
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c        2011-10-25 02:48:44.000000000 -0700
++
++#include <shlib-compat.h>
++
++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_3_3)
++
++int
++attribute_compat_text_section
++__posix_fadvise64_l32 (int fd, off64_t offset, size_t len, int advise)
++{
++  return __posix_fadvise64_l64 (fd, offset, len, advise);
++}
++
++versioned_symbol (libc, __posix_fadvise64_l64, posix_fadvise64, GLIBC_2_3_3);
++compat_symbol (libc, __posix_fadvise64_l32, posix_fadvise64, GLIBC_2_2);
++#else
++strong_alias (__posix_fadvise64_l64, posix_fadvise64);
++#endif
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c
+new file mode 100644
+index 0000000..b5b967c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/readahead.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/arm/eabi/readahead.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c
+new file mode 100644
+index 0000000..ceb88ee
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/recvmmsg.c
 @@ -0,0 +1,31 @@
 +/* Copyright (C) 2010 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -13885,9 +14243,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#undef __NR_socketcall
 +
 +#include <sysdeps/unix/sysv/linux/recvmmsg.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c
+new file mode 100644
+index 0000000..13a21b0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/sync_file_range.c
 @@ -0,0 +1,47 @@
 +/* Selective file content synch'ing.
 +   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
@@ -13936,45 +14296,72 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +# include <stub-tag.h>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list
+new file mode 100644
+index 0000000..f357b5c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv32/syscalls.list
 @@ -0,0 +1,5 @@
 +# File name   Caller  Syscall name    # args  Strong name     Weak names
 +
 +prlimit64     EXTRA   prlimit64       i:iipp  prlimit64
 +
 +fanotify_mark EXTRA   fanotify_mark   i:iiiiis        fanotify_mark
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/configure glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/configure  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/Makefile b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/Makefile
+new file mode 100644
+index 0000000..0a37c5b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/Makefile
+@@ -0,0 +1,9 @@
++ifeq ($(subdir),socket)
++CFLAGS-recv.c += -fexceptions
++CFLAGS-send.c += -fexceptions
++endif
++
++ifeq ($(subdir),nptl)
++CFLAGS-recv.c += -fexceptions
++CFLAGS-send.c += -fexceptions
++endif
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure
+new file mode 100644
+index 0000000..c331f98
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure
 @@ -0,0 +1,4 @@
 +# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
 + # Local configure fragment for sysdeps/unix/sysv/linux/mips/mips64.
 +
 +ldd_rewrite_script=$dest/ldd-rewrite.sed
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/configure.in glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure.in
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/configure.in       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure.in       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure.in b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure.in
+new file mode 100644
+index 0000000..a28638a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/configure.in
 @@ -0,0 +1,5 @@
 +sinclude(./aclocal.m4)dnl Autoconf lossage
 +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 +# Local configure fragment for sysdeps/unix/sysv/linux/mips/mips64.
 +
 +ldd_rewrite_script=$dest/ldd-rewrite.sed
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c      2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1 @@
-+/* fallocate64 is in fallocate.c */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c
+new file mode 100644
+index 0000000..d3b7218
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/wordsize-64/fallocate.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c
+new file mode 100644
+index 0000000..fb2b681
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fallocate64.c
+@@ -0,0 +1 @@
++/* fallocate64 is in fallocate.c */
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c
+new file mode 100644
+index 0000000..21a6309
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/fxstatat64.c
 @@ -0,0 +1,113 @@
 +/* Copyright (C) 2005,2006 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -14089,14 +14476,18 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#endif
 +}
 +libc_hidden_def (__fxstatat64)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c
+new file mode 100644
+index 0000000..33918ea
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/glob64.c
 @@ -0,0 +1 @@
 +/* glob64 is in glob.c */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h
+new file mode 100644
+index 0000000..43fca83
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldconfig.h
 @@ -0,0 +1,26 @@
 +/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -14120,66 +14511,71 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +#define SYSDEP_KNOWN_INTERPRETER_NAMES \
 +  { "/lib32/ld.so.1", FLAG_ELF_LIBC6 }, \
-+  { "/lib64/ld.so.1", FLAG_ELF_LIBC6 },
++  { "/lib/ld.so.1", FLAG_ELF_LIBC6 },
 +#define SYSDEP_KNOWN_LIBRARY_NAMES \
 +  { "libc.so.6", FLAG_ELF_LIBC6 },    \
 +  { "libm.so.6", FLAG_ELF_LIBC6 },
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed
+new file mode 100644
+index 0000000..2c32732
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/ldd-rewrite.sed
 @@ -0,0 +1 @@
 +s_^\(RTLDLIST=\)\(.*lib\)\(\|32\|64\)\(/[^/]*\.so\.[0-9.]*\)[         ]*$_\1"\232\4 \264\4 \2\4"_
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c
+new file mode 100644
+index 0000000..24013a8
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/llseek.c
 @@ -0,0 +1 @@
 +/* lseek() is 64-bit capable already.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/Makefile glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/Makefile
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/Makefile   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/Makefile   2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,9 @@
-+ifeq ($(subdir),socket)
-+CFLAGS-recv.c += -fexceptions
-+CFLAGS-send.c += -fexceptions
-+endif
-+
-+ifeq ($(subdir),nptl)
-+CFLAGS-recv.c += -fexceptions
-+CFLAGS-send.c += -fexceptions
-+endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c  2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1 @@
-+/* posix_fadvise64 is in posix_fadvise.c */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c
+new file mode 100644
+index 0000000..0287b83
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fadvise.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c
+new file mode 100644
+index 0000000..c9f72c4
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fadvise64.c
 @@ -0,0 +1 @@
-+/* posix_fallocate64 is in posix_fallocate.c */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c  2011-10-25 02:48:44.000000000 -0700
++/* posix_fadvise64 is in posix_fadvise.c */
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c
+new file mode 100644
+index 0000000..b3fe81b
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate.c
 @@ -0,0 +1 @@
 +#include <sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c>
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c
+new file mode 100644
+index 0000000..f466f13
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/posix_fallocate64.c
+@@ -0,0 +1 @@
++/* posix_fallocate64 is in posix_fallocate.c */
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c
+new file mode 100644
+index 0000000..fd9320c
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/preadv64.c
 @@ -0,0 +1 @@
 +/* Empty since the preadv syscall is equivalent.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c
+new file mode 100644
+index 0000000..8b72a29
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/pwritev64.c
 @@ -0,0 +1 @@
 +/* Empty since the pwritev syscall is equivalent.  */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list
+new file mode 100644
+index 0000000..ee443cb
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/syscalls.list
 @@ -0,0 +1,17 @@
 +# File name   Caller  Syscall name    Args    Strong name     Weak names
 +
@@ -14198,9 +14594,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +semop         -       semop           i:ipi   __semop         semop
 +semtimedop    -       semtimedop      i:ipip  semtimedop
 +semget                -       semget          i:iii   __semget        semget
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/umount.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/umount.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/rv64/umount.c   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/umount.c   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/umount.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/umount.c
+new file mode 100644
+index 0000000..e7c5690
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/rv64/umount.c
 @@ -0,0 +1,31 @@
 +/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -14233,9 +14631,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +}
 +
 +weak_alias (__umount, umount);
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/setcontext.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/setcontext.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/setcontext.S    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/setcontext.S    2011-11-02 01:26:08.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/setcontext.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/setcontext.S
+new file mode 100644
+index 0000000..8a73bd6
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/setcontext.S
 @@ -0,0 +1,131 @@
 +/* Set current context.
 +   Copyright (C) 2009 Free Software Foundation, Inc.
@@ -14368,9 +14768,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +PSEUDO_END (__setcontext)
 +
 +weak_alias (__setcontext, setcontext)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sigaction.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigaction.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sigaction.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigaction.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigaction.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigaction.c
+new file mode 100644
+index 0000000..d9a8b34
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigaction.c
 @@ -0,0 +1,192 @@
 +/* Copyright (C) 1997,1998,1999,2000,2002,2003,2004,2006
 +      Free Software Foundation, Inc.
@@ -14564,9 +14966,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +RESTORE (restore, __NR_sigreturn)
 +# endif
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
+new file mode 100644
+index 0000000..b18fdff
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h
 @@ -0,0 +1,43 @@
 +/* Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -14611,9 +15015,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/socket.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/socket.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/socket.S        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/socket.S        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/socket.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/socket.S
+new file mode 100644
+index 0000000..85c1e44
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/socket.S
 @@ -0,0 +1,91 @@
 +/* Copyright (C) 1997, 1998, 2002, 2003 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -14706,52 +15112,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#ifndef NO_WEAK_ALIAS
 +weak_alias (__socket, socket)
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/__start_context.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/__start_context.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/__start_context.S       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/__start_context.S       2011-10-27 22:24:01.000000000 -0700
-@@ -0,0 +1,39 @@
-+/* Modify saved context.
-+   Copyright (C) 2009 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
-+   02110-1301, USA.  */
-+
-+#include <sysdep.h>
-+#include <sys/asm.h>
-+
-+#include "ucontext_i.h"
-+
-+      .text
-+LEAF (__start_context)
-+      SETUP_GP64(s8, __start_context)
-+      move    a0, zero
-+      beqz    s0, 1f
-+
-+      /* setcontext (ucp) */
-+      move    a0, s0
-+      PIC_JAL(s8, __setcontext)
-+      move    a0, v0
-+
-+1:    PIC_JAL(s8, HIDDEN_JUMPTARGET (exit))
-+
-+PSEUDO_END (__start_context)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/swapcontext.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/swapcontext.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/swapcontext.S   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/swapcontext.S   2011-11-02 01:25:30.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/swapcontext.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/swapcontext.S
+new file mode 100644
+index 0000000..7c4d238
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/swapcontext.S
 @@ -0,0 +1,131 @@
 +/* Save and set current context.
 +   Copyright (C) 2009 Free Software Foundation, Inc.
@@ -14884,9 +15249,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +PSEUDO_END (__swapcontext)
 +
 +weak_alias (__swapcontext, swapcontext)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
+new file mode 100644
+index 0000000..3d9f914
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/cachectl.h
 @@ -0,0 +1,42 @@
 +/* Copyright (C) 1995, 1996, 1997, 2000, 2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -14930,9 +15297,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/cachectl.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/epoll.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/epoll.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/epoll.h     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/epoll.h     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/epoll.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/epoll.h
+new file mode 100644
+index 0000000..6d2ec8e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/epoll.h
 @@ -0,0 +1,144 @@
 +/* Copyright (C) 2002-2006, 2007, 2008 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15078,9 +15447,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/epoll.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h
+new file mode 100644
+index 0000000..b30d09a
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/eventfd.h
 @@ -0,0 +1,54 @@
 +/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15136,9 +15507,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/eventfd.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/inotify.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/inotify.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/inotify.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/inotify.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/inotify.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/inotify.h
+new file mode 100644
+index 0000000..d1d0509
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/inotify.h
 @@ -0,0 +1,107 @@
 +/* Copyright (C) 2005, 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15247,9 +15620,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/inotify.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/procfs.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/procfs.h    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/procfs.h    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/procfs.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
+new file mode 100644
+index 0000000..ce11419
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/procfs.h
 @@ -0,0 +1,128 @@
 +/* Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
 +      Free Software Foundation, Inc.
@@ -15379,9 +15754,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif        /* sys/procfs.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h
+new file mode 100644
+index 0000000..08923c0
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/signalfd.h
 @@ -0,0 +1,66 @@
 +/* Copyright (C) 2007, 2008 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15449,9 +15826,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/signalfd.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/syscall.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/syscall.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/syscall.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/syscall.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/syscall.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/syscall.h
+new file mode 100644
+index 0000000..57d646e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/syscall.h
 @@ -0,0 +1,35 @@
 +/* Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15488,9 +15867,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#endif
 +
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h
+new file mode 100644
+index 0000000..aefc52e
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/sysmips.h
 @@ -0,0 +1,43 @@
 +/* Copyright (C) 1995, 1997, 2000, 2001, 2009 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15535,9 +15916,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/sysmips.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/tas.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/tas.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/tas.h       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/tas.h       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/tas.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/tas.h
+new file mode 100644
+index 0000000..8f27db2
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/tas.h
 @@ -0,0 +1,51 @@
 +/* Copyright (C) 2000, 2002, 2003, 2004, 2007, 2009
 +   Free Software Foundation, Inc.
@@ -15590,9 +15973,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/tas.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h
+new file mode 100644
+index 0000000..ebd37ff
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/timerfd.h
 @@ -0,0 +1,60 @@
 +/* Copyright (C) 2008 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15654,9 +16039,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +__END_DECLS
 +
 +#endif /* sys/timerfd.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
+new file mode 100644
+index 0000000..99a5464
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/ucontext.h
 @@ -0,0 +1,69 @@
 +/* Copyright (C) 1997, 1998, 2000, 2003, 2004, 2006, 2009 Free Software
 +   Foundation, Inc.  This file is part of the GNU C Library.
@@ -15727,9 +16114,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +  } ucontext_t;
 +
 +#endif /* sys/ucontext.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/user.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/user.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sys/user.h      1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/user.h      2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/user.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/user.h
+new file mode 100644
+index 0000000..5522050
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sys/user.h
 @@ -0,0 +1,219 @@
 +/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15950,9 +16339,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#define HOST_STACK_END_ADDR   (u.start_stack + u.u_ssize * NBPG)
 +
 +#endif        /* _SYS_USER_H */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/syscall.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscall.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/syscall.c       1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscall.c       2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscall.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscall.c
+new file mode 100644
+index 0000000..0dcf09f
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscall.c
 @@ -0,0 +1,36 @@
 +/* Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -15990,9 +16381,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +  return ret;
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/syscalls.list glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscalls.list
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/syscalls.list   1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscalls.list   2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscalls.list b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscalls.list
+new file mode 100644
+index 0000000..518f2a2
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/syscalls.list
 @@ -0,0 +1,31 @@
 +# File name   Caller  Syscall name    Args    Strong name     Weak names
 +
@@ -16025,9 +16418,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +shutdown      -       shutdown        i:ii    __shutdown      shutdown
 +socket                -       socket          i:iii   __socket        socket
 +socketpair    -       socketpair      i:iiif  __socketpair    socketpair
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sysdep.h glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sysdep.h
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/sysdep.h        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sysdep.h        2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sysdep.h b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sysdep.h
+new file mode 100644
+index 0000000..74e0299
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/sysdep.h
 @@ -0,0 +1,259 @@
 +/* Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006, 2009
 +   Free Software Foundation, Inc.
@@ -16288,43 +16683,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +#define PTR_DEMANGLE(var) (void) (var)
 +
 +#endif /* linux/mips/sysdep.h */
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/_test_and_set.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/_test_and_set.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/_test_and_set.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/_test_and_set.c 2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,30 @@
-+/* Copyright (C) 2000 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+   Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+/* Define the real-function versions of all inline functions
-+   defined in sys/tas.h  */
-+
-+#include <features.h>
-+
-+#define _EXTERN_INLINE
-+#ifndef __USE_EXTERN_INLINES
-+# define __USE_EXTERN_INLINES 1
-+#endif
-+
-+#include "sys/tas.h"
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/truncate64.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/truncate64.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/truncate64.c    1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/truncate64.c    2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/truncate64.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/truncate64.c
+new file mode 100644
+index 0000000..01cc148
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/truncate64.c
 @@ -0,0 +1,76 @@
 +/* Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006
 +      Free Software Foundation, Inc.
@@ -16402,9 +16765,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +/* Use the generic implementation.  */
 +# include <misc/truncate64.c>
 +#endif
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym  1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym  2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym
+new file mode 100644
+index 0000000..b074ff7
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ucontext_i.sym
 @@ -0,0 +1,43 @@
 +#include <inttypes.h>
 +#include <signal.h>
@@ -16449,9 +16814,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +MCONTEXT_USED_MATH            mcontext (used_math)
 +
 +UCONTEXT_SIZE                 sizeof (ucontext_t)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ustat.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ustat.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/ustat.c 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ustat.c 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ustat.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ustat.c
+new file mode 100644
+index 0000000..a309f71
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/ustat.c
 @@ -0,0 +1,37 @@
 +/* Copyright (C) 1997, 1998, 2000, 2003 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -16490,53 +16857,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +  return INLINE_SYSCALL (ustat, 2, k_dev, CHECK_1 (ubuf));
 +}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/Versions glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Versions
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/Versions        1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/Versions        2011-10-25 02:48:44.000000000 -0700
-@@ -0,0 +1,40 @@
-+ld {
-+  GLIBC_PRIVATE {
-+    # used for loading by static libraries
-+    _dl_var_init;
-+  }
-+}
-+libc {
-+  # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk.
-+  # When you get an error from errlist-compat.awk, you need to add a new
-+  # version here.  Don't do this blindly, since this means changing the ABI
-+  # for all GNU/Linux configurations.
-+
-+  GLIBC_2.0 {
-+    #errlist-compat   123
-+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
-+
-+    # Exception handling support functions from libgcc
-+    __register_frame; __register_frame_table; __deregister_frame;
-+    __frame_state_for; __register_frame_info_table;
-+
-+    # Needed by gcc:
-+    _flush_cache;
-+
-+    # c*
-+    cachectl; cacheflush;
-+
-+    # s*
-+    sysmips;
-+  }
-+  GLIBC_2.2 {
-+    #errlist-compat   1134
-+    _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
-+
-+    # _*
-+    _test_and_set;
-+  }
-+  GLIBC_2.11 {
-+    fallocate64;
-+  }
-+}
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/vfork.S glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/vfork.S
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/vfork.S 1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/vfork.S 2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/vfork.S b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/vfork.S
+new file mode 100644
+index 0000000..14ffe43
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/vfork.S
 @@ -0,0 +1,65 @@
 +/* Copyright (C) 2005 Free Software Foundation, Inc.
 +   This file is part of the GNU C Library.
@@ -16603,9 +16928,11 @@ diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sy
 +
 +libc_hidden_def(__vfork)
 +weak_alias (__vfork, vfork)
-diff -x manual -x po -x autom4te.cache -ruN ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/xstatconv.c glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/xstatconv.c
---- ../glibc-2.14.1-orig/sysdeps/unix/sysv/linux/riscv/xstatconv.c     1969-12-31 16:00:00.000000000 -0800
-+++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/xstatconv.c     2011-10-25 02:48:44.000000000 -0700
+diff --git a/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/xstatconv.c b/glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/xstatconv.c
+new file mode 100644
+index 0000000..d426818
+--- /dev/null
++++ glibc-2.14.1/sysdeps/unix/sysv/linux/riscv/xstatconv.c
 @@ -0,0 +1,202 @@
 +/* Convert between the kernel's `struct stat' format, and libc's.
 +   Copyright (C) 1991,1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc.