Compare commits

..

4 Commits

Author SHA1 Message Date
Dave Murphy
3429d8162f bump devkitPPC version 2023-04-20 07:42:20 +01:00
Dave Murphy
a048d2e89c devkitPPC: newlib fixes 2023-04-20 07:40:43 +01:00
Dave Murphy
94cabdf12a devkitPPC: update version 2023-04-19 09:15:33 +01:00
Dave Murphy
6a2cfec336 devkitPPC: disable gcc libssp 2023-04-19 08:59:50 +01:00
2 changed files with 19 additions and 12 deletions

View File

@@ -6342,10 +6342,10 @@ index 000000000..d15eab89d
+
diff --git a/libgloss/libsysbase/dirent.c b/libgloss/libsysbase/dirent.c
new file mode 100644
index 000000000..bed699102
index 000000000..482d2f814
--- /dev/null
+++ b/libgloss/libsysbase/dirent.c
@@ -0,0 +1,255 @@
@@ -0,0 +1,257 @@
+#include <malloc.h>
+#include <errno.h>
+#include <string.h>
@@ -6465,6 +6465,7 @@ index 000000000..bed699102
+
+ dirp->position = 0; // 0th position means no file name has been returned yet
+ dirp->fileData.d_ino = -1;
+ dirp->fileData.d_type = DT_UNKNOWN;
+ dirp->fileData.d_name[0] = '\0';
+
+ return dirp;
@@ -6487,7 +6488,7 @@ index 000000000..bed699102
+
+struct dirent* readdir (DIR *dirp) {
+ struct stat st;
+ char filename[NAME_MAX];
+ char filename[NAME_MAX+1];
+ int res;
+ int olderrno = errno;
+
@@ -6510,7 +6511,7 @@ index 000000000..bed699102
+ // We've moved forward in the directory
+ dirp->position += 1;
+
+ if (strnlen(filename, NAME_MAX) >= sizeof(dirp->fileData.d_name)) {
+ if (strnlen(filename, sizeof(filename)) >= sizeof(dirp->fileData.d_name)) {
+ errno = EOVERFLOW;
+ return NULL;
+ }
@@ -6525,7 +6526,7 @@ index 000000000..bed699102
+
+int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) {
+ struct stat st;
+ char filename[NAME_MAX];
+ char filename[NAME_MAX+1];
+ int res;
+
+ if (!dirp) {
@@ -6548,13 +6549,14 @@ index 000000000..bed699102
+ // We've moved forward in the directory
+ dirp->position += 1;
+
+ if (strnlen(filename, NAME_MAX) >= sizeof(entry->d_name)) {
+ if (strnlen(filename, sizeof(filename)) >= sizeof(entry->d_name)) {
+ errno = EOVERFLOW;
+ return EOVERFLOW;
+ }
+
+ strncpy (entry->d_name, filename, sizeof(entry->d_name));
+ entry->d_ino = st.st_ino;
+ entry->d_type = IFTODT(st.st_mode);
+
+ *result = entry;
+ return 0;
@@ -6572,7 +6574,7 @@ index 000000000..bed699102
+
+
+void seekdir(DIR *dirp, long int loc) {
+ char filename[NAME_MAX];
+ char filename[NAME_MAX+1];
+
+ if (!dirp || loc < 0) {
+ return;
@@ -6930,7 +6932,7 @@ index 000000000..2bada9736
+}
diff --git a/libgloss/libsysbase/fpathconf.c b/libgloss/libsysbase/fpathconf.c
new file mode 100644
index 000000000..6911163ae
index 000000000..453f64870
--- /dev/null
+++ b/libgloss/libsysbase/fpathconf.c
@@ -0,0 +1,30 @@
@@ -6958,7 +6960,7 @@ index 000000000..6911163ae
+
+ if(devoptab_list[dev]->fpathconf_r) {
+ r->deviceData = devoptab_list[dev]->deviceData;
+ ret = devoptab_list[dev]->fpathconf_r(r, fd, name);
+ ret = devoptab_list[dev]->fpathconf_r(r, handle->fileStruct, name);
+ } else
+ r->_errno=ENOSYS;
+
@@ -8678,10 +8680,10 @@ index 000000000..b54714775
+}
diff --git a/libgloss/libsysbase/utime.c b/libgloss/libsysbase/utime.c
new file mode 100644
index 000000000..462e86520
index 000000000..14b459eef
--- /dev/null
+++ b/libgloss/libsysbase/utime.c
@@ -0,0 +1,41 @@
@@ -0,0 +1,45 @@
+#include "config.h"
+
+#include <errno.h>
@@ -8719,6 +8721,10 @@ index 000000000..462e86520
+ t[0].tv_usec = 0;
+ t[1].tv_sec = times->modtime;
+ t[1].tv_usec = 0;
+ } else if (gettimeofday(&t[0], NULL) != -1) {
+ t[1] = t[0];
+ } else {
+ return -1;
+ }
+
+ return utimes(filename, t);

View File

@@ -95,12 +95,13 @@ then
--enable-libstdcxx-filesystem-ts \
--disable-tm-clone-registry \
--disable-__cxa_atexit \
--disable-libssp \
--enable-cxx-flags='-ffunction-sections -fdata-sections' \
--target=$target \
--with-newlib \
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
--prefix=$prefix \
--with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 41" \
--with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 42.2" \
$CROSS_PARAMS \
$CROSS_GCC_PARAMS \
$EXTRA_GCC_PARAMS \