From d4308c8a9b57881310b59170c4ab5bcf934c829b Mon Sep 17 00:00:00 2001 From: Tibor Nagy <xnagytibor@gmail.com> Date: Sun, 28 Oct 2018 13:24:34 +0100 Subject: [PATCH] Disable symbol mangling for C++ --- include/bits/errno.h | 8 ++++++++ include/bits/fcntl.h | 8 ++++++++ include/bits/stdio.h | 8 ++++++++ include/bits/unistd.h | 8 ++++++++ include/getopt.h | 8 ++++++++ include/malloc.h | 8 ++++++++ include/setjmp.h | 8 ++++++++ 7 files changed, 56 insertions(+) diff --git a/include/bits/errno.h b/include/bits/errno.h index 1ade524d..c8594c12 100644 --- a/include/bits/errno.h +++ b/include/bits/errno.h @@ -1,7 +1,15 @@ #ifndef _BITS_ERRNO_H #define _BITS_ERRNO_H +#ifdef __cplusplus +extern "C" { +#endif + //TODO extern __thread int errno; extern int errno; +#ifdef __cplusplus +} // extern "C" +#endif + #endif /* _BITS_ERRNO_H */ diff --git a/include/bits/fcntl.h b/include/bits/fcntl.h index fff8987b..37764477 100644 --- a/include/bits/fcntl.h +++ b/include/bits/fcntl.h @@ -1,7 +1,15 @@ #ifndef _BITS_FCNTL_H #define _BITS_FCNTL_H +#ifdef __cplusplus +extern "C" { +#endif + int open(const char* filename, int flags, ...); int fcntl(int fildes, int cmd, ...); +#ifdef __cplusplus +} // extern "C" +#endif + #endif diff --git a/include/bits/stdio.h b/include/bits/stdio.h index 9d4a595d..0af8e6ac 100644 --- a/include/bits/stdio.h +++ b/include/bits/stdio.h @@ -5,6 +5,10 @@ typedef struct FILE FILE; +#ifdef __cplusplus +extern "C" { +#endif + int fprintf(FILE * stream, const char * fmt, ...); int printf(const char * fmt, ...); int snprintf(char *s, size_t n, const char * fmt, ...); @@ -13,4 +17,8 @@ int fscanf(FILE * stream, const char * fmt, ...); int scanf(const char * fmt, ...); int sscanf(const char * input, const char * fmt, ...); +#ifdef __cplusplus +} // extern "C" +#endif + #endif /* _BITS_STDIO_H */ diff --git a/include/bits/unistd.h b/include/bits/unistd.h index e37f3d2a..da27ac6f 100644 --- a/include/bits/unistd.h +++ b/include/bits/unistd.h @@ -3,7 +3,15 @@ #define _POSIX_VERSION 200809L +#ifdef __cplusplus +extern "C" { +#endif + int execl(const char *path, const char* argv0, ...); int execle(const char *path, const char* argv0, ...); +#ifdef __cplusplus +} // extern "C" +#endif + #endif diff --git a/include/getopt.h b/include/getopt.h index 32575f15..3db90d70 100644 --- a/include/getopt.h +++ b/include/getopt.h @@ -4,10 +4,18 @@ // Generated from: // `grep "opt" target/include/unistd.h` +#ifdef __cplusplus +extern "C" { +#endif + extern char* optarg; extern int opterr; extern int optind; extern int optopt; int getopt(int argc, char *const *argv, const char *optstring); +#ifdef __cplusplus +} // extern "C" +#endif + #endif diff --git a/include/malloc.h b/include/malloc.h index d7c21bad..98264954 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -6,6 +6,10 @@ // Generated from: // `grep "malloc\|calloc\|realloc\|free\|valloc\|memalign" target/include/stdlib.h` +#ifdef __cplusplus +extern "C" { +#endif + void *calloc(size_t nelem, size_t elsize); void free(void *ptr); void *malloc(size_t size); @@ -13,4 +17,8 @@ void *memalign(size_t alignment, size_t size); void *realloc(void *ptr, size_t size); void *valloc(size_t size); +#ifdef __cplusplus +} // extern "C" +#endif + #endif diff --git a/include/setjmp.h b/include/setjmp.h index 837b21ba..2971781c 100644 --- a/include/setjmp.h +++ b/include/setjmp.h @@ -61,7 +61,15 @@ typedef unsigned long long jmp_buf[8]; typedef unsigned long jmp_buf[8]; #endif +#ifdef __cplusplus +extern "C" { +#endif + int setjmp(jmp_buf buf); void longjmp(jmp_buf buf, int value); +#ifdef __cplusplus +} // extern "C" +#endif + #endif /* _SETJMP_H */ -- GitLab