public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] libc: sh: Add missing declarations
@ 2024-05-16  8:49 Chris Packham
  0 siblings, 0 replies; only message in thread
From: Chris Packham @ 2024-05-16  8:49 UTC (permalink / raw)
  To: newlib; +Cc: Chris Packham

Add declarations and return types to resolve the following build issues.

  newlib/libc/sys/sh/creat.c: In function 'creat':
  newlib/libc/sys/sh/creat.c:6:10: error: implicit declaration of function '_creat'; did you mean 'creat'? [-Wimplicit-function-declaration]

  newlib/libc/sys/sh/syscalls.c: In function '_read':
  newlib/libc/sys/sh/syscalls.c:16:10: error: implicit declaration of function '__trap34' [-Wimplicit-function-declaration]

  newlib/libc/sys/sh/syscalls.c: In function '_sbrk':
  newlib/libc/sys/sh/syscalls.c:62:7: error: implicit declaration of function 'abort' [-Wimplicit-function-declaration]

  newlib/libc/sys/sh/syscalls.c: At top level:
  newlib/libc/sys/sh/syscalls.c:96:1: error: return type defaults to 'int' [-Wimplicit-int]
       96 | isatty (fd)
          | ^~~~~~

  newlib/libc/sys/sh/syscalls.c: In function '_kill':
  newlib/libc/sys/sh/syscalls.c:114:1: error: type of 'n' defaults to 'int' [-Wimplicit-int]

  newlib/libc/sys/sh/syscalls.c: In function '__setup_argv_for_main':
  newlib/libc/sys/sh/syscalls.c:216:10: error: implicit declaration of function 'main' [-Wimplicit-function-declaration]
      216 |   return main (argc, argv);
          |          ^~~~

  newlib/libc/sys/sh/ftruncate.c: In function 'ftruncate':
  newlib/libc/sys/sh/ftruncate.c:8:10: error: implicit declaration of function '__trap34' [-Wimplicit-function-declaration]

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
 newlib/libc/sys/sh/creat.c     |  2 ++
 newlib/libc/sys/sh/ftruncate.c |  2 ++
 newlib/libc/sys/sh/syscalls.c  | 16 +++++++++++++---
 newlib/libc/sys/sh/truncate.c  |  2 ++
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/newlib/libc/sys/sh/creat.c b/newlib/libc/sys/sh/creat.c
index 62ec5ead8..b9f614e9e 100644
--- a/newlib/libc/sys/sh/creat.c
+++ b/newlib/libc/sys/sh/creat.c
@@ -1,3 +1,5 @@
+extern int _creat (const char *path, int mode);
+
 int
 creat(path, mode)
      const char *path;
diff --git a/newlib/libc/sys/sh/ftruncate.c b/newlib/libc/sys/sh/ftruncate.c
index 660377bf3..9f4d514a3 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 func_no, ...);
+
 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..879dfea92 100644
--- a/newlib/libc/sys/sh/syscalls.c
+++ b/newlib/libc/sys/sh/syscalls.c
@@ -5,6 +5,10 @@
 #include "sys/syscall.h"
 int errno;
 
+extern void abort (void);
+extern int  __trap34(int func_no, ...);
+extern int main (int, char **);
+
 /* This is used by _sbrk.  */
 register char *stack_ptr asm ("r15");
 
@@ -93,12 +97,14 @@ _unlink ()
   return -1;
 }
 
+int
 isatty (fd)
      int fd;
 {
   return 1;
 }
 
+int
 _isatty (fd)
      int fd;
 {
@@ -106,21 +112,25 @@ _isatty (fd)
 }
 
 
-_exit (n)
+int
+_exit (int n)
 {
   return __trap34 (SYS_exit, n, 0, 0);
 }
 
-_kill (n, m)
+int
+_kill (int n, int m)
 {
   return __trap34 (SYS_exit, 0xdead, 0, 0);
 }
 
-_getpid (n)
+int
+_getpid (int n)
 {
   return 1;
 }
 
+int
 _raise ()
 {
 }
diff --git a/newlib/libc/sys/sh/truncate.c b/newlib/libc/sys/sh/truncate.c
index 5ca48d3c6..2641c2cfb 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 func_no, ...);
+
 int
 truncate (const char *path, off_t length)
 {
-- 
2.43.2


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-05-16  8:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-16  8:49 [PATCH] libc: sh: Add missing declarations Chris Packham

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).