[PATCH] libc: sh: add missing prototypes and change functions from K&R to ANSI
"Pietro Monteiro" <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- newlib/libc/sys/sh/creat.c | 7 +++--- newlib/libc/sys/sh/ftruncate.c | 2 ++ newlib/libc/sys/sh/syscalls.c | 40 +++++++++++++++++++++------------- 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 62ec5ead8..5cce6d065 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 660377bf3..c358eb173 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 614b67e9e..3c41ecee9 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 5ca48d3c6..47a4c0675 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) { -- 2.39.2