From: quzar <qu...@us...> - 2025-01-07 16:04:50
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "A pseudo Operating System for the Dreamcast.". The branch, master has been updated via 515eaeef6a3823b17d50c037fd74099e055dcb81 (commit) via f22bd64664566b3edb017488cf591d514db7a997 (commit) via 449c369024dad40d4ef61655c633a67440f77922 (commit) via 4ab09d5e998f30e240f0abca9fc1f0c4239efa23 (commit) via 90ed4b408852a3ebfb48679a0904af6beda572aa (commit) via b5dba54346f93568e833303b90c9b85ba8f7543e (commit) via bd52193bbbe48e1bcd0e231a26f994fa36e32660 (commit) via b259c700c8ab3c4694829fc3e2bdef266a257039 (commit) via 7560594e9e4d303d398d8a727e2b3616e66cc971 (commit) from 99b18e3a864c4f591f73dad893b10d0f4920de81 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 515eaeef6a3823b17d50c037fd74099e055dcb81 Merge: f22bd646 90ed4b40 Author: Donald Haase <qu...@ya...> Date: Tue Jan 7 09:34:07 2025 -0500 Merge pull request #882 from pcercuei/pvr-better-compile pvr_prim: Speed up header compilation commit f22bd64664566b3edb017488cf591d514db7a997 Merge: 449c3690 7560594e Author: Donald Haase <qu...@ya...> Date: Tue Jan 7 09:33:02 2025 -0500 Merge pull request #881 from KallistiOS/termios Remove dependence on minimal termios stub. commit 449c369024dad40d4ef61655c633a67440f77922 Merge: 4ab09d5e b5dba543 Author: Donald Haase <qu...@ya...> Date: Tue Jan 7 09:32:35 2025 -0500 Merge pull request #880 from darcagn/chain-updates dc-chain Updates commit 4ab09d5e998f30e240f0abca9fc1f0c4239efa23 Merge: 99b18e3a bd52193b Author: Donald Haase <qu...@ya...> Date: Sun Jan 5 20:34:04 2025 -0500 Merge pull request #867 from pcercuei/aligned-alloc koslib: Drop our aligned_alloc() commit 90ed4b408852a3ebfb48679a0904af6beda572aa Author: Paul Cercueil <pa...@cr...> Date: Sun Jan 5 18:04:35 2025 +0100 pvr_prim: Speed up header compilation Use the fact that the headers are always aligned to 32 bytes, and allocate a dirty cache line when writing the first 4 bytes. This avoids a possible cache miss that would have loaded the header's 32 bytes from RAM, which would have subsequently been overwritten. Signed-off-by: Paul Cercueil <pa...@cr...> commit b5dba54346f93568e833303b90c9b85ba8f7543e Author: darc <da...@pr...> Date: Fri Jan 3 17:10:31 2025 -0600 dc-chain Updates - Newlib 4.5.0 patch added - Migration to Newlib 4.5.0 and Binutils 2.43.1 for profiles newer than stable - Offsets adjusted when applicable for development toolchain patches - Profile successful build dates updated - GDB updated to 15.2 for all profiles commit bd52193bbbe48e1bcd0e231a26f994fa36e32660 Author: Paul Cercueil <pa...@cr...> Date: Mon Dec 9 15:53:11 2024 +0100 koslib: Drop our aligned_alloc() Newlib already provides this function; which means that sometimes KOS' implementation was picked, and sometimes Newlib's implementation was picked. This was a problem with LTO in particular, as Newlib's implementation would fail to link against KOS-provided memalign() with old toolchains (newer toolchains link against memalign_r()). Address this issue by dropping KOS' aligned_alloc(), and marking its memalign() implementation as "always used", which fixes the linking when using LTO. Signed-off-by: Paul Cercueil <pa...@cr...> commit b259c700c8ab3c4694829fc3e2bdef266a257039 Author: Paul Cercueil <pa...@cr...> Date: Thu Jan 2 16:14:04 2025 +0100 koslib: Provide _memalign_r() The newlib_malloc.c file was missing the _memalign_r() stub. Signed-off-by: Paul Cercueil <pa...@cr...> commit 7560594e9e4d303d398d8a727e2b3616e66cc971 Author: QuzarDC <qu...@co...> Date: Sat Jan 4 07:00:35 2025 -0500 Remove dependence on minimal termios stub. For #636 a stub of termios functionality was added in order to support isatty. This broke libjimtcl and would break other software that detected termios compatibility as it implemented only the minimum needed for isatty. This replaces the use of tcgetattr with a check of the kos vfs handler to test if it's pty. The stub termios header and tcgetattr is then removed. ----------------------------------------------------------------------- Summary of changes: include/sys/ioctl.h | 12 +----- include/sys/termios.h | 48 --------------------- kernel/arch/dreamcast/hardware/pvr/pvr_prim.c | 34 ++++++++++++--- kernel/fs/fs_pty.c | 35 +-------------- kernel/libc/c11/Makefile | 2 +- kernel/libc/c11/aligned_alloc.c | 18 -------- kernel/libc/koslib/malloc.c | 1 + kernel/libc/newlib/Makefile | 2 +- kernel/libc/newlib/newlib_isatty.c | 18 ++++++-- kernel/libc/newlib/newlib_malloc.c | 7 +++ kernel/libc/newlib/newlib_tcgetattr.c | 12 ------ utils/dc-chain/README.md | 14 +++--- utils/dc-chain/patches/gcc-15.0.0-kos.diff | 4 +- utils/dc-chain/patches/gcc-rustc-kos.diff | 4 +- .../newlib-4.4.0.20231231-kos.diff | 0 ...120-kos.diff => newlib-4.5.0.20241231-kos.diff} | 50 +++++++++++----------- utils/dc-chain/profiles/profile.10.5.0.mk | 2 +- utils/dc-chain/profiles/profile.11.5.0.mk | 2 +- utils/dc-chain/profiles/profile.12.4.0.mk | 2 +- utils/dc-chain/profiles/profile.13.3.0.mk | 8 ++-- utils/dc-chain/profiles/profile.13.3.1-dev.mk | 10 ++--- utils/dc-chain/profiles/profile.14.2.0.mk | 8 ++-- utils/dc-chain/profiles/profile.14.2.1-dev.mk | 10 ++--- utils/dc-chain/profiles/profile.15.0.0-dev.mk | 10 ++--- utils/dc-chain/profiles/profile.9.5.0-winxp.mk | 2 +- utils/dc-chain/profiles/profile.gccrs-dev.mk | 10 ++--- utils/dc-chain/profiles/profile.rustc-dev.mk | 10 ++--- utils/dc-chain/profiles/profile.stable.mk | 2 +- 28 files changed, 128 insertions(+), 209 deletions(-) delete mode 100644 include/sys/termios.h delete mode 100644 kernel/libc/c11/aligned_alloc.c delete mode 100644 kernel/libc/newlib/newlib_tcgetattr.c rename utils/dc-chain/patches/{ => historical}/newlib-4.4.0.20231231-kos.diff (100%) copy utils/dc-chain/patches/{newlib-4.3.0.20230120-kos.diff => newlib-4.5.0.20241231-kos.diff} (74%) mode change 100755 => 100644 diff --git a/include/sys/ioctl.h b/include/sys/ioctl.h index 1bbd3ae3..0baa546a 100644 --- a/include/sys/ioctl.h +++ b/include/sys/ioctl.h @@ -5,7 +5,7 @@ */ -/** \file sys/uio.h +/** \file sys/ioctl.h \brief Header for terminal control operations. \ingroup vfs_posix @@ -19,22 +19,12 @@ #ifndef __SYS_IOCTL_H #define __SYS_IOCTL_H -#include <sys/termios.h> - #include <sys/cdefs.h> __BEGIN_DECLS #include <kos/fs.h> -#ifndef TCGETS -#define TCGETS 0x5401 -#endif - -#ifndef TIOCGETA -#define TIOCGETA TCGETS -#endif - /* Define ioctl as an alias for fs_ioctl */ #define ioctl fs_ioctl diff --git a/include/sys/termios.h b/include/sys/termios.h deleted file mode 100644 index 8a03a459..00000000 --- a/include/sys/termios.h +++ /dev/null @@ -1,48 +0,0 @@ -/* KallistiOS ##version## - - sys/termios.h - Copyright (C) 2024 Andress Barajas - -*/ - -/** \file sys/termios.h - \brief Header for terminal I/O control. - \ingroup vfs_posix - - This file contains definitions for terminal I/O control operations, as specified by - the POSIX standard. The termios structure and associated constants and functions - are used to configure and control asynchronous communications ports. - - \author Andress Barajas -*/ - -#ifndef __SYS_TERMIOS_H -#define __SYS_TERMIOS_H - -#include <sys/cdefs.h> - -__BEGIN_DECLS - -#include <stdint.h> - -#define NCCS 32 - -typedef uint32_t tcflag_t; -typedef uint8_t cc_t; -typedef uint32_t speed_t; - -struct termios { - tcflag_t c_iflag; /* input modes */ - tcflag_t c_oflag; /* output modes */ - tcflag_t c_cflag; /* control modes */ - tcflag_t c_lflag; /* local modes */ - cc_t c_cc[NCCS]; /* control chars */ - speed_t c_ispeed; /* input speed */ - speed_t c_ospeed; /* output speed */ -}; - -int tcgetattr(int fd, struct termios *termios_p); - -__END_DECLS - -#endif /* __SYS_TERMIOS_H */ diff --git a/kernel/arch/dreamcast/hardware/pvr/pvr_prim.c b/kernel/arch/dreamcast/hardware/pvr/pvr_prim.c index 2558b1e8..73d6e38a 100644 --- a/kernel/arch/dreamcast/hardware/pvr/pvr_prim.c +++ b/kernel/arch/dreamcast/hardware/pvr/pvr_prim.c @@ -7,6 +7,7 @@ #include <assert.h> #include <string.h> +#include <arch/cache.h> #include <dc/pvr.h> #include "pvr_internal.h" @@ -21,7 +22,7 @@ /* Compile a polygon context into a polygon header */ void pvr_poly_compile(pvr_poly_hdr_t *dst, const pvr_poly_cxt_t *src) { - uint32_t txr_base; + uint32_t txr_base, cmd; /* Temporary variables we can read-write-modify, since we cannot do so from within the SQs, and we want to be able to compile this header from a PVR DR API submission target. */ @@ -31,7 +32,7 @@ void pvr_poly_compile(pvr_poly_hdr_t *dst, const pvr_poly_cxt_t *src) { into place, and OR it into the final result. */ /* The base values for CMD */ - dst->cmd = PVR_CMD_POLYHDR + cmd = PVR_CMD_POLYHDR | FIELD_PREP(PVR_TA_CMD_TXRENABLE, src->txr.enable) | FIELD_PREP(PVR_TA_CMD_TYPE, src->list_type) | FIELD_PREP(PVR_TA_CMD_CLRFMT, src->fmt.color) @@ -42,6 +43,10 @@ void pvr_poly_compile(pvr_poly_hdr_t *dst, const pvr_poly_cxt_t *src) { | FIELD_PREP(PVR_TA_CMD_MODIFIERMODE, src->gen.modifier_mode) | FIELD_PREP(PVR_TA_CMD_SPECULAR, src->gen.specular); + /* pvr_poly_hdr_t is cacheline-aligned and we're writing all 32 bytes: + * we can allocate a dirty cache line */ + dcache_alloc_block(dst, cmd); + /* Polygon mode 1 */ dst->mode1 = FIELD_PREP(PVR_TA_PM1_DEPTHCMP, src->depth.comparison) | FIELD_PREP(PVR_TA_PM1_CULLING, src->gen.culling) @@ -268,19 +273,23 @@ void pvr_sprite_cxt_txr(pvr_sprite_cxt_t *dst, pvr_list_t list, } void pvr_sprite_compile(pvr_sprite_hdr_t *dst, const pvr_sprite_cxt_t *src) { - uint32_t txr_base, mode2, mode3; + uint32_t txr_base, cmd, mode2, mode3; /* Basically we just take each parameter, clip it, shift it into place, and OR it into the final result. */ /* The base values for CMD */ - dst->cmd = PVR_CMD_SPRITE + cmd = PVR_CMD_SPRITE | FIELD_PREP(PVR_TA_CMD_TXRENABLE, src->txr.enable) | FIELD_PREP(PVR_TA_CMD_TYPE, src->list_type) | FIELD_PREP(PVR_TA_CMD_UVFMT, PVR_UVFMT_16BIT) | FIELD_PREP(PVR_TA_CMD_USERCLIP, src->gen.clip_mode) | FIELD_PREP(PVR_TA_CMD_SPECULAR, src->gen.specular); + /* pvr_sprite_hdr_t is cacheline-aligned and we're writing all 32 bytes: + * we can allocate a dirty cache line */ + dcache_alloc_block(dst, cmd); + /* Polygon mode 1 */ dst->mode1 = FIELD_PREP(PVR_TA_PM1_DEPTHCMP, src->depth.comparison) | FIELD_PREP(PVR_TA_PM1_CULLING, src->gen.culling) @@ -333,8 +342,15 @@ void pvr_sprite_compile(pvr_sprite_hdr_t *dst, const pvr_sprite_cxt_t *src) { void pvr_mod_compile(pvr_mod_hdr_t *dst, pvr_list_t list, uint32 mode, uint32 cull) { - dst->cmd = PVR_CMD_MODIFIER + uint32_t cmd; + + cmd = PVR_CMD_MODIFIER | FIELD_PREP(PVR_TA_CMD_TYPE, list); + + /* pvr_mod_hdr_t is cacheline-aligned and we're writing all 32 bytes: + * we can allocate a dirty cache line */ + dcache_alloc_block(dst, cmd); + dst->mode1 = FIELD_PREP(PVR_TA_PM1_MODIFIERINST, mode) | FIELD_PREP(PVR_TA_PM1_CULLING, cull); @@ -344,14 +360,14 @@ void pvr_mod_compile(pvr_mod_hdr_t *dst, pvr_list_t list, uint32 mode, /* Compile a polygon context into a polygon header that is affected by modifier volumes */ void pvr_poly_mod_compile(pvr_poly_mod_hdr_t *dst, const pvr_poly_cxt_t *src) { - uint32_t txr_base; + uint32_t txr_base, cmd; uint32_t mode2, mode3; /* Basically we just take each parameter, clip it, shift it into place, and OR it into the final result. */ /* The base values for CMD */ - dst->cmd = PVR_CMD_POLYHDR + cmd = PVR_CMD_POLYHDR | FIELD_PREP(PVR_TA_CMD_TXRENABLE, src->txr.enable) | FIELD_PREP(PVR_TA_CMD_TYPE, src->list_type) | FIELD_PREP(PVR_TA_CMD_CLRFMT, src->fmt.color) @@ -362,6 +378,10 @@ void pvr_poly_mod_compile(pvr_poly_mod_hdr_t *dst, const pvr_poly_cxt_t *src) { | FIELD_PREP(PVR_TA_CMD_MODIFIERMODE, src->gen.modifier_mode) | FIELD_PREP(PVR_TA_CMD_SPECULAR, src->gen.specular); + /* pvr_poly_mod_hdr_t is cacheline-aligned and we're writing all 32 bytes: + * we can allocate a dirty cache line */ + dcache_alloc_block(dst, cmd); + /* Polygon mode 1 */ dst->mode1 = FIELD_PREP(PVR_TA_PM1_DEPTHCMP, src->depth.comparison) | FIELD_PREP(PVR_TA_PM1_CULLING, src->gen.culling) diff --git a/kernel/fs/fs_pty.c b/kernel/fs/fs_pty.c index 6bb80e1b..50349477 100644 --- a/kernel/fs/fs_pty.c +++ b/kernel/fs/fs_pty.c @@ -62,8 +62,6 @@ typedef struct ptyhalf { mutex_t mutex; condvar_t ready_read, ready_write; - - struct termios termios; } ptyhalf_t; /* Our global pty list */ @@ -155,10 +153,6 @@ int fs_pty_create(char *buffer, int maxbuflen, file_t *master_out, file_t *slave /* Reset their refcnts (these will get increased in a minute) */ master->refcnt = slave->refcnt = 0; - /* Initialize the termios structures with default values */ - memset(&master->termios, 0, sizeof(struct termios)); - memset(&slave->termios, 0, sizeof(struct termios)); - /* Allocate a mutex for each for multiple readers or writers */ mutex_init(&master->mutex, MUTEX_TYPE_NORMAL); cond_init(&master->ready_read); @@ -679,33 +673,6 @@ static dirent_t * pty_readdir(void * h) { return &dl->dirent; } -static int pty_ioctl(void *h, int cmd, va_list ap) { - pipefd_t *fd = (pipefd_t *)h; - ptyhalf_t *ph = fd->d.p; - void *arg = va_arg(ap, void*); - - if (!fd || fd->type != PF_PTY) { - errno = EBADF; - return -1; - } - - switch (cmd) { - case TIOCGETA: - if(arg == NULL) { - errno = EINVAL; - return -1; - } - memcpy(arg, &ph->termios, sizeof(struct termios)); - return 0; - - /* Add other ioctl cases here */ - - default: - errno = ENOTTY; - return -1; - } -} - static int pty_stat(vfs_handler_t *vfs, const char *path, struct stat *st, int flag) { ptyhalf_t *ph; @@ -859,7 +826,7 @@ static vfs_handler_t vh = { NULL, pty_total, pty_readdir, - pty_ioctl, + NULL, NULL, NULL, NULL, diff --git a/kernel/libc/c11/Makefile b/kernel/libc/c11/Makefile index 2c42f70c..4b955a73 100644 --- a/kernel/libc/c11/Makefile +++ b/kernel/libc/c11/Makefile @@ -11,6 +11,6 @@ OBJS = call_once.o cnd_broadcast.o cnd_destroy.o cnd_init.o cnd_signal.o \ mtx_timedlock.o mtx_trylock.o mtx_unlock.o thrd_create.o thrd_current.o \ thrd_detach.o thrd_equal.o thrd_exit.o thrd_join.o thrd_sleep.o \ thrd_yield.o tss_create.o tss_delete.o tss_get.o tss_set.o \ - aligned_alloc.o timespec_get.o timegm.o atomics.o + timespec_get.o timegm.o atomics.o include $(KOS_BASE)/Makefile.prefab diff --git a/kernel/libc/c11/aligned_alloc.c b/kernel/libc/c11/aligned_alloc.c deleted file mode 100644 index d5ae9a8b..00000000 --- a/kernel/libc/c11/aligned_alloc.c +++ /dev/null @@ -1,18 +0,0 @@ -/* KallistiOS ##version## - - aligned_alloc.c - Copyright (C) 2015 Lawrence Sebald -*/ - -#include <malloc.h> - -/* Declare memalign, since it may not be available in strict standard-compliant - mode. */ -extern void *memalign(size_t alignment, size_t size); - -void *aligned_alloc(size_t alignment, size_t size) { - if(size % alignment) - return NULL; - - return memalign(alignment, size); -} diff --git a/kernel/libc/koslib/malloc.c b/kernel/libc/koslib/malloc.c index 8c302ab3..8e2e17ce 100644 --- a/kernel/libc/koslib/malloc.c +++ b/kernel/libc/koslib/malloc.c @@ -1037,6 +1037,7 @@ extern "C" { Overreliance on memalign is a sure way to fragment space. */ + __used #if __STD_C Void_t* public_mEMALIGn(size_t, size_t); #else diff --git a/kernel/libc/newlib/Makefile b/kernel/libc/newlib/Makefile index 5d4b2114..873cf773 100644 --- a/kernel/libc/newlib/Makefile +++ b/kernel/libc/newlib/Makefile @@ -19,6 +19,6 @@ OBJS = lock_common.o newlib_close.o newlib_env_lock.o newlib_environ.o \ newlib_lseek.o newlib_malloc.o newlib_open.o \ newlib_read.o newlib_sbrk.o newlib_stat.o newlib_times.o \ newlib_unlink.o newlib_wait.o newlib_write.o newlib_fcntl.o \ - newlib_tcgetattr.o verify_newlib.o + verify_newlib.o include $(KOS_BASE)/Makefile.prefab diff --git a/kernel/libc/newlib/newlib_isatty.c b/kernel/libc/newlib/newlib_isatty.c index bc6c0dea..05d37a88 100644 --- a/kernel/libc/newlib/newlib_isatty.c +++ b/kernel/libc/newlib/newlib_isatty.c @@ -8,13 +8,14 @@ */ #include <unistd.h> +#include <string.h> #include <errno.h> #include <sys/reent.h> -#include <sys/termios.h> +#include <kos/fs.h> int isatty(int fd) { - struct termios term; + vfs_handler_t *vh; if(fd < 0) { errno = EBADF; @@ -26,7 +27,18 @@ int isatty(int fd) { if(fd == STDIN_FILENO) return 1; - return tcgetattr(fd, &term) == 0; + vh = fs_get_handler(fd); + + if(vh == NULL) + return 0; + + /* pty is the only tty we support */ + if(!strcmp(vh->nmmgr.pathname,"/pty")) + return 1; + else { + errno = ENOTTY; + return 0; + } } int _isatty_r(struct _reent *reent, int fd) { diff --git a/kernel/libc/newlib/newlib_malloc.c b/kernel/libc/newlib/newlib_malloc.c index ec16315b..05b32c5b 100644 --- a/kernel/libc/newlib/newlib_malloc.c +++ b/kernel/libc/newlib/newlib_malloc.c @@ -8,6 +8,8 @@ #include <stdlib.h> #include <reent.h> +void *memalign(size_t alignment, size_t size); + // We have to provide these for Newlib's reent pieces. __used void _free_r(struct _reent *re, void *ptr) { @@ -29,3 +31,8 @@ __used void *_realloc_r(struct _reent *re, void *ptr, size_t size) { (void)re; return realloc(ptr, size); } + +__used void *_memalign_r(struct _reent *re, size_t align, size_t nbytes) { + (void)re; + return memalign(align, nbytes); +} diff --git a/kernel/libc/newlib/newlib_tcgetattr.c b/kernel/libc/newlib/newlib_tcgetattr.c deleted file mode 100644 index 865e8750..00000000 --- a/kernel/libc/newlib/newlib_tcgetattr.c +++ /dev/null @@ -1,12 +0,0 @@ -/* KallistiOS ##version## - - newlib_tcgetattr.c - Copyright (C) 2024 Andress Barajas - -*/ - -#include <sys/ioctl.h> - -int tcgetattr(int fd, struct termios *termios_p) { - return ioctl(fd, TIOCGETA, termios_p); -} diff --git a/utils/dc-chain/README.md b/utils/dc-chain/README.md index 1e802874..4d272961 100644 --- a/utils/dc-chain/README.md +++ b/utils/dc-chain/README.md @@ -104,13 +104,13 @@ The following toolchain profiles are available for users to select in | 11.5.0 | 11.5.0 | 4.3.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 11 series, released 2024-07-19<br />GCC 11 series support ended upstream | | 12.3.0 | 12.3.0 | 4.3.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 12 series, released 2023-05-08 | | **stable** | **13.2.0** | **4.3.0** | **2.43** | **8.5.0** | **2.43** | **Tested stable; based on GCC 13.2.0, released 2023-07-27** | -| 13.3.0 | 13.3.0 | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 13 series, released 2024-05-21 | -| 14.2.0 | 14.2.0 | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Latest release in the GCC 14 series, released 2024-08-01 | -| 13.3.1-dev | 13.3.1 (git) | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Bleeding edge GCC 13 series from git | -| 14.2.1-dev | 14.2.1 (git) | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Bleeding edge GCC 14 series from git | -| 15.0.0-dev | 15.0.0 (git) | 4.4.0 | 2.43 | 8.5.0 | 2.43 | Bleeding edge GCC 15 series from git | -| gccrs-dev | 14.x | 4.4.0 | 2.43 | 8.5.0 | 2.43 | GCC fork for development of the GCCRS Rust compiler | -| rustc-dev | 14.x | 4.4.0 | 2.43 | 8.5.0 | 2.43 | GCC fork for development of the libgccjit rustc GCC codegen | +| 13.3.0 | 13.3.0 | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | Latest release in the GCC 13 series, released 2024-05-21 | +| 14.2.0 | 14.2.0 | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | Latest release in the GCC 14 series, released 2024-08-01 | +| 13.3.1-dev | 13.3.1 (git) | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | Bleeding edge GCC 13 series from git | +| 14.2.1-dev | 14.2.1 (git) | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | Bleeding edge GCC 14 series from git | +| 15.0.0-dev | 15.0.0 (git) | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | Bleeding edge GCC 15 series from git | +| gccrs-dev | 14.x | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | GCC fork for development of the GCCRS Rust compiler | +| rustc-dev | 14.x | 4.5.0 | 2.43.1 | 8.5.0 | 2.43.1 | GCC fork for development of the libgccjit rustc GCC codegen | The **stable** profile is the primary, widely tested target for KallistiOS, and is the most recent toolchain profile known to work with all example programs. diff --git a/utils/dc-chain/patches/gcc-15.0.0-kos.diff b/utils/dc-chain/patches/gcc-15.0.0-kos.diff index b937ea5d..ad7060cf 100644 --- a/utils/dc-chain/patches/gcc-15.0.0-kos.diff +++ b/utils/dc-chain/patches/gcc-15.0.0-kos.diff @@ -16,7 +16,7 @@ diff -ruN gcc-15.0.0/gcc/config/sh/sh-c.cc gcc-15.0.0-kos/gcc/config/sh/sh-c.cc diff -ruN gcc-15.0.0/gcc/configure gcc-15.0.0-kos/gcc/configure --- gcc-15.0.0/gcc/configure 2024-01-04 16:01:33.801051764 -0600 +++ gcc-15.0.0-kos/gcc/configure 2024-01-04 16:01:42.913094480 -0600 -@@ -13051,7 +13051,7 @@ +@@ -13122,7 +13122,7 @@ target_thread_file='single' ;; aix | dce | lynx | mipssde | posix | rtems | \ @@ -40,7 +40,7 @@ diff -ruN gcc-15.0.0/libgcc/config/sh/t-sh gcc-15.0.0-kos/libgcc/config/sh/t-sh diff -ruN gcc-15.0.0/libgcc/configure gcc-15.0.0-kos/libgcc/configure --- gcc-15.0.0/libgcc/configure 2024-01-04 16:01:37.139067412 -0600 +++ gcc-15.0.0-kos/libgcc/configure 2024-01-04 16:01:42.914094485 -0600 -@@ -5731,6 +5731,7 @@ +@@ -5733,6 +5733,7 @@ tpf) thread_header=config/s390/gthr-tpf.h ;; vxworks) thread_header=config/gthr-vxworks.h ;; win32) thread_header=config/i386/gthr-win32.h ;; diff --git a/utils/dc-chain/patches/gcc-rustc-kos.diff b/utils/dc-chain/patches/gcc-rustc-kos.diff index e3ad59c2..2d239353 100644 --- a/utils/dc-chain/patches/gcc-rustc-kos.diff +++ b/utils/dc-chain/patches/gcc-rustc-kos.diff @@ -16,7 +16,7 @@ diff --color -ruN gcc-rustc/gcc/config/sh/sh-c.cc gcc-rustc-kos/gcc/config/sh/sh diff --color -ruN gcc-rustc/gcc/configure gcc-rustc-kos/gcc/configure --- gcc-rustc/gcc/configure 2024-02-02 23:52:38.301387207 -0600 +++ gcc-rustc-kos/gcc/configure 2024-02-02 23:52:57.786480571 -0600 -@@ -13217,7 +13217,7 @@ +@@ -13108,7 +13108,7 @@ target_thread_file='single' ;; aix | dce | lynx | mipssde | posix | rtems | \ @@ -40,7 +40,7 @@ diff --color -ruN gcc-rustc/libgcc/config/sh/t-sh gcc-rustc-kos/libgcc/config/sh diff --color -ruN gcc-rustc/libgcc/configure gcc-rustc-kos/libgcc/configure --- gcc-rustc/libgcc/configure 2024-02-02 23:52:41.146400839 -0600 +++ gcc-rustc-kos/libgcc/configure 2024-02-02 23:52:57.787480576 -0600 -@@ -5763,6 +5763,7 @@ +@@ -5732,6 +5732,7 @@ ...<truncated>... hooks/post-receive -- A pseudo Operating System for the Dreamcast. |