diff -ruN gcc-13.2.0-copy/config.sub gcc-13.2.0/config.sub
--- gcc-13.2.0-copy/config.sub	2024-03-03 11:35:31.049089458 -0500
+++ gcc-13.2.0/config.sub	2024-03-03 11:43:08.078903300 -0500
@@ -1749,7 +1749,7 @@
 	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
 	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
 	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* )
+	     | fiwix* | hyra* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
diff -ruN gcc-13.2.0-copy/fixincludes/mkfixinc.sh gcc-13.2.0/fixincludes/mkfixinc.sh
--- gcc-13.2.0-copy/fixincludes/mkfixinc.sh	2024-03-03 11:35:30.112403110 -0500
+++ gcc-13.2.0/fixincludes/mkfixinc.sh	2024-03-03 11:43:52.212764492 -0500
@@ -20,6 +20,8 @@
     powerpcle-*-eabisim* | \
     powerpcle-*-eabi* | \
     *-*-vxworks7* | \
+    *-hyra* | \
+    *-*-hyra* | \
     *-musl* )
 	#  IF there is no include fixing,
 	#  THEN create a no-op fixer and exit
diff -ruN gcc-13.2.0-copy/gcc/config/hyra.h gcc-13.2.0/gcc/config/hyra.h
--- gcc-13.2.0-copy/gcc/config/hyra.h	1969-12-31 19:00:00.000000000 -0500
+++ gcc-13.2.0/gcc/config/hyra.h	2024-03-03 11:45:20.143810858 -0500
@@ -0,0 +1,29 @@
+#undef TARGET_HYRA
+#define TARGET_HYRA 1
+
+#undef LIB_SPEC
+#define LIB_SPEC "-lc"
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "%{!shared:crt0.o%s} crti.o%s %{shared:crtbeginS.o%s;:crtbegin.o%s}"
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{shared:crtendS.o%s;:crtend.o%s} crtn.o%s"
+
+#define GNU_USER_LINK_EMULATION32 "elf_i386"
+#define GNU_USER_LINK_EMULATION64 "elf_x86_64"
+#define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
+
+#define GNU_USER_DYNAMIC_LINKER32 "/usr/lib/ld_i386.so"
+#define GNU_USER_DYNAMIC_LINKER64 "/usr/lib/ld.so"
+#define GNU_USER_DYNAMIC_LINKERX32 "/usr/lib/ld32.so"
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS()         \
+  do {                                   \
+    builtin_define ("__hyra__");    \
+    builtin_define ("__unix__");         \
+    builtin_assert ("system=hyra"); \
+    builtin_assert ("system=unix");      \
+    builtin_assert ("system=posix");     \
+  } while (0);
diff -ruN gcc-13.2.0-copy/gcc/config.gcc gcc-13.2.0/gcc/config.gcc
--- gcc-13.2.0-copy/gcc/config.gcc	2024-03-03 11:35:31.552433364 -0500
+++ gcc-13.2.0/gcc/config.gcc	2024-03-03 11:47:40.945471968 -0500
@@ -843,6 +843,15 @@
 *-*-fuchsia*)
   native_system_header_dir=/include
   ;;
+*-*-hyra*)
+  extra_options="$extra_options gnu-user.opt"
+  gas=yes
+  gnu_ld=yes
+  default_use_cxa_atexit=yes
+  use_gcc_stdint=wrap
+  tmake_file="${tmake_file} t-slibgcc"
+  thread_file='posix'
+  ;;
 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
   extra_options="$extra_options gnu-user.opt"
   gas=yes
@@ -2218,6 +2227,9 @@
 	tmake_file="${tmake_file} i386/t-x86_64-elf"
 	tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h"
 	;;
+x86_64-*-hyra*)
+    tm_file="${tm_file} i386/unix.h i386/att.h elfos.h gnu-user.h glibc-stdint.h i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h hyra.h"
+	;;
 ia64*-*-elf*)
 	tm_file="${tm_file} elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
 	tmake_file="ia64/t-ia64"
diff -ruN gcc-13.2.0-copy/libgcc/config.host gcc-13.2.0/libgcc/config.host
--- gcc-13.2.0-copy/libgcc/config.host	2024-03-03 11:35:30.195738195 -0500
+++ gcc-13.2.0/libgcc/config.host	2024-03-03 11:49:47.703619260 -0500
@@ -281,6 +281,11 @@
   tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia"
   extra_parts="crtbegin.o crtend.o"
   ;;
+*-*-hyra*)
+  extra_parts="$extra_parts crtbegin.o crtbeginS.o crtend.o crtendS.o"
+  tmake_file="$tmake_file t-crtstuff-pic"
+  tmake_file="$tmake_file t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-libgcc-pic"
+  ;;
 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
   tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux"
   extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
@@ -715,6 +720,10 @@
 x86_64-*-fuchsia*)
 	tmake_file="$tmake_file t-libgcc-pic"
 	;;
+x86_64-*-hyra*)
+    extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
+    tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
+	;;
 i[34567]86-*-dragonfly*)
 	tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff"
 	md_unwind_header=i386/dragonfly-unwind.h
diff -ruN gcc-13.2.0-copy/libgcc/configure.ac gcc-13.2.0/libgcc/configure.ac
--- gcc-13.2.0-copy/libgcc/configure.ac	2024-03-03 11:35:30.195738195 -0500
+++ gcc-13.2.0/libgcc/configure.ac	2024-03-03 11:50:05.950497937 -0500
@@ -46,7 +46,7 @@
   libgcc_topdir="${srcdir}/.."
 fi
 AC_SUBST(libgcc_topdir)
-AC_CONFIG_AUX_DIR($libgcc_topdir)
+AC_CONFIG_AUX_DIR([.])
 AC_CONFIG_HEADER(auto-target.h:config.in)
 
 AC_ARG_ENABLE(shared,
diff -ruN gcc-13.2.0-copy/libiberty/configure.ac gcc-13.2.0/libiberty/configure.ac
--- gcc-13.2.0-copy/libiberty/configure.ac	2024-03-03 11:35:35.829189807 -0500
+++ gcc-13.2.0/libiberty/configure.ac	2024-03-03 11:50:29.010765475 -0500
@@ -37,7 +37,7 @@
   libiberty_topdir="${srcdir}/.."
 fi
 AC_SUBST(libiberty_topdir)
-AC_CONFIG_AUX_DIR($libiberty_topdir)
+AC_CONFIG_AUX_DIR([.])
 
 dnl Very limited version of automake's enable-maintainer-mode
 
diff -ruN gcc-13.2.0-copy/libstdc++-v3/crossconfig.m4 gcc-13.2.0/libstdc++-v3/crossconfig.m4
--- gcc-13.2.0-copy/libstdc++-v3/crossconfig.m4	2024-03-03 11:35:30.979087987 -0500
+++ gcc-13.2.0/libstdc++-v3/crossconfig.m4	2024-03-03 11:51:42.994954128 -0500
@@ -140,6 +140,17 @@
     SECTION_FLAGS='-ffunction-sections -fdata-sections'
     AC_SUBST(SECTION_FLAGS)
     ;;
+*-hyra*)
+    GLIBCXX_CHECK_COMPILER_FEATURES
+    GLIBCXX_CHECK_LINKER_FEATURES
+    GLIBCXX_CHECK_MATH_SUPPORT
+    GLIBCXX_CHECK_STDLIB_SUPPORT
+    AC_DEFINE(_GLIBCXX_USE_DEV_RANDOM)
+    AC_DEFINE(_GLIBCXX_USE_RANDOM_TR1)
+    GCC_CHECK_TLS
+    AC_CHECK_FUNCS(aligned_alloc posix_memalign memalign _aligned_malloc)
+    AC_CHECK_FUNCS(timespec_get)
+    ;;
 
   *-hpux*)
     SECTION_FLAGS='-ffunction-sections -fdata-sections'