From 3d10b04f1ed9bf53c282081c88165951e8c32cec Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 29 Dec 2023 21:31:27 -0700 Subject: [PATCH] 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, --- libgloss/glue.h | 2 ++ libgloss/putnum.c | 2 ++ libgloss/read.c | 5 +++-- libgloss/sbrk.c | 5 ++--- libgloss/unlink.c | 2 +- libgloss/write.c | 5 +++-- 6 files changed, 13 insertions(+), 8 deletions(-) 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 #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') {