mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-27 23:08:31 +00:00
Remove bad defines from early days of project
These definitions were causing issues with building LLVM. It is possible they also caused crashes we've seen with our MacOS ARM64 OpenMP support.
This commit is contained in:
parent
f25fbbaaeb
commit
5dd7ddb9ea
20 changed files with 568 additions and 140 deletions
|
@ -2,7 +2,13 @@
|
|||
#define COSMOPOLITAN_LIBC_COSMO_H_
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
errno_t cosmo_once(_Atomic(unsigned) *, void (*)(void)) libcesque;
|
||||
#ifndef __cplusplus
|
||||
#define _COSMO_ATOMIC(x) _Atomic(x)
|
||||
#else
|
||||
#define _COSMO_ATOMIC(x) x
|
||||
#endif
|
||||
|
||||
errno_t cosmo_once(_COSMO_ATOMIC(unsigned) *, void (*)(void)) libcesque;
|
||||
int systemvpe(const char *, char *const[], char *const[]) libcesque;
|
||||
char *GetProgramExecutableName(void) libcesque;
|
||||
void unleaf(void) libcesque;
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
#if __GNUC__ + 0 < 2
|
||||
#define __attribute__(x)
|
||||
#endif
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define COSMOPOLITAN_C_START_
|
||||
#define COSMOPOLITAN_C_END_
|
||||
|
@ -10,73 +6,16 @@
|
|||
#define COSMOPOLITAN_CXX_USING_
|
||||
#endif
|
||||
|
||||
#ifndef __ia16__
|
||||
#define __far
|
||||
#endif
|
||||
|
||||
#if !defined(__GNUC__) && __cplusplus + 0 >= 201103L
|
||||
#define typeof(x) decltype(x)
|
||||
#elif !defined(__GNUC__) && __STDC_VERSION__ + 0 < 201112
|
||||
#define typeof(x) __typeof(x)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus >= 201103L
|
||||
#define _Alignof(x) alignof(x)
|
||||
#endif /* C++11 */
|
||||
#else /* __cplusplus */
|
||||
#if __STDC_VERSION__ + 0 < 201112
|
||||
#if __GNUC__ + _MSC_VER + 0
|
||||
#define _Alignof(x) __alignof(x)
|
||||
#else
|
||||
#define _Alignof(x) /* basically all it ever did lool */ sizeof(x)
|
||||
#endif /* GNU/MSVC/!ANSI */
|
||||
#endif /* C11 */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#if !defined(__cplusplus) && !defined(inline) && __STDC_VERSION__ + 0 < 199901
|
||||
#if defined(__GNUC__) || defined(_MSC_VER)
|
||||
#define inline __inline
|
||||
#else
|
||||
#define inline
|
||||
#define __inline
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef __chibicc__
|
||||
#define __extension__
|
||||
#endif
|
||||
|
||||
#if __STDC_VERSION__ + 0 < 201112
|
||||
#ifdef __GNUC__
|
||||
#define _Alignas(x) __attribute__((__aligned__(x)))
|
||||
#elif defined(_MSC_VER)
|
||||
#define _Alignas(x) __declspec(align(x))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define __builtin_unreachable() __assume(false)
|
||||
#elif !((__GNUC__ + 0) * 100 + (__GNUC_MINOR__ + 0) >= 405 || \
|
||||
defined(__clang__) || defined(__INTEL_COMPILER) || \
|
||||
__has_builtin(__builtin_unreachable))
|
||||
#define __builtin_unreachable() \
|
||||
for (;;) { \
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (!defined(__llvm__) && !__has_builtin(__builtin_assume))
|
||||
#define __builtin_assume(x) \
|
||||
do { \
|
||||
if (!(x)) \
|
||||
__builtin_unreachable(); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#if __STDC_VERSION__ + 0 < 201112
|
||||
#define _Atomic(t) volatile t
|
||||
#endif
|
||||
|
||||
#ifdef __llvm__
|
||||
#define __gnu_printf__ __printf__
|
||||
#define __gnu_scanf__ __scanf__
|
||||
|
@ -325,16 +264,6 @@ typedef struct {
|
|||
#define hasatleast
|
||||
#endif
|
||||
|
||||
#if __STDC_VERSION__ + 0 < 199901L && !defined(restrict)
|
||||
#if !defined(__cplusplus) && \
|
||||
((__GNUC__ + 0) * 100 + (__GNUC_MINOR__ + 0) >= 301 || defined(_MSC_VER))
|
||||
#define restrict __restrict__
|
||||
#else
|
||||
#define restrict
|
||||
#define __restrict
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef dontcallback
|
||||
#if (__has_attribute(__leaf__) || \
|
||||
(!defined(__llvm__) && \
|
||||
|
@ -594,11 +523,8 @@ typedef struct {
|
|||
|
||||
#ifdef __aarch64__
|
||||
/* raise sigill (not sigtrap) like x86 does */
|
||||
#define __builtin_trap() \
|
||||
do { \
|
||||
__asm__("udf\t#0x666"); \
|
||||
__builtin_unreachable(); \
|
||||
} while (0)
|
||||
#define __builtin_trap() \
|
||||
(({ __asm__("udf\t#0x666"); }), __builtin_unreachable())
|
||||
#endif
|
||||
|
||||
#endif /* _COSMO_SOURCE */
|
||||
|
|
|
@ -6,6 +6,12 @@ COSMOPOLITAN_C_START_
|
|||
|
||||
#define ZIPOS_SYNTHETIC_DIRECTORY 0
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define _ZIPOS_ATOMIC(x) _Atomic(x)
|
||||
#else
|
||||
#define _ZIPOS_ATOMIC(x) x
|
||||
#endif
|
||||
|
||||
struct stat;
|
||||
struct iovec;
|
||||
struct Zipos;
|
||||
|
@ -21,8 +27,8 @@ struct ZiposHandle {
|
|||
size_t size;
|
||||
size_t mapsize;
|
||||
size_t cfile;
|
||||
_Atomic(size_t) refs;
|
||||
_Atomic(size_t) pos;
|
||||
_ZIPOS_ATOMIC(size_t) refs;
|
||||
_ZIPOS_ATOMIC(size_t) pos;
|
||||
uint8_t *mem;
|
||||
uint8_t data[];
|
||||
};
|
||||
|
|
|
@ -26,10 +26,10 @@ COSMOPOLITAN_C_START_
|
|||
|
||||
void *memset(void *, int, size_t) memcpyesque;
|
||||
void *memmove(void *, const void *, size_t) memcpyesque;
|
||||
void *memcpy(void *restrict, const void *restrict, size_t) memcpyesque;
|
||||
void *mempcpy(void *restrict, const void *restrict, size_t) memcpyesque;
|
||||
char *hexpcpy(char *restrict, const void *restrict, size_t) memcpyesque;
|
||||
void *memccpy(void *restrict, const void *restrict, int, size_t) memcpyesque;
|
||||
void *memcpy(void *, const void *, size_t) memcpyesque;
|
||||
void *mempcpy(void *, const void *, size_t) memcpyesque;
|
||||
char *hexpcpy(char *, const void *, size_t) memcpyesque;
|
||||
void *memccpy(void *, const void *, int, size_t) memcpyesque;
|
||||
void explicit_bzero(void *, size_t);
|
||||
|
||||
int memcmp(const void *, const void *, size_t) strlenesque;
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
#include "libc/calls/struct/timespec.h"
|
||||
COSMOPOLITAN_C_START_
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define _SEM_ATOMIC(x) _Atomic(x)
|
||||
#else
|
||||
#define _SEM_ATOMIC(x) x
|
||||
#endif
|
||||
|
||||
#define SEM_FAILED ((sem_t *)0)
|
||||
#define SEM_MAGIC_NAMED 0xDEADBEEFu
|
||||
#define SEM_MAGIC_UNNAMED 0xFEEDABEEu
|
||||
|
@ -11,9 +17,9 @@ COSMOPOLITAN_C_START_
|
|||
typedef struct {
|
||||
union {
|
||||
struct {
|
||||
_Atomic(int) sem_value;
|
||||
_Atomic(int) sem_waiters;
|
||||
_Atomic(int) sem_prefs; /* named only */
|
||||
_SEM_ATOMIC(int) sem_value;
|
||||
_SEM_ATOMIC(int) sem_waiters;
|
||||
_SEM_ATOMIC(int) sem_prefs; /* named only */
|
||||
unsigned sem_magic;
|
||||
int64_t sem_dev; /* named only */
|
||||
int64_t sem_ino; /* named only */
|
||||
|
|
|
@ -48,6 +48,12 @@ COSMOPOLITAN_C_START_
|
|||
|
||||
#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP {0, {}, PTHREAD_MUTEX_RECURSIVE}
|
||||
|
||||
#ifndef __cplusplus
|
||||
#define _PTHREAD_ATOMIC(x) _Atomic(x)
|
||||
#else
|
||||
#define _PTHREAD_ATOMIC(x) x
|
||||
#endif
|
||||
|
||||
typedef uintptr_t pthread_t;
|
||||
typedef int pthread_id_np_t;
|
||||
typedef char pthread_condattr_t;
|
||||
|
@ -57,20 +63,20 @@ typedef unsigned pthread_key_t;
|
|||
typedef void (*pthread_key_dtor)(void *);
|
||||
|
||||
typedef struct pthread_once_s {
|
||||
_Atomic(uint32_t) _lock;
|
||||
_PTHREAD_ATOMIC(uint32_t) _lock;
|
||||
} pthread_once_t;
|
||||
|
||||
typedef struct pthread_spinlock_s {
|
||||
_Atomic(int) _lock;
|
||||
_PTHREAD_ATOMIC(int) _lock;
|
||||
} pthread_spinlock_t;
|
||||
|
||||
typedef struct pthread_mutex_s {
|
||||
uint32_t _nsync;
|
||||
union {
|
||||
int32_t _pid;
|
||||
_Atomic(int32_t) _futex;
|
||||
_PTHREAD_ATOMIC(int32_t) _futex;
|
||||
};
|
||||
_Atomic(uint64_t) _word;
|
||||
_PTHREAD_ATOMIC(uint64_t) _word;
|
||||
} pthread_mutex_t;
|
||||
|
||||
typedef struct pthread_mutexattr_s {
|
||||
|
@ -85,8 +91,8 @@ typedef struct pthread_cond_s {
|
|||
char _pshared;
|
||||
};
|
||||
};
|
||||
_Atomic(uint32_t) _sequence;
|
||||
_Atomic(uint32_t) _waiters;
|
||||
_PTHREAD_ATOMIC(uint32_t) _sequence;
|
||||
_PTHREAD_ATOMIC(uint32_t) _waiters;
|
||||
} pthread_cond_t;
|
||||
|
||||
typedef struct pthread_rwlock_s {
|
||||
|
@ -97,8 +103,8 @@ typedef struct pthread_rwlock_s {
|
|||
typedef struct pthread_barrier_s {
|
||||
int _count;
|
||||
char _pshared;
|
||||
_Atomic(int) _counter;
|
||||
_Atomic(int) _waiters;
|
||||
_PTHREAD_ATOMIC(int) _counter;
|
||||
_PTHREAD_ATOMIC(int) _waiters;
|
||||
} pthread_barrier_t;
|
||||
|
||||
typedef struct pthread_attr_s {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue