mescc: Support binutils-2.10.1.
xx
This commit is contained in:
parent
635dfd03a2
commit
eb939b11b8
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* Mes --- Maxwell Equations of Software
|
* Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of Mes.
|
* This file is part of Mes.
|
||||||
*
|
*
|
||||||
|
@ -29,9 +29,11 @@
|
||||||
|
|
||||||
#else // ! WITH_GLIBC
|
#else // ! WITH_GLIBC
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
int isdigit (int);
|
int isalpha (int c);
|
||||||
int isxdigit (int);
|
int isascii (int c);
|
||||||
int isspace (int);
|
int isdigit (int c);
|
||||||
|
int isxdigit (int c);
|
||||||
|
int isspace (int c);
|
||||||
#endif // ! WITH_GLIBC
|
#endif // ! WITH_GLIBC
|
||||||
|
|
||||||
#endif // __MES_CTYPE_H
|
#endif // __MES_CTYPE_H
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* -*-comment-start: "//";comment-end:""-*-
|
/* -*-comment-start: "//";comment-end:""-*-
|
||||||
* Mes --- Maxwell Equations of Software
|
* Mes --- Maxwell Equations of Software
|
||||||
* Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
*
|
*
|
||||||
* This file is part of Mes.
|
* This file is part of Mes.
|
||||||
*
|
*
|
||||||
|
@ -28,6 +28,7 @@
|
||||||
#include_next <limits.h>
|
#include_next <limits.h>
|
||||||
|
|
||||||
#else // ! WITH_GLIBC
|
#else // ! WITH_GLIBC
|
||||||
|
|
||||||
#define CHAR_BIT 8
|
#define CHAR_BIT 8
|
||||||
#define UCHAR_MAX 255
|
#define UCHAR_MAX 255
|
||||||
#define INT_MIN -2147483648
|
#define INT_MIN -2147483648
|
||||||
|
@ -35,7 +36,7 @@
|
||||||
#define MB_CUR_MAX 1
|
#define MB_CUR_MAX 1
|
||||||
#define LONG_MIN -2147483648
|
#define LONG_MIN -2147483648
|
||||||
#define LONG_MAX 2147483647
|
#define LONG_MAX 2147483647
|
||||||
#define LONG_MAX _POSIX_OPEN_MAX 16
|
#define _POSIX_OPEN_MAX 16
|
||||||
|
|
||||||
#endif // ! WITH_GLIBC
|
#endif // ! WITH_GLIBC
|
||||||
|
|
||||||
|
|
|
@ -63,13 +63,22 @@ typedef long long int64_t;
|
||||||
typedef unsigned long size_t;
|
typedef unsigned long size_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __MES_INTPTR_T
|
||||||
|
#define __MES_INTPTR_T
|
||||||
|
#undef intptr_t
|
||||||
|
typedef long intptr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
// FIXME
|
// FIXME
|
||||||
typedef int intmax_t;
|
typedef int intmax_t;
|
||||||
typedef unsigned uintmax_t;
|
typedef unsigned uintmax_t;
|
||||||
typedef int* intptr_t;
|
|
||||||
typedef unsigned* uintptr_t;
|
typedef unsigned* uintptr_t;
|
||||||
|
|
||||||
typedef unsigned ptrdiff_t;
|
#ifndef __MES_PTRDIFF_T
|
||||||
|
#define __MES_PTRDIFF_T
|
||||||
|
#undef ptrdiff_t
|
||||||
|
typedef long ptrdiff_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // ! WITH_GLIBC
|
#endif // ! WITH_GLIBC
|
||||||
|
|
||||||
|
|
|
@ -54,9 +54,17 @@ unsigned long long strtoull (char const *nptr, char **endptr, int base);
|
||||||
#define EXIT_FAILURE 1
|
#define EXIT_FAILURE 1
|
||||||
#define EXIT_SUCCESS 0
|
#define EXIT_SUCCESS 0
|
||||||
|
|
||||||
|
|
||||||
|
#if __MESC__
|
||||||
|
typedef int (*comparison_fn_t) (void const *, void const *);
|
||||||
|
#else
|
||||||
|
typedef void (*comparison_fn_t) ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void * bsearch (void const *key, void const *array, size_t count, size_t size, comparison_fn_t compare);
|
||||||
|
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
||||||
#endif // ! WITH_GLIBC
|
#endif // ! WITH_GLIBC
|
||||||
|
|
||||||
#endif // __MES_STDLIB_H
|
#endif // __MES_STDLIB_H
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,8 @@ struct tm {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct tm *localtime (time_t const *timep);
|
struct tm *localtime (time_t const *timep);
|
||||||
|
struct tm *gmtime (time_t const *time);
|
||||||
|
|
||||||
time_t time (time_t *tloc);
|
time_t time (time_t *tloc);
|
||||||
|
|
||||||
#ifndef __MES_STRUCT_TIMESPEC
|
#ifndef __MES_STRUCT_TIMESPEC
|
||||||
|
|
|
@ -33,6 +33,12 @@
|
||||||
#define NULL 0
|
#define NULL 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef STDIN_FILENO
|
||||||
|
#define STDIN_FILENO 0
|
||||||
|
#define STDOUT_FILENO 1
|
||||||
|
#define STDERR_FILENO 2
|
||||||
|
#endif // STDIN_FILENO
|
||||||
|
|
||||||
#ifndef __MES_OFF_T
|
#ifndef __MES_OFF_T
|
||||||
#define __MES_OFF_T
|
#define __MES_OFF_T
|
||||||
#undef off_t
|
#undef off_t
|
||||||
|
@ -51,6 +57,18 @@ typedef unsigned long size_t;
|
||||||
typedef long ssize_t;
|
typedef long ssize_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __MES_INTPTR_T
|
||||||
|
#define __MES_INTPTR_T
|
||||||
|
#undef intptr_t
|
||||||
|
typedef long intptr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __MES_PTRDIFF_T
|
||||||
|
#define __MES_PTRDIFF_T
|
||||||
|
#undef ptrdiff_t
|
||||||
|
typedef long ptrdiff_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef R_OK
|
#ifndef R_OK
|
||||||
#define F_OK 0
|
#define F_OK 0
|
||||||
#define X_OK 1
|
#define X_OK 1
|
||||||
|
@ -72,6 +90,12 @@ char *getcwd (char *buf, size_t size);
|
||||||
int isatty (int fd);
|
int isatty (int fd);
|
||||||
off_t lseek (int fd, off_t offset, int whence);
|
off_t lseek (int fd, off_t offset, int whence);
|
||||||
ssize_t read (int fd, void *buffer, size_t size);
|
ssize_t read (int fd, void *buffer, size_t size);
|
||||||
|
#if __SBRK_CHAR_PTRDIFF
|
||||||
|
/* xmalloc in binutils <= 2.10.1 uses this old prototype */
|
||||||
|
char * sbrk (ptrdiff_t delta);
|
||||||
|
#else
|
||||||
|
void * sbrk (intptr_t delta);
|
||||||
|
#endif
|
||||||
int unlink (char const *file_name);
|
int unlink (char const *file_name);
|
||||||
ssize_t write (int filedes, void const *buffer, size_t size);
|
ssize_t write (int filedes, void const *buffer, size_t size);
|
||||||
#endif // ! WITH_GLIBC
|
#endif // ! WITH_GLIBC
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
#include <libmes.h>
|
#include <libmes.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
abs (int x)
|
abs (int x)
|
||||||
|
@ -117,15 +118,6 @@ perror (char const *message)
|
||||||
fprintf (stderr, "%s: %s\n", strerror (errno), message);
|
fprintf (stderr, "%s: %s\n", strerror (errno), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
|
||||||
sbrk (ptrdiff_t delta)
|
|
||||||
{
|
|
||||||
void *p = malloc (delta);
|
|
||||||
if (p <= 0)
|
|
||||||
return 0;
|
|
||||||
return p+delta;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
setitimer (int which, struct itimerval const *new,
|
setitimer (int which, struct itimerval const *new,
|
||||||
struct itimerval *old)
|
struct itimerval *old)
|
||||||
|
@ -209,3 +201,48 @@ utime (int x)
|
||||||
eputs ("utime stub\n");
|
eputs ("utime stub\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// binutils-2.10.1
|
||||||
|
int
|
||||||
|
fscanf (FILE *stream, char const *template, ...)
|
||||||
|
{
|
||||||
|
eputs ("fscan stub\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
isascii (int c)
|
||||||
|
{
|
||||||
|
return c >= 0 && c <= 127;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *
|
||||||
|
#if __MESC__
|
||||||
|
bsearch (void const *key, void const *array, size_t count, size_t size, void (*compare) ())
|
||||||
|
#else
|
||||||
|
bsearch (void const *key, void const *array, size_t count, size_t size, comparison_fn_t compare)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
eputs ("bsearch stub\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct tm *
|
||||||
|
gmtime (time_t const *time)
|
||||||
|
{
|
||||||
|
eputs ("gmtime stub\n");
|
||||||
|
return localtime (time);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if __SBRK_CHAR_PTRDIFF
|
||||||
|
char *
|
||||||
|
sbrk (ptrdiff_t)
|
||||||
|
#else
|
||||||
|
void *
|
||||||
|
sbrk (intptr_t delta)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
if (delta >= 0)
|
||||||
|
return malloc (delta);
|
||||||
|
return g_brk;
|
||||||
|
}
|
||||||
|
|
21
lib/libg.c
21
lib/libg.c
|
@ -48,3 +48,24 @@ __cleanup ()
|
||||||
eputs ("__cleanup stub\n");
|
eputs ("__cleanup stub\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
__libc_subinit ()
|
||||||
|
{
|
||||||
|
eputs ("__libc_subinit stub\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
__syscall_error ()
|
||||||
|
{
|
||||||
|
eputs ("__syscall_error stub\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
__fpu_control ()
|
||||||
|
{
|
||||||
|
eputs ("__fpu_control stub\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue