1 #ifndef RBIMPL_CONFIG_H
2 #define RBIMPL_CONFIG_H
22 #include "ruby/config.h"
25 # include RUBY_EXTCONF_H
30 #undef HAVE_PROTOTYPES
31 #define HAVE_PROTOTYPES 1
33 #undef HAVE_STDARG_PROTOTYPES
34 #define HAVE_STDARG_PROTOTYPES 1
37 #define TOKEN_PASTE(x,y) x##y
39 #if defined(__cplusplus)
42 # undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
43 # undef HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P
46 # undef HAVE_VA_ARGS_MACRO
47 # if __cplusplus >= 201103L
48 # define HAVE_VA_ARGS_MACRO
49 # elif defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__
50 # define HAVE_VA_ARGS_MACRO
51 # elif defined(__INTEL_CXX11_MODE__)
52 # define HAVE_VA_ARGS_MACRO
53 # elif RBIMPL_COMPILER_SINCE(MSVC, 16, 0, 0)
54 # define HAVE_VA_ARGS_MACRO
60 #if RBIMPL_COMPILER_BEFORE(GCC, 4, 9, 0)
62 # undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
65 #if RBIMPL_COMPILER_BEFORE(GCC, 5, 0, 0)
69 # undef HAVE_BUILTIN___BUILTIN_ALLOCA_WITH_ALIGN
72 #if defined(__SUNPRO_CC)
77 # undef HAVE_STMT_AND_DECL_IN_EXPR
81 # define STRINGIZE(expr) STRINGIZE0(expr)
82 # define STRINGIZE0(expr) #expr
85 #ifdef AC_APPLE_UNIVERSAL_BUILD
86 # undef WORDS_BIGENDIAN
87 # ifdef __BIG_ENDIAN__
88 # define WORDS_BIGENDIAN
93 # define DLEXT_MAXLEN 4
97 # define RUBY_PLATFORM "unknown-unknown"
100 #ifdef UNALIGNED_WORD_ACCESS
102 #elif defined(__i386)
103 # define UNALIGNED_WORD_ACCESS 1
104 #elif defined(__i386__)
105 # define UNALIGNED_WORD_ACCESS 1
106 #elif defined(_M_IX86)
107 # define UNALIGNED_WORD_ACCESS 1
108 #elif defined(__x86_64)
109 # define UNALIGNED_WORD_ACCESS 1
110 #elif defined(__x86_64__)
111 # define UNALIGNED_WORD_ACCESS 1
112 #elif defined(_M_AMD64)
113 # define UNALIGNED_WORD_ACCESS 1
114 #elif defined(__powerpc64__)
115 # define UNALIGNED_WORD_ACCESS 1
116 #elif defined(__POWERPC__)
117 # define UNALIGNED_WORD_ACCESS 1
118 #elif defined(__aarch64__)
119 # define UNALIGNED_WORD_ACCESS 1
120 #elif defined(__mc68020__)
121 # define UNALIGNED_WORD_ACCESS 1
123 # define UNALIGNED_WORD_ACCESS 0
127 #if ! defined(HAVE_VA_ARGS_MACRO)
128 # undef HAVE___VA_OPT__
130 #elif defined(__cplusplus)
131 # if __cplusplus > 201703L
132 # define HAVE___VA_OPT__
134 # undef HAVE___VA_OPT__
138 # define RBIMPL_TEST3(q, w, e, ...) e
139 # define RBIMPL_TEST2(...) RBIMPL_TEST3(__VA_OPT__(,),1,0,0)
140 # define RBIMPL_TEST1() RBIMPL_TEST2("ruby")
142 # define HAVE___VA_OPT__
144 # undef HAVE___VA_OPT__
Defines RBIMPL_COMPILER_SINCE.