 -#endif /* ! __SH5__ */
 diff -ruN gcc-4.7.3/libgcc/config/sh/fake-kos.S gcc-4.7.3-kos/libgcc/config/sh/fake-kos.S
 --- gcc-4.7.3/libgcc/config/sh/fake-kos.S	1969-12-31 19:00:00.000000000 -0500
-+++ gcc-4.7.3-kos/libgcc/config/sh/fake-kos.S	2013-05-17 21:34:42.000000000 -0400
++++ gcc-4.7.3-kos/libgcc/config/sh/fake-kos.S	2016-12-10 20:52:47.000000000 -0500
 @@ -0,0 +1,75 @@
 +! Weakly linked symbols used to get GCC to hopefully compile itself properly.
 +! These will be replaced by the real symbols in actual compiled programs.

 esac
 
 # Substitute configuration variables

diff -ruN gcc-4.7.3/gcc/cp/cfns.h gcc-4.7.3-kos/gcc/cp/cfns.h
--- gcc-4.7.3/gcc/cp/cfns.h
+++ gcc-4.7.3-kos/gcc/cp/cfns.h
@@ -53,6 +53,9 @@ __inline
 static unsigned int hash (const char *, unsigned int);
 #ifdef __GNUC__
 __inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
 #endif
 const char * libc_name_p (const char *, unsigned int);
 /* maximum key range = 391, duplicates = 0 */
@@ -96,7 +99,7 @@ hash (register const char *str, register
       400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
       400, 400, 400, 400, 400, 400, 400
     };
-  register int hval = len;
+  register int hval = (int)len;

   switch (hval)
     {

\ No newline at end of file
diff -ruN gcc-4.7.3/libgcc/config/sh/gthr-kos.h gcc-4.7.3-kos/libgcc/config/sh/gthr-kos.h
--- gcc-4.7.3/libgcc/config/sh/gthr-kos.h	1969-12-31 19:00:00.000000000 -0500
+++ gcc-4.7.3-kos/libgcc/config/sh/gthr-kos.h	2016-12-10 20:52:47.000000000 -0500
@@ -0,0 +1,355 @@
+/* Copyright (C) 2009, 2010, 2011, 2012 Lawrence Sebald */
+
