diff --color -rN -u vanilla/gcc-12.2.0/config.sub gcc-12.2.0/config.sub
--- a/gcc-12.2.0/config.sub	2022-08-19 10:09:52.128656687 +0200
+++ b/gcc-12.2.0/config.sub	2023-08-08 20:42:05.032843544 +0200
@@ -1723,7 +1723,7 @@
 	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
 	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
 	     | hiux* | abug | nacl* | netware* | windows* \
-	     | os9* | macos* | osx* | ios* \
+	     | os9* | macos* | osx* | ios* | luna* \
 	     | mpw* | magic* | mmixware* | mon960* | lnews* \
 	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
 	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
diff --color -rN -u vanilla/gcc-12.2.0/fixincludes/mkfixinc.sh gcc-12.2.0/fixincludes/mkfixinc.sh
--- a/gcc-12.2.0/fixincludes/mkfixinc.sh	2022-08-19 10:09:52.160657095 +0200
+++ b/gcc-12.2.0/fixincludes/mkfixinc.sh	2023-08-08 20:42:05.034843561 +0200
@@ -12,6 +12,8 @@
 # Check for special fix rules for particular targets
 case $machine in
     i?86-*-cygwin* | \
+    *-luna* | \
+    *-*-luna* | \
     i?86-*-mingw32* | \
     x86_64-*-mingw32* | \
     powerpc-*-eabisim* | \
diff --color -rN -u vanilla/gcc-12.2.0/gcc/config/i386/x86_64-luna-kernel gcc-12.2.0/gcc/config/i386/x86_64-luna-kernel
--- a/gcc-12.2.0/gcc/config/i386/x86_64-luna-kernel	1970-01-01 01:00:00.000000000 +0100
+++ b/gcc-12.2.0/gcc/config/i386/x86_64-luna-kernel	2023-08-08 20:42:05.038843594 +0200
@@ -0,0 +1,4 @@
+#Add libgcc multilib variant without red-zone requirement, for use in the kernel
+
+MULTILIB_OPTIONS += mno-red-zone
+MULTILIB_DIRNAMES += no-red-zone
\ No newline at end of file
diff --color -rN -u vanilla/gcc-12.2.0/gcc/config/luna.h gcc-12.2.0/gcc/config/luna.h
--- a/gcc-12.2.0/gcc/config/luna.h	1970-01-01 01:00:00.000000000 +0100
+++ b/gcc-12.2.0/gcc/config/luna.h	2023-08-08 20:42:05.040843610 +0200
@@ -0,0 +1,36 @@
+#undef TARGET_LUNA
+#define TARGET_LUNA 1
+
+/* Default arguments you want when running your
+   i686-luna-gcc/x86_64-luna-gcc toolchain */
+#undef LIB_SPEC
+#define LIB_SPEC "-lc" /* link against C standard library */
+
+/* Files that are linked before user code.
+   The %s tells GCC to look for these files in the library directory. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s"
+
+/* Files that are linked after user code. */
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "crtend.o%s crtn.o%s"
+
+#undef SIZE_TYPE
+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int")
+
+/* Ensure that ptrdiff_t matches the actual pointer size */
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
+
+/* Additional predefined macros. */
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS()                                                                                       \
+    do {                                                                                                               \
+        builtin_define("__luna__");                                                                                    \
+        builtin_define("__unix__");                                                                                    \
+        builtin_assert("system=luna");                                                                                 \
+        builtin_assert("system=unix");                                                                                 \
+        builtin_assert("system=posix");                                                                                \
+    } while (0);
+
+#undef LINK_SPEC
diff --color -rN -u vanilla/gcc-12.2.0/gcc/config.gcc gcc-12.2.0/gcc/config.gcc
--- a/gcc-12.2.0/gcc/config.gcc	2022-08-19 10:09:52.552662114 +0200
+++ b/gcc-12.2.0/gcc/config.gcc	2023-08-08 20:42:05.044843643 +0200
@@ -895,6 +895,12 @@
       ;;
   esac
   ;;
+*-*-luna*)
+  gas=yes
+  gnu_ld=yes
+  default_use_cxa_atexit=yes
+  use_gcc_stdint=provide
+  ;;
 *-*-netbsd*)
   tm_p_file="${tm_p_file} netbsd-protos.h"
   tmake_file="t-netbsd t-slibgcc"
@@ -1901,6 +1907,13 @@
 x86_64-*-elf*)
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
 	;;
+i[34567]86-*-luna*)
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h luna.h"
+	;;
+x86_64-*-luna*)
+	tmake_file="${tmake_file} i386/x86_64-luna-kernel"
+	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h luna.h"
+	;;
 x86_64-*-rtems*)
 	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h rtems.h"
 	;;
diff --color -rN -u vanilla/gcc-12.2.0/libgcc/config.host gcc-12.2.0/libgcc/config.host
--- a/gcc-12.2.0/libgcc/config.host	2022-08-19 10:09:54.664689148 +0200
+++ b/gcc-12.2.0/libgcc/config.host	2023-08-08 20:42:05.046843660 +0200
@@ -783,6 +783,14 @@
 	;;
 i[34567]86-*-lynxos*)
 	;;
+i[34567]86-*-luna*)
+	extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o"
+	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
+	;;
+x86_64-*-luna*)
+	extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o"
+	tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic"
+	;;
 i[34567]86-*-nto-qnx*)
 	tmake_file="$tmake_file i386/t-nto t-libgcc-pic"
 	extra_parts=crtbegin.o
diff --color -rN -u vanilla/gcc-12.2.0/libgcc/libgcov.h gcc-12.2.0/libgcc/libgcov.h
--- a/gcc-12.2.0/libgcc/libgcov.h	2022-08-19 10:09:54.728689966 +0200
+++ b/gcc-12.2.0/libgcc/libgcov.h	2023-08-08 20:42:05.048843677 +0200
@@ -194,6 +194,7 @@
 #endif
 
 #include "gcov-io.h"
+#include <stdint.h>
 
 /* Structures embedded in coveraged program.  The structures generated
    by write_profile must match these.  */
diff --color -rN -u vanilla/gcc-12.2.0/libstdc++-v3/acinclude.m4 gcc-12.2.0/libstdc++-v3/acinclude.m4
--- a/gcc-12.2.0/libstdc++-v3/acinclude.m4	2022-08-19 10:09:55.380698313 +0200
+++ b/gcc-12.2.0/libstdc++-v3/acinclude.m4	2023-08-08 21:08:00.777765701 +0200
@@ -1356,6 +1356,10 @@
         ac_has_nanosleep=yes
         ac_has_sched_yield=yes
         ;;
+      luna*)
+        ac_has_clock_monotonic=yes
+	ac_has_clock_realtime=yes
+	;;
       # VxWorks has nanosleep as soon as the kernel is configured with
       # INCLUDE_POSIX_TIMERS, which is normally/most-often the case.
       vxworks*)
@@ -2421,7 +2425,7 @@
       dragonfly* | freebsd*)
 	enable_clocale_flag=dragonfly
 	;;
-      openbsd*)
+      openbsd* | luna*)
 	enable_clocale_flag=newlib
 	;;
       *)
diff --color -rN -u vanilla/gcc-12.2.0/libstdc++-v3/configure gcc-12.2.0/libstdc++-v3/configure
--- a/gcc-12.2.0/libstdc++-v3/configure	2022-08-19 10:09:55.416698774 +0200
+++ b/gcc-12.2.0/libstdc++-v3/configure	2023-08-09 11:34:54.810282202 +0200
@@ -16481,6 +16481,9 @@
       openbsd*)
 	enable_clocale_flag=newlib
 	;;
+      luna*)
+	enable_clocale_flag=generic
+	;;
       *)
 	if test x"$with_newlib" = x"yes"; then
 	  enable_clocale_flag=newlib
@@ -20493,6 +20496,10 @@
         ac_has_nanosleep=yes
         ac_has_sched_yield=yes
         ;;
+      luna*)
+        ac_has_clock_monotonic=yes
+	ac_has_clock_realtime=yes
+	;;
       # VxWorks has nanosleep as soon as the kernel is configured with
       # INCLUDE_POSIX_TIMERS, which is normally/most-often the case.
       vxworks*)
diff --color -rN -u vanilla/gcc-12.2.0/libstdc++-v3/configure.host gcc-12.2.0/libstdc++-v3/configure.host
--- a/gcc-12.2.0/libstdc++-v3/configure.host	2022-08-19 10:09:55.420698825 +0200
+++ b/gcc-12.2.0/libstdc++-v3/configure.host	2023-08-09 11:35:05.734185945 +0200
@@ -306,6 +306,9 @@
   vxworks*)
     os_include_dir="os/vxworks"
     ;;
+  luna*)
+    os_include_dir="os/generic"
+    ;;
   *)
     os_include_dir="os/generic"
     ;;
diff --color -rN -u vanilla/gcc-12.2.0/libstdc++-v3/crossconfig.m4 gcc-12.2.0/libstdc++-v3/crossconfig.m4
--- a/gcc-12.2.0/libstdc++-v3/crossconfig.m4	2022-08-19 10:09:55.420698825 +0200
+++ b/gcc-12.2.0/libstdc++-v3/crossconfig.m4	2023-08-08 21:16:12.897071194 +0200
@@ -277,6 +277,12 @@
     GLIBCXX_CHECK_MATH_SUPPORT
     GLIBCXX_CHECK_STDLIB_SUPPORT
     ;;
+  *-luna*)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    ;;
   *-vxworks*)
     AC_DEFINE(HAVE_ACOSF)
     AC_DEFINE(HAVE_ASINF)