/* First the default target definition. */ #ifndef __GNUC_VA_LIST #define __GNUC_VA_LIST typedef __builtin_va_list __gnuc_va_list; #endif #ifndef _VA_LIST_DEFINED #define _VA_LIST_DEFINED typedef __gnuc_va_list va_list; #endif #define __va_copy(d,s) __builtin_va_copy(d,s) #define __va_start(v,l) __builtin_va_start(v,l) #define __va_arg(v,l) __builtin_va_arg(v,l) #define __va_end(v) __builtin_va_end(v) #define __ms_va_copy(d,s) __builtin_ms_va_copy(d,s) #define __ms_va_start(v,l) __builtin_ms_va_start(v,l) #define __ms_va_arg(v,l) __builtin_va_arg(v,l) #define __ms_va_end(v) __builtin_ms_va_end(v) #define __sysv_va_copy(d,s) __builtin_sysv_va_copy(d,s) #define __sysv_va_start(v,l) __builtin_sysv_va_start(v,l) #define __sysv_va_arg(v,l) __builtin_va_arg(v,l) #define __sysv_va_end(v) __builtin_sysv_va_end(v) #define CALLABI_NATIVE #ifdef _WIN64 #define CALLABI_CROSS __attribute__ ((sysv_abi)) #define CROSS_VA_LIST __builtin_sysv_va_list #define CROSS_VA_COPY(d,s) __sysv_va_copy(d,s) #define CROSS_VA_START(v,l) __sysv_va_start(v,l) #define CROSS_VA_ARG(v,l) __sysv_va_arg(v,l) #define CROSS_VA_END(v) __sysv_va_end(v) #else #define CALLABI_CROSS __attribute__ ((ms_abi)) #define CROSS_VA_LIST __builtin_ms_va_list #define CROSS_VA_COPY(d,s) __ms_va_copy(d,s) #define CROSS_VA_START(v,l) __ms_va_start(v,l) #define CROSS_VA_ARG(v,l) __ms_va_arg(v,l) #define CROSS_VA_END(v) __ms_va_end(v) #endif