Skip to content

Commit

Permalink
newlib MMIX: Fix compilation warnings that recent gcc treats as errors
Browse files Browse the repository at this point in the history
Without this, when building with recent gcc, we'll see errors when
compiling for --target mmix the first being:
  CC       libc/sys/mmixware/libc_a-chmod.o
In file included from /x/newlib/libc/sys/mmixware/chmod.c:17:
/x/newlib/libc/sys/mmixware/chmod.c: In function 'chmod':
/x/newlib/libc/sys/mmixware/sys/syscall.h:139:6: error: implicit declaration \
of function 'sprintf' [-Wimplicit-function-declaration]
  139 |      sprintf (buf, "UNIMPLEMENTED %s in %s\n", __FUNCTION__,
 __FILE__); \

Other warnings also quelled.

	* libc/sys/mmixware/sys/syscall.h: Include stdio.h, string.h
	and unistd.h.
	* libc/sys/mmixware/_exit.c: Call __unreachable after simulator exit.
	* libc/sys/mmixware/chown.c (chown): Match declaration in unistd.h.
	* libc/sys/mmixware/getpid.c (_getpid): Ditto.
	* libc/sys/mmixware/kill.c (_kill): Ditto.
	* libc/sys/mmixware/link.c (_link): Ditto.
	* libc/sys/mmixware/read.c (_read): Ditto.
	* libc/sys/mmixware/sbrk.c (_sbrk): Ditto.
	* libc/sys/mmixware/unlink.c (_unlink): Ditto.
	* libc/sys/mmixware/write.c (_write): Ditto.
  • Loading branch information
hpataxisdotcom authored and Hans-Peter Nilsson committed Dec 29, 2023
1 parent 1a17761 commit ddb6149
Show file tree
Hide file tree
Showing 10 changed files with 30 additions and 21 deletions.
3 changes: 2 additions & 1 deletion newlib/libc/sys/mmixware/_exit.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* _exit for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -27,4 +27,5 @@ void _exit (int n)
: /* No outputs. */
: "r" (n)
: "memory");
__unreachable ();
}
4 changes: 2 additions & 2 deletions newlib/libc/sys/mmixware/chown.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* chown stub for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -18,7 +18,7 @@
#include <errno.h>

int
chown (const char *path, short owner, short group)
chown (const char *path, uid_t owner, gid_t group)
{
UNIMPLEMENTED (("path: %s, owner: %d, group: %d", path, owner, group));
errno = ENOSYS;
Expand Down
5 changes: 3 additions & 2 deletions newlib/libc/sys/mmixware/getpid.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* getpid stub for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -16,7 +16,8 @@
#include <sys/stat.h>
#include "sys/syscall.h"

_getpid (n)
pid_t
_getpid (void)
{
return 1;
}
5 changes: 3 additions & 2 deletions newlib/libc/sys/mmixware/kill.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* kill for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -17,7 +17,8 @@
#include "sys/syscall.h"
#include <errno.h>

_kill (n, m)
int
_kill (pid_t n, int m __unused)
{
if (n == 1)
return TRAP1i (SYS_halt, 0);
Expand Down
4 changes: 2 additions & 2 deletions newlib/libc/sys/mmixware/link.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* link stub for MMIXware.
Copyright (C) 2002 Hans-Peter Nilsson
Copyright (C) 2002, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -18,7 +18,7 @@
#include <errno.h>

int
_link ()
_link (const char *p1 __unused, const char *p2 __unused)
{
errno = EMLINK;
return -1;
Expand Down
4 changes: 2 additions & 2 deletions newlib/libc/sys/mmixware/read.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* read for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -19,7 +19,7 @@

int
_read (int file,
char *ptr,
void *ptr,
size_t len)
{
long ret;
Expand Down
10 changes: 5 additions & 5 deletions newlib/libc/sys/mmixware/sbrk.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* sbrk for MMIXware.
Copyright (C) 2001, 2012 Hans-Peter Nilsson
Copyright (C) 2001, 2012, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand Down Expand Up @@ -31,10 +31,10 @@ __asm__ (" .global _Sbrk_high\n"
"_Sbrk_high IS Pool_Segment\n"
"Pool_Segment IS 0x40<<56");

caddr_t
_sbrk (size_t incr)
void *
_sbrk (ptrdiff_t incr)
{
char *prev_heap_end;
void *prev_heap_end;

prev_heap_end = _Sbrk_high;

Expand All @@ -55,5 +55,5 @@ _sbrk (size_t incr)
}

_Sbrk_high += incr;
return (caddr_t) prev_heap_end;
return prev_heap_end;
}
8 changes: 7 additions & 1 deletion newlib/libc/sys/mmixware/sys/syscall.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* syscall defines for MMIXware.
Copyright (C) 2001, 2002, 2007 Hans-Peter Nilsson
Copyright (C) 2001, 2002, 2007, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -11,6 +11,12 @@
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. */

/* The standard-library calls in UNIMPLEMENTED, defined below, need to
be declared. Don't push the #include requirements to the caller. */
#include <stdio.h>
#include <string.h>
#include <unistd.h>

/* These are the mmixware simulator calls that are of use in newlib. */

#define SYS_halt 0
Expand Down
4 changes: 2 additions & 2 deletions newlib/libc/sys/mmixware/unlink.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* unlink stub for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -17,7 +17,7 @@
#include "sys/syscall.h"

int
_unlink ()
_unlink (const char *p __unused)
{
return -1;
}
4 changes: 2 additions & 2 deletions newlib/libc/sys/mmixware/write.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* write for MMIXware.
Copyright (C) 2001 Hans-Peter Nilsson
Copyright (C) 2001, 2023 Hans-Peter Nilsson
Permission to use, copy, modify, and distribute this software is
freely granted, provided that the above copyright notice, this notice
Expand All @@ -19,7 +19,7 @@

int
_write ( int file,
char *ptr,
const void *ptr,
size_t len)
{
long ret;
Expand Down

0 comments on commit ddb6149

Please sign in to comment.