diff -rNau gcc-13.2.0/config.sub gcc-13.2.0-patched/config.sub --- gcc-13.2.0/config.sub 2023-07-27 04:13:03.000000000 -0400 +++ gcc-13.2.0-patched/config.sub 2024-03-10 23:33:56.596289806 -0400 @@ -1749,7 +1749,7 @@ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \ - | fiwix* ) + | fiwix* | jove* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) diff -rNau gcc-13.2.0/fixincludes/mkfixinc.sh gcc-13.2.0-patched/fixincludes/mkfixinc.sh --- gcc-13.2.0/fixincludes/mkfixinc.sh 2023-07-27 04:13:03.000000000 -0400 +++ gcc-13.2.0-patched/fixincludes/mkfixinc.sh 2024-03-10 23:49:24.405547826 -0400 @@ -20,6 +20,7 @@ powerpcle-*-eabisim* | \ powerpcle-*-eabi* | \ *-*-vxworks7* | \ + *-*-jove* | \ *-musl* ) # IF there is no include fixing, # THEN create a no-op fixer and exit diff -rNau gcc-13.2.0/gcc/config/jove.h gcc-13.2.0-patched/gcc/config/jove.h --- gcc-13.2.0/gcc/config/jove.h 1969-12-31 19:00:00.000000000 -0500 +++ gcc-13.2.0-patched/gcc/config/jove.h 2024-03-10 23:44:13.570083205 -0400 @@ -0,0 +1,8 @@ +#undef TARGET_JOVE +#define TARGET_JOVE 1 + +#undef LIB_SPEC +#define LIB_SPEC "-lc" + +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "crt0.o%s crti.o%s crtbegin.o%s" + +#undef ENDFILE_SPEC +#define ENDFILE_SPEC "crtend.o%s crtn.o%s" diff -rNau gcc-13.2.0/gcc/config.gcc gcc-13.2.0-patched/gcc/config.gcc --- gcc-13.2.0/gcc/config.gcc 2023-07-27 04:13:04.000000000 -0400 +++ gcc-13.2.0-patched/gcc/config.gcc 2024-03-10 23:42:11.659119360 -0400 @@ -843,6 +843,12 @@ *-*-fuchsia*) native_system_header_dir=/include ;; +*-*-jove*) + gas=yes + gnu_ld=yes + default_use_cxa_atexit=yes + use_gcc_stdint=provide + ;; *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi) extra_options="$extra_options gnu-user.opt" gas=yes @@ -1891,6 +1897,9 @@ x86_64-*-freebsd*) tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" ;; +x86_64-*-jove*) + tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h jove.h" + ;; i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h" extra_options="${extra_options} netbsd.opt netbsd-elf.opt" diff -rNau gcc-13.2.0/libgcc/config.host gcc-13.2.0-patched/libgcc/config.host --- gcc-13.2.0/libgcc/config.host 2023-07-27 04:13:07.000000000 -0400 +++ gcc-13.2.0-patched/libgcc/config.host 2024-03-10 23:47:32.669386544 -0400 @@ -386,6 +386,10 @@ esac case ${host} in +x86_64-*-jove*) + tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" + extra_parts="$extra_parts crti.o crtbegin.o crtend.o crtn.o" + ;; aarch64*-*-elf | aarch64*-*-rtems*) extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o" extra_parts="$extra_parts crtfastmath.o"