Fix various c99/gcc-14 issues in generic libgloss code

Message ID b82d97c6-f195-4902-a071-6efbfde1d12d@gmail.com
State New
Headers
Series Fix various c99/gcc-14 issues in generic libgloss code |

Commit Message

Jeff Law Dec. 30, 2023, 4:32 a.m. UTC
  Similar to what's been done in the ports, but this time in generic code.

Add missing #includes to pick up prototypes.  Add prototypes for various 
internal functions where needed.  Fix signatures of various functions to 
match what's provided by the headers (read, sbrk, write, unlink).

Nearly done with this effort ;-)

Pushed to the trunk,
Jeff
commit 3d10b04f1ed9bf53c282081c88165951e8c32cec
Author: Jeff Law <jeffreyalaw@gmail.com>
Date:   Fri Dec 29 21:31:27 2023 -0700

    Fix various c99/gcc-14 issues in generic libgloss code
    
    Similar to what's been done in the ports, but this time in generic code.
    
    Add missing #includes to pick up prototypes.  Add prototypes for various
    internal functions where needed.  Fix signatures of various functions to match
    what's provided by the headers (read, sbrk, write, unlink).
    
    Nearly done with this effort ;-)
    
    Pushed to the trunk,
  

Patch

diff --git a/libgloss/glue.h b/libgloss/glue.h
index 0a7e36db2..98c0a6ad2 100644
--- a/libgloss/glue.h
+++ b/libgloss/glue.h
@@ -13,6 +13,7 @@ 
  * they apply.
  */
 #include <_ansi.h>
+#include <unistd.h>
 
 #ifndef NULL
 #  define NULL 0
@@ -28,4 +29,5 @@  extern char _end[];                /* _end is set in the linker command file */
 /* only one prcess support, as this is OS dependant */
 #define __MYPID 1
 
+int outbyte (char);
 
diff --git a/libgloss/putnum.c b/libgloss/putnum.c
index c368c4136..6e1051e24 100644
--- a/libgloss/putnum.c
+++ b/libgloss/putnum.c
@@ -14,6 +14,8 @@ 
  */
 #include "glue.h"
 
+extern void print (char *ptr);
+
 /*
  * putnum -- print a 32 bit number in hex
  */
diff --git a/libgloss/read.c b/libgloss/read.c
index 24108ce0d..83a3b549b 100644
--- a/libgloss/read.c
+++ b/libgloss/read.c
@@ -22,10 +22,11 @@  extern char inbyte (void);
  */
 int
 read (int fd,
-       char *buf,
-       int nbytes)
+       void *buf_,
+       size_t nbytes)
 {
   int i = 0;
+  char *buf = buf_;
 
   for (i = 0; i < nbytes; i++) {
     *(buf + i) = inbyte();
diff --git a/libgloss/sbrk.c b/libgloss/sbrk.c
index c222b4bbf..d567a4a60 100644
--- a/libgloss/sbrk.c
+++ b/libgloss/sbrk.c
@@ -27,9 +27,8 @@  char *heap_ptr;
  *         RAM. We just increment a pointer in what's
  *         left of memory on the board.
  */
-char *
-sbrk (nbytes)
-     int nbytes;
+void *
+sbrk (ptrdiff_t nbytes)
 {
   char        *base;
 
diff --git a/libgloss/unlink.c b/libgloss/unlink.c
index 76c1a4fef..af06c51d7 100644
--- a/libgloss/unlink.c
+++ b/libgloss/unlink.c
@@ -20,7 +20,7 @@ 
  *           we just return an error.
  */
 int
-unlink (char * path)
+unlink (const char * path)
 {
   errno = EIO;
   return (-1);
diff --git a/libgloss/write.c b/libgloss/write.c
index 28b7ea37a..80bcd4a77 100644
--- a/libgloss/write.c
+++ b/libgloss/write.c
@@ -23,10 +23,11 @@  extern int  outbyte (char x);
  */
 int
 write (int fd,
-       char *buf,
-       int nbytes)
+       const void *buf_,
+       size_t nbytes)
 {
   int i;
+  const char *buf = buf_;
 
   for (i = 0; i < nbytes; i++) {
     if (*(buf + i) == '\n') {