mirror of
git://git.musl-libc.org/musl
synced 2024-12-27 01:02:12 +00:00
9578f0530a
this patch is something of a compromise for a compatibility regression discovered after the header refactoring: libtiff uses _Int64 for its own use. this is absolutely wrong, invalid C, and should not be supported, but it's also frustrating for users when code that used to work suddenly breaks. rather than leave the breakage in place or change musl internals to accommodate broken software, I've found a change that makes the problem go away and improves musl. by undefining these macros at the end of alltypes.h, the temptation to use them in other headers is removed. (for example, I almost used _Int64 in sys/types.h to define u_int64_t rather than adding it back to alltypes.h.) by confining use of these macros to alltypes.h, we keep it easy to go back and change the implementation of alltypes later, if needed.
73 lines
1.9 KiB
C
73 lines
1.9 KiB
C
TYPEDEF unsigned _Addr size_t;
|
|
TYPEDEF unsigned _Addr uintptr_t;
|
|
TYPEDEF _Addr ptrdiff_t;
|
|
TYPEDEF _Addr ssize_t;
|
|
TYPEDEF _Addr intptr_t;
|
|
TYPEDEF _Addr regoff_t;
|
|
TYPEDEF _Reg register_t;
|
|
|
|
TYPEDEF signed char int8_t;
|
|
TYPEDEF short int16_t;
|
|
TYPEDEF int int32_t;
|
|
TYPEDEF _Int64 int64_t;
|
|
TYPEDEF _Int64 intmax_t;
|
|
TYPEDEF unsigned char uint8_t;
|
|
TYPEDEF unsigned short uint16_t;
|
|
TYPEDEF unsigned int uint32_t;
|
|
TYPEDEF unsigned _Int64 uint64_t;
|
|
TYPEDEF unsigned _Int64 u_int64_t;
|
|
TYPEDEF unsigned _Int64 uintmax_t;
|
|
|
|
TYPEDEF unsigned mode_t;
|
|
TYPEDEF unsigned _Reg nlink_t;
|
|
TYPEDEF _Int64 off_t;
|
|
TYPEDEF unsigned _Int64 ino_t;
|
|
TYPEDEF unsigned _Int64 dev_t;
|
|
TYPEDEF long blksize_t;
|
|
TYPEDEF _Int64 blkcnt_t;
|
|
TYPEDEF unsigned _Int64 fsblkcnt_t;
|
|
TYPEDEF unsigned _Int64 fsfilcnt_t;
|
|
|
|
TYPEDEF unsigned long wctype_t;
|
|
|
|
TYPEDEF void * timer_t;
|
|
TYPEDEF int clockid_t;
|
|
TYPEDEF long clock_t;
|
|
STRUCT timeval { time_t tv_sec; suseconds_t tv_usec; };
|
|
STRUCT timespec { time_t tv_sec; long tv_nsec; };
|
|
|
|
TYPEDEF int pid_t;
|
|
TYPEDEF unsigned id_t;
|
|
TYPEDEF unsigned uid_t;
|
|
TYPEDEF unsigned gid_t;
|
|
TYPEDEF int key_t;
|
|
TYPEDEF unsigned useconds_t;
|
|
|
|
#ifdef __cplusplus
|
|
TYPEDEF unsigned long pthread_t;
|
|
#else
|
|
TYPEDEF struct __pthread * pthread_t;
|
|
#endif
|
|
TYPEDEF int pthread_once_t;
|
|
TYPEDEF unsigned pthread_key_t;
|
|
TYPEDEF int pthread_spinlock_t;
|
|
TYPEDEF struct { unsigned __attr; } pthread_mutexattr_t;
|
|
TYPEDEF struct { unsigned __attr; } pthread_condattr_t;
|
|
TYPEDEF struct { unsigned __attr; } pthread_barrierattr_t;
|
|
TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
|
|
|
|
TYPEDEF struct _IO_FILE FILE;
|
|
|
|
TYPEDEF struct __locale_struct * locale_t;
|
|
|
|
TYPEDEF struct __sigset_t { unsigned long __bits[128/sizeof(long)]; } sigset_t;
|
|
|
|
STRUCT iovec { void *iov_base; size_t iov_len; };
|
|
|
|
TYPEDEF unsigned socklen_t;
|
|
TYPEDEF unsigned short sa_family_t;
|
|
|
|
#undef _Addr
|
|
#undef _Int64
|
|
#undef _Reg
|