diff options
author | Pietro Monteiro <pietro@sociotechnical.xyz> | 2024-06-24 19:08:38 -0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2024-06-28 11:25:51 +0200 |
commit | 36e398b04e91668403bac94b4c28f4822997b535 (patch) | |
tree | e987ecfb9b214bd2a2f813d16974dc53f0b63a7e | |
parent | c2091f706c1d6aa9d187d116885de5e8defaa695 (diff) | |
download | newlib-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>
-rw-r--r-- | newlib/libc/sys/sh/creat.c | 7 | ||||
-rw-r--r-- | newlib/libc/sys/sh/ftruncate.c | 2 | ||||
-rw-r--r-- | newlib/libc/sys/sh/syscalls.c | 40 | ||||
-rw-r--r-- | newlib/libc/sys/sh/truncate.c | 2 |
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) { |