mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 12:47:35 +00:00
Some compat work towards making GCC's libstdc++ build.
This commit is contained in:
parent
93c0dfd1d7
commit
0b957ed2b1
9 changed files with 120 additions and 11 deletions
|
@ -75,6 +75,11 @@ ALWAYS_INLINE int __isxdigit(int c)
|
||||||
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
|
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ALWAYS_INLINE int __isgraph(int c)
|
||||||
|
{
|
||||||
|
return __isalnum(c) || __ispunct(c);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define __CTYPE_FUNC(name) static inline int name(int c) { return __ ## name(c); }
|
#define __CTYPE_FUNC(name) static inline int name(int c) { return __ ## name(c); }
|
||||||
|
|
||||||
|
@ -91,6 +96,7 @@ __CTYPE_FUNC(isalpha)
|
||||||
__CTYPE_FUNC(isalnum)
|
__CTYPE_FUNC(isalnum)
|
||||||
__CTYPE_FUNC(iscntrl)
|
__CTYPE_FUNC(iscntrl)
|
||||||
__CTYPE_FUNC(isxdigit)
|
__CTYPE_FUNC(isxdigit)
|
||||||
|
__CTYPE_FUNC(isgraph)
|
||||||
#else
|
#else
|
||||||
#define isascii(c) __isascii(c)
|
#define isascii(c) __isascii(c)
|
||||||
#define isspace(c) __isspace(c)
|
#define isspace(c) __isspace(c)
|
||||||
|
@ -105,6 +111,7 @@ __CTYPE_FUNC(isxdigit)
|
||||||
#define isalnum(c) __isalnum(c)
|
#define isalnum(c) __isalnum(c)
|
||||||
#define iscntrl(c) __iscntrl(c)
|
#define iscntrl(c) __iscntrl(c)
|
||||||
#define isxdigit(c) __isxdigit(c)
|
#define isxdigit(c) __isxdigit(c)
|
||||||
|
#define isgraph(c) __isgraph(c)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
|
@ -48,6 +48,29 @@
|
||||||
__ERROR(ENOTEMPTY, "Directory not empty") \
|
__ERROR(ENOTEMPTY, "Directory not empty") \
|
||||||
__ERROR(EDOM, "Math argument out of domain") \
|
__ERROR(EDOM, "Math argument out of domain") \
|
||||||
__ERROR(ECONNREFUSED, "Connection refused") \
|
__ERROR(ECONNREFUSED, "Connection refused") \
|
||||||
|
__ERROR(EADDRNOTAVAIL, "Address not available") \
|
||||||
|
__ERROR(EISCONN, "Already connected") \
|
||||||
|
__ERROR(ECONNABORTED, "Connection aborted") \
|
||||||
|
__ERROR(EALREADY, "Connection already in progress") \
|
||||||
|
__ERROR(ECONNRESET, "Connection reset") \
|
||||||
|
__ERROR(EDESTADDRREQ, "Desination address required") \
|
||||||
|
__ERROR(EHOSTUNREACH, "Host unreachable") \
|
||||||
|
__ERROR(EILSEQ, "Illegal byte sequence") \
|
||||||
|
__ERROR(EMSGSIZE, "Message size") \
|
||||||
|
__ERROR(ENETDOWN, "Network down") \
|
||||||
|
__ERROR(ENETUNREACH, "Network unreachable") \
|
||||||
|
__ERROR(ENETRESET, "Network reset") \
|
||||||
|
__ERROR(ENOBUFS, "No buffer space") \
|
||||||
|
__ERROR(ENOLCK, "No lock available") \
|
||||||
|
__ERROR(ENOMSG, "No message") \
|
||||||
|
__ERROR(ENOPROTOOPT, "No protocol option") \
|
||||||
|
__ERROR(ENOTCONN, "Not connected") \
|
||||||
|
__ERROR(EWOULDBLOCK, "Operation would block") \
|
||||||
|
__ERROR(EPROTONOSUPPORT,"Protocol not supported") \
|
||||||
|
__ERROR(EDEADLK, "Resource deadlock would occur") \
|
||||||
|
__ERROR(ETIMEDOUT, "Timed out") \
|
||||||
|
__ERROR(EPROTOTYPE, "Wrong protocol type") \
|
||||||
|
__ERROR(EINPROGRESS, "Operation in progress") \
|
||||||
__ERROR(EMAXERRNO, "The highest errno +1 :^)")
|
__ERROR(EMAXERRNO, "The highest errno +1 :^)")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
|
|
||||||
|
__BEGIN_DECLS
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
LC_ALL,
|
LC_ALL,
|
||||||
LC_NUMERIC,
|
LC_NUMERIC,
|
||||||
|
@ -9,8 +11,10 @@ enum {
|
||||||
LC_COLLATE,
|
LC_COLLATE,
|
||||||
};
|
};
|
||||||
|
|
||||||
__BEGIN_DECLS
|
struct lconv {
|
||||||
|
};
|
||||||
|
|
||||||
|
struct lconv* localeconv();
|
||||||
char* setlocale(int category, const char* locale);
|
char* setlocale(int category, const char* locale);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
45
LibC/math.h
45
LibC/math.h
|
@ -6,6 +6,51 @@ __BEGIN_DECLS
|
||||||
|
|
||||||
#define HUGE_VAL 1e10000
|
#define HUGE_VAL 1e10000
|
||||||
|
|
||||||
|
double acos(double);
|
||||||
|
float acosf(float);
|
||||||
|
double asin(double);
|
||||||
|
float asinf(float);
|
||||||
|
double atan(double);
|
||||||
|
float atanf(float);
|
||||||
|
double atan2(double, double);
|
||||||
|
float atan2f(float, float);
|
||||||
|
double cos(double);
|
||||||
|
float cosf(float);
|
||||||
|
double cosh(double);
|
||||||
|
float coshf(float);
|
||||||
|
double sin(double);
|
||||||
|
float sinf(float);
|
||||||
|
double sinh(double);
|
||||||
|
float sinhf(float);
|
||||||
|
double tan(double);
|
||||||
|
float tanf(float);
|
||||||
|
double tanh(double);
|
||||||
|
float tanhf(float);
|
||||||
|
double ceil(double);
|
||||||
|
float ceilf(float);
|
||||||
|
double floor(double);
|
||||||
|
float floorf(float);
|
||||||
|
double round(double);
|
||||||
|
float roundf(float);
|
||||||
|
double fabs(double);
|
||||||
|
float fabsf(float);
|
||||||
|
double fmod(double);
|
||||||
|
float fmodf(float);
|
||||||
|
double exp(double);
|
||||||
|
float expf(float);
|
||||||
|
double frexp(double, int* exp);
|
||||||
|
float frexpf(float, int* exp);
|
||||||
|
double log(double);
|
||||||
|
float logf(float);
|
||||||
|
double log10(double);
|
||||||
|
float log10f(float);
|
||||||
|
double sqrt(double);
|
||||||
|
float sqrtf(float);
|
||||||
|
double modf(double, double*);
|
||||||
|
float modff(float, float*);
|
||||||
|
double ldexp(double, int exp);
|
||||||
|
double ldexpf(float, int exp);
|
||||||
|
|
||||||
double pow(double x, double y);
|
double pow(double x, double y);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
|
@ -4,15 +4,25 @@
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
|
||||||
typedef unsigned long long int uint64_t;
|
typedef __UINT64_TYPE__ uint64_t;
|
||||||
typedef unsigned int uint32_t;
|
typedef __UINT32_TYPE__ uint32_t;
|
||||||
typedef unsigned short uint16_t;
|
typedef __UINT16_TYPE__ uint16_t;
|
||||||
typedef unsigned char uint8_t;
|
typedef __UINT8_TYPE__ uint8_t;
|
||||||
|
|
||||||
typedef signed long long int int64_t;
|
typedef __INT64_TYPE__ int64_t;
|
||||||
typedef signed int int32_t;
|
typedef __INT32_TYPE__ int32_t;
|
||||||
typedef signed short int16_t;
|
typedef __INT16_TYPE__ int16_t;
|
||||||
typedef signed char int8_t;
|
typedef __INT8_TYPE__ int8_t;
|
||||||
|
|
||||||
|
typedef __UINT_FAST8_TYPE__ uint_fast8_t;
|
||||||
|
typedef __UINT_FAST16_TYPE__ uint_fast16_t;
|
||||||
|
typedef __UINT_FAST32_TYPE__ uint_fast32_t;
|
||||||
|
typedef __UINT_FAST64_TYPE__ uint_fast64_t;
|
||||||
|
|
||||||
|
typedef __INT_FAST8_TYPE__ int_fast8_t;
|
||||||
|
typedef __INT_FAST16_TYPE__ int_fast16_t;
|
||||||
|
typedef __INT_FAST32_TYPE__ int_fast32_t;
|
||||||
|
typedef __INT_FAST64_TYPE__ int_fast64_t;
|
||||||
|
|
||||||
#define __int8_t_defined 1
|
#define __int8_t_defined 1
|
||||||
#define __uint8_t_defined 1
|
#define __uint8_t_defined 1
|
||||||
|
|
13
LibC/stdio.h
13
LibC/stdio.h
|
@ -37,6 +37,12 @@ extern FILE* stdin;
|
||||||
extern FILE* stdout;
|
extern FILE* stdout;
|
||||||
extern FILE* stderr;
|
extern FILE* stderr;
|
||||||
|
|
||||||
|
typedef size_t fpos_t;
|
||||||
|
|
||||||
|
int fseek(FILE*, long offset, int whence);
|
||||||
|
int fgetpos(FILE*, fpos_t*);
|
||||||
|
int fsetpos(FILE*, const fpos_t*);
|
||||||
|
long ftell(FILE*);
|
||||||
char* fgets(char* buffer, int size, FILE*);
|
char* fgets(char* buffer, int size, FILE*);
|
||||||
int fputc(int ch, FILE*);
|
int fputc(int ch, FILE*);
|
||||||
int fileno(FILE*);
|
int fileno(FILE*);
|
||||||
|
@ -44,8 +50,9 @@ int fgetc(FILE*);
|
||||||
int getc(FILE*);
|
int getc(FILE*);
|
||||||
int getchar();
|
int getchar();
|
||||||
int ungetc(int c, FILE*);
|
int ungetc(int c, FILE*);
|
||||||
|
int remove(const char* pathname);
|
||||||
FILE* fdopen(int fd, const char* mode);
|
FILE* fdopen(int fd, const char* mode);
|
||||||
FILE* fopen(const char* pathname, const char* mode);
|
FILE* fopen(const char* pathname, const char* mode); FILE* freopen(const char* pathname, const char* mode, FILE*);
|
||||||
int fclose(FILE*);
|
int fclose(FILE*);
|
||||||
void rewind(FILE*);
|
void rewind(FILE*);
|
||||||
void clearerr(FILE*);
|
void clearerr(FILE*);
|
||||||
|
@ -68,12 +75,14 @@ int putc(int ch, FILE*);
|
||||||
int puts(const char*);
|
int puts(const char*);
|
||||||
int fputs(const char*, FILE*);
|
int fputs(const char*, FILE*);
|
||||||
void perror(const char*);
|
void perror(const char*);
|
||||||
int sscanf (const char* buf, const char* fmt, ...);
|
int scanf(const char* fmt, ...);
|
||||||
|
int sscanf (const char* str, const char* fmt, ...);
|
||||||
int fscanf(FILE*, const char* fmt, ...);
|
int fscanf(FILE*, const char* fmt, ...);
|
||||||
int setvbuf(FILE*, char* buf, int mode, size_t);
|
int setvbuf(FILE*, char* buf, int mode, size_t);
|
||||||
void setbuf(FILE*, char* buf);
|
void setbuf(FILE*, char* buf);
|
||||||
void setlinebuf(FILE*);
|
void setlinebuf(FILE*);
|
||||||
int rename(const char* oldpath, const char* newpath);
|
int rename(const char* oldpath, const char* newpath);
|
||||||
|
FILE* tmpfile();
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -16,14 +16,18 @@ void* realloc(void *ptr, size_t);
|
||||||
char* getenv(const char* name);
|
char* getenv(const char* name);
|
||||||
int atoi(const char*);
|
int atoi(const char*);
|
||||||
long atol(const char*);
|
long atol(const char*);
|
||||||
|
double strtod(const char*, char** endptr);
|
||||||
long strtol(const char*, char** endptr, int base);
|
long strtol(const char*, char** endptr, int base);
|
||||||
unsigned long strtoul(const char*, char** endptr, int base);
|
unsigned long strtoul(const char*, char** endptr, int base);
|
||||||
void qsort(void* base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
|
void qsort(void* base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
|
||||||
|
int atexit(void (*function)());
|
||||||
__attribute__((noreturn)) void exit(int status);
|
__attribute__((noreturn)) void exit(int status);
|
||||||
__attribute__((noreturn)) void abort();
|
__attribute__((noreturn)) void abort();
|
||||||
char* ptsname(int fd);
|
char* ptsname(int fd);
|
||||||
int ptsname_r(int fd, char* buffer, size_t);
|
int ptsname_r(int fd, char* buffer, size_t);
|
||||||
int abs(int);
|
int abs(int);
|
||||||
|
long labs(long);
|
||||||
|
double atof(const char*);
|
||||||
int system(const char* command);
|
int system(const char* command);
|
||||||
char* mktemp(char*);
|
char* mktemp(char*);
|
||||||
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
|
void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
|
||||||
|
|
|
@ -29,6 +29,9 @@ size_t strcspn(const char*, const char* reject);
|
||||||
char* strerror(int errnum);
|
char* strerror(int errnum);
|
||||||
char* strsignal(int signum);
|
char* strsignal(int signum);
|
||||||
char* strpbrk(const char*, const char* accept);
|
char* strpbrk(const char*, const char* accept);
|
||||||
|
char *strtok(char* str, const char* delim);
|
||||||
|
int strcoll(const char *s1, const char *s2);
|
||||||
|
size_t strxfrm(char *dest, const char *src, size_t n);
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -30,10 +30,14 @@ extern int daylight;
|
||||||
int gettimeofday(struct timeval*, struct timezone* tz);
|
int gettimeofday(struct timeval*, struct timezone* tz);
|
||||||
struct tm* localtime(const time_t*);
|
struct tm* localtime(const time_t*);
|
||||||
struct tm *gmtime(const time_t*);
|
struct tm *gmtime(const time_t*);
|
||||||
|
time_t mktime(struct tm*);
|
||||||
time_t time(time_t*);
|
time_t time(time_t*);
|
||||||
char* ctime(const time_t*);
|
char* ctime(const time_t*);
|
||||||
void tzset();
|
void tzset();
|
||||||
char *asctime(const struct tm*);
|
char *asctime(const struct tm*);
|
||||||
|
clock_t clock();
|
||||||
|
double difftime(time_t, time_t);
|
||||||
|
size_t strftime(char* s, size_t max, const char* format, const struct tm*);
|
||||||
|
|
||||||
#define difftime(t1,t0) (double)(t1 - t0)
|
#define difftime(t1,t0) (double)(t1 - t0)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue