aboutsummaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorPietro Monteiro <pietro@sociotechnical.xyz>2024-06-24 19:08:38 -0400
committerCorinna Vinschen <corinna@vinschen.de>2024-06-28 11:25:51 +0200
commit36e398b04e91668403bac94b4c28f4822997b535 (patch)
treee987ecfb9b214bd2a2f813d16974dc53f0b63a7e /newlib
parentc2091f706c1d6aa9d187d116885de5e8defaa695 (diff)
downloadnewlib-36e398b04e91668403bac94b4c28f4822997b535.zip
newlib-36e398b04e91668403bac94b4c28f4822997b535.tar.gz
newlib-36e398b04e91668403bac94b4c28f4822997b535.tar.bz2
libc: sh: add missing prototypes and change functions from K&R to ANSI
The SuperH target doesn't build on GCC 14.1 because of missing function prototypes or because some function declarations use the deprecated K&R style. This patch adds missing prototypes on the files the functions are used and convert K&R declarations to ANSI-style. Signed-off-by: Pietro Monteiro <pietro@sociotechnical.xyz>
Diffstat (limited to 'newlib')
-rw-r--r--newlib/libc/sys/sh/creat.c7
-rw-r--r--newlib/libc/sys/sh/ftruncate.c2
-rw-r--r--newlib/libc/sys/sh/syscalls.c40
-rw-r--r--newlib/libc/sys/sh/truncate.c2
4 files changed, 33 insertions, 18 deletions
diff --git a/newlib/libc/sys/sh/creat.c b/newlib/libc/sys/sh/creat.c
index 62ec5ea..5cce6d0 100644
--- a/newlib/libc/sys/sh/creat.c
+++ b/newlib/libc/sys/sh/creat.c
@@ -1,7 +1,8 @@
+extern int
+_creat (const char *path, int mode);
+
int
-creat(path, mode)
- const char *path;
- int mode;
+creat (const char *path, int mode)
{
return _creat (path, mode);
}
diff --git a/newlib/libc/sys/sh/ftruncate.c b/newlib/libc/sys/sh/ftruncate.c
index 660377b..c358eb1 100644
--- a/newlib/libc/sys/sh/ftruncate.c
+++ b/newlib/libc/sys/sh/ftruncate.c
@@ -2,6 +2,8 @@
#include <sys/types.h>
#include "sys/syscall.h"
+extern int __trap34 (int function, ...);
+
int
ftruncate (int file, off_t length)
{
diff --git a/newlib/libc/sys/sh/syscalls.c b/newlib/libc/sys/sh/syscalls.c
index 614b67e..3c41ece 100644
--- a/newlib/libc/sys/sh/syscalls.c
+++ b/newlib/libc/sys/sh/syscalls.c
@@ -3,11 +3,19 @@
#include <sys/stat.h>
#include <sys/time.h>
#include "sys/syscall.h"
-int errno;
+#include <errno.h>
+#undef errno
+extern int errno;
+
+void abort (void) __attribute__((__noreturn__));
+
+extern int __trap34 (int function, ...);
/* This is used by _sbrk. */
register char *stack_ptr asm ("r15");
+extern int main (int, char**);
+
int
_read (int file,
char *ptr,
@@ -93,34 +101,38 @@ _unlink ()
return -1;
}
-isatty (fd)
- int fd;
+int
+isatty (int fd)
{
return 1;
}
-_isatty (fd)
- int fd;
+int
+_isatty (int fd)
{
return 1;
}
-
-_exit (n)
+_ATTRIBUTE ((__noreturn__)) void
+_exit (int n)
{
- return __trap34 (SYS_exit, n, 0, 0);
+ __trap34 (SYS_exit, n, 0, 0);
}
-_kill (n, m)
+int
+_kill (int pid,
+ int sig)
{
return __trap34 (SYS_exit, 0xdead, 0, 0);
}
-_getpid (n)
+int
+_getpid ()
{
return 1;
}
+void
_raise ()
{
}
@@ -145,9 +157,8 @@ _chown (const char *path, short owner, short group)
}
int
-_utime (path, times)
- const char *path;
- char *times;
+_utime (const char *path,
+ char *times)
{
return __trap34 (SYS_utime, path, times);
}
@@ -159,8 +170,7 @@ _fork ()
}
int
-_wait (statusp)
- int *statusp;
+_wait (int *statusp)
{
return __trap34 (SYS_wait);
}
diff --git a/newlib/libc/sys/sh/truncate.c b/newlib/libc/sys/sh/truncate.c
index 5ca48d3..47a4c06 100644
--- a/newlib/libc/sys/sh/truncate.c
+++ b/newlib/libc/sys/sh/truncate.c
@@ -2,6 +2,8 @@
#include <sys/types.h>
#include "sys/syscall.h"
+extern int __trap34 (int function, ...);
+
int
truncate (const char *path, off_t length)
{