Made pc86 work with the new libc.

This commit is contained in:
David Given 2018-06-23 12:59:40 +02:00
parent 680b4071b7
commit dbb2062d03
6 changed files with 14 additions and 78 deletions

View file

@ -13,7 +13,7 @@ vars.plats = {
"osx386",
"osxppc",
-- --"qemuppc",
-- "pc86",
"pc86",
-- "rpi",
-- "pdpv7",
-- "em22",
@ -23,7 +23,7 @@ vars.plats_with_tests = {
"linux386",
"linuxppc",
-- --"qemuppc",
-- "pc86",
"pc86",
}
local plat_packages = {}

View file

@ -9,7 +9,7 @@ local function addheader(h)
end
addheader("ack/plat.h")
addheader("unistd.h")
addheader("sys/types.h")
acklibrary {
name = "headers",

View file

@ -0,0 +1,9 @@
#ifndef _SYS_TYPES_H
#define _SYS_TYPES_H
typedef int pid_t;
typedef int mode_t;
typedef long time_t;
typedef long suseconds_t;
#endif

View file

@ -1,73 +0,0 @@
/*
* unistd.h - standard system calls
*/
/* $Id$ */
#ifndef _UNISTD_H
#define _UNISTD_H
#include <stddef.h>
/* Types */
typedef int pid_t;
typedef int mode_t;
/* Constants for file access (open and friends) */
enum
{
O_ACCMODE = 0x3,
O_RDONLY = 0,
O_WRONLY = 1,
O_RDWR = 2,
O_CREAT = 0100,
O_TRUNC = 01000,
O_APPEND = 02000,
O_NONBLOCK = 04000
};
/* Special variables */
extern char** environ;
/* Implemented system calls */
extern void _exit(int);
extern pid_t getpid(void);
extern int brk(void* addr);
extern void* sbrk(int increment);
extern int isatty(int d);
extern off_t lseek(int fildes, off_t offset, int whence);
extern int close(int d);
extern int open(const char* path, int access, ...);
extern int creat(const char* path, mode_t mode);
extern int read(int fd, void* buffer, size_t count);
extern int write(int fd, void* buffer, size_t count);
extern int unlink(const char* path);
/* Unimplemented system calls (these are just prototypes to let the library
* compile). */
extern int fcntl(int fd, int op, ...);
/* Signal handling */
typedef int sig_atomic_t;
#define SIG_ERR ((sighandler_t) -1) /* Error return. */
#define SIG_DFL ((sighandler_t) 0) /* Default action. */
#define SIG_IGN ((sighandler_t) 1) /* Ignore signal. */
#define SIGABRT 6 /* Abort (ANSI) */
#define SIGILL 11 /* Illegal instruction */
#define _NSIG 32 /* Biggest signal number + 1
(not including real-time signals). */
typedef void (*sighandler_t)(int);
extern sighandler_t signal(int signum, sighandler_t handler);
extern int raise(int signum);
#endif

View file

@ -8,7 +8,7 @@
#include <unistd.h>
#include "libsys.h"
int read(int fd, void* buffer, size_t count)
ssize_t read(int fd, void* buffer, size_t count)
{
char i;

View file

@ -19,7 +19,7 @@ void _sys_write_tty(char c)
_sys_rawwrite('\r');
}
int write(int fd, void* buffer, size_t count)
ssize_t write(int fd, void* buffer, size_t count)
{
int i;
char* p = buffer;