diff --git a/share/machdeps/machdep-schema.yaml b/share/machdeps/machdep-schema.yaml
index d36c36b1ad8621056f0bf22ca56be363d85212cd..362d959778d5c0b177e15f52e304b5e6f93954aa 100644
--- a/share/machdeps/machdep-schema.yaml
+++ b/share/machdeps/machdep-schema.yaml
@@ -98,9 +98,17 @@ cpp_arch_flags:
 
 custom_defs:
   description: |
-    arbitrary text that will be reproduced verbatim in the generated
-    header
-  type: string
+    builtin macros (and their definition) for the given architecture and
+    compiler
+  type: list
+  items:
+    type: object
+    name:
+      description: macro name
+      type: string
+    value:
+      description: actual value
+      type: string
 
 eof:
 
diff --git a/share/machdeps/machdep_gcc_x86_16.yaml b/share/machdeps/machdep_gcc_x86_16.yaml
index 87f4e68c223a9cdc2860fbc0b398b3c69d428327..0221623b2185f763d82843f1cd6e0e224a5d5e7b 100644
--- a/share/machdeps/machdep_gcc_x86_16.yaml
+++ b/share/machdeps/machdep_gcc_x86_16.yaml
@@ -13,749 +13,404 @@ char_is_unsigned: false
 compiler: gcc
 cpp_arch_flags:
 - -m16
+has__builtin_va_list: true
+int_fast8_t: signed char
+int_fast16_t: signed int
+int_fast32_t: long
+int_fast64_t: long long
+intptr_t: long
+little_endian: true
+nsig: '65'
+ptrdiff_t: int
+sig_atomic_t: int
+size_t: unsigned int
+sizeof_double: 8
+sizeof_float: 4
+sizeof_fun: 1
+sizeof_int: 2
+sizeof_long: 4
+sizeof_longdouble: 16
+sizeof_longlong: 8
+sizeof_ptr: 4
+sizeof_short: 2
+sizeof_void: 1
+ssize_t: int
+time_t: long
+uint_fast8_t: unsigned char
+uint_fast16_t: unsigned int
+uint_fast32_t: unsigned long
+uint_fast64_t: unsigned long long
+uintptr_t: unsigned long
+version: none
+wchar_t: int
+weof: (0xffffffffUL)
+wint_t: unsigned long
+wordsize: '16'
+posix_version: '200809L'
+bufsiz: '8192'
+eof: '(-1)'
+fopen_max: '16'
+filename_max: '2048'
+path_max: '256'
+host_name_max: '64'
+tty_name_max: '32'
+l_tmpnam: '2048'
+tmp_max: '0xFFFFFFFF'
+rand_max: '32767'
+mb_cur_max: '((size_t)16)'
+machdep_name: machdep_gcc_x86_16
 
 # adapted from the builtin macros of gcc_x86_32
-custom_defs: |
-    #undef __SSP_STRONG__
-    #define __SSP_STRONG__ 3
-    #undef __DBL_MIN_EXP__
-    #define __DBL_MIN_EXP__ (-1021)
-    #undef __UINT_LEAST16_MAX__
-    #define __UINT_LEAST16_MAX__ 0xffff
-    #undef __FLT16_HAS_QUIET_NAN__
-    #define __FLT16_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_ACQUIRE
-    #define __ATOMIC_ACQUIRE 2
-    #undef __FLT128_MAX_10_EXP__
-    #define __FLT128_MAX_10_EXP__ 4932
-    #undef __FLT_MIN__
-    #define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
-    #undef __GCC_IEC_559_COMPLEX
-    #define __GCC_IEC_559_COMPLEX 2
-    #undef __UINT_LEAST8_TYPE__
-    #define __UINT_LEAST8_TYPE__ unsigned char
-    #undef __SIZEOF_FLOAT80__
-    #define __SIZEOF_FLOAT80__ 12
-    #undef __INTMAX_C
-    #define __INTMAX_C(c) c ## LL
-    #undef __CHAR_BIT__
-    #define __CHAR_BIT__ 8
-    #undef __UINT8_MAX__
-    #define __UINT8_MAX__ 0xff
-    #undef __SCHAR_WIDTH__
-    #define __SCHAR_WIDTH__ 8
-    #undef __WINT_MAX__
-    #define __WINT_MAX__ 0xffffffffU
-    #undef __FLT32_MIN_EXP__
-    #define __FLT32_MIN_EXP__ (-125)
-    #undef __ORDER_LITTLE_ENDIAN__
-    #define __ORDER_LITTLE_ENDIAN__ 1234
-    #undef __SIZE_MAX__
-    #define __SIZE_MAX__ 0xffffffffU
-    #undef __WCHAR_MAX__
-    #define __WCHAR_MAX__ 0x7fffffffL
-    #undef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
-    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
-    #undef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4
-    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
-    #undef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
-    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
-    #undef __GCC_ATOMIC_CHAR_LOCK_FREE
-    #define __GCC_ATOMIC_CHAR_LOCK_FREE 2
-    #undef __GCC_IEC_559
-    #define __GCC_IEC_559 2
-    #undef __FLT32X_DECIMAL_DIG__
-    #define __FLT32X_DECIMAL_DIG__ 17
-    #undef __FLT_EVAL_METHOD__
-    #define __FLT_EVAL_METHOD__ 2
-    #undef __FLT64_DECIMAL_DIG__
-    #define __FLT64_DECIMAL_DIG__ 17
-    #undef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
-    #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
-    #undef __UINT_FAST64_MAX__
-    #define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
-    #undef __SIG_ATOMIC_TYPE__
-    #define __SIG_ATOMIC_TYPE__ int
-    #undef __DBL_MIN_10_EXP__
-    #define __DBL_MIN_10_EXP__ (-307)
-    #undef __FINITE_MATH_ONLY__
-    #define __FINITE_MATH_ONLY__ 0
-    #undef __FLT32X_MAX_EXP__
-    #define __FLT32X_MAX_EXP__ 1024
-    #undef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
-    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
-    #undef __FLT32_HAS_DENORM__
-    #define __FLT32_HAS_DENORM__ 1
-    #undef __UINT_FAST8_MAX__
-    #define __UINT_FAST8_MAX__ 0xff
-    #undef __FLT32_MAX_10_EXP__
-    #define __FLT32_MAX_10_EXP__ 38
-    #undef __DEC64_MAX_EXP__
-    #define __DEC64_MAX_EXP__ 385
-    #undef __INT8_C
-    #define __INT8_C(c) c
-    #undef __INT_LEAST8_WIDTH__
-    #define __INT_LEAST8_WIDTH__ 8
-    #undef __UINT_LEAST64_MAX__
-    #define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
-    #undef __SHRT_MAX__
-    #define __SHRT_MAX__ 0x7fff
-    #undef __LDBL_MAX__
-    #define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
-    #undef __FLT64X_MAX_10_EXP__
-    #define __FLT64X_MAX_10_EXP__ 4932
-    #undef __LDBL_IS_IEC_60559__
-    #define __LDBL_IS_IEC_60559__ 2
-    #undef __FLT64X_HAS_QUIET_NAN__
-    #define __FLT64X_HAS_QUIET_NAN__ 1
-    #undef __UINT_LEAST8_MAX__
-    #define __UINT_LEAST8_MAX__ 0xff
-    #undef __GCC_ATOMIC_BOOL_LOCK_FREE
-    #define __GCC_ATOMIC_BOOL_LOCK_FREE 2
-    #undef __LAHF_SAHF__
-    #define __LAHF_SAHF__ 1
-    #undef __FLT128_DENORM_MIN__
-    #define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
-    #undef __UINTMAX_TYPE__
-    #define __UINTMAX_TYPE__ long long unsigned int
-    #undef __linux
-    #define __linux 1
-    #undef __DEC32_EPSILON__
-    #define __DEC32_EPSILON__ 1E-6DF
-    #undef __FLT_EVAL_METHOD_TS_18661_3__
-    #define __FLT_EVAL_METHOD_TS_18661_3__ 2
-    #undef __unix
-    #define __unix 1
-    #undef __UINT32_MAX__
-    #define __UINT32_MAX__ 0xffffffffU
-    #undef __DBL_DENORM_MIN__
-    #define __DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)
-    #undef __FLT128_MIN_EXP__
-    #define __FLT128_MIN_EXP__ (-16381)
-    #undef __WINT_MIN__
-    #define __WINT_MIN__ 0U
-    #undef __FLT128_MIN_10_EXP__
-    #define __FLT128_MIN_10_EXP__ (-4931)
-    #undef __FLT32X_IS_IEC_60559__
-    #define __FLT32X_IS_IEC_60559__ 2
-    #undef __INT_LEAST16_WIDTH__
-    #define __INT_LEAST16_WIDTH__ 16
-    #undef __SCHAR_MAX__
-    #define __SCHAR_MAX__ 0x7f
-    #undef __FLT128_MANT_DIG__
-    #define __FLT128_MANT_DIG__ 113
-    #undef __WCHAR_MIN__
-    #define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
-    #undef __INT64_C
-    #define __INT64_C(c) c ## LL
-    #undef __GCC_ATOMIC_POINTER_LOCK_FREE
-    #define __GCC_ATOMIC_POINTER_LOCK_FREE 2
-    #undef __FLT32X_MANT_DIG__
-    #define __FLT32X_MANT_DIG__ 53
-    #undef __FLT64X_EPSILON__
-    #define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
-    #undef __DEC64_MIN_EXP__
-    #define __DEC64_MIN_EXP__ (-382)
-    #undef __DBL_DIG__
-    #define __DBL_DIG__ 15
-    #undef __FLT32_DIG__
-    #define __FLT32_DIG__ 6
-    #undef __FLT_EPSILON__
-    #define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
-    #undef __SHRT_WIDTH__
-    #define __SHRT_WIDTH__ 16
-    #undef __FLT32_IS_IEC_60559__
-    #define __FLT32_IS_IEC_60559__ 2
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
-    #undef __DBL_IS_IEC_60559__
-    #define __DBL_IS_IEC_60559__ 2
-    #undef __DEC32_MAX__
-    #define __DEC32_MAX__ 9.999999E96DF
-    #undef __FLT64X_DENORM_MIN__
-    #define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
-    #undef __FLT32X_HAS_INFINITY__
-    #define __FLT32X_HAS_INFINITY__ 1
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 0x7fffffff
-    #undef __FLT16_DIG__
-    #define __FLT16_DIG__ 3
-    #undef __unix__
-    #define __unix__ 1
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 16
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 4
-    #undef __UINT16_C
-    #define __UINT16_C(c) c
-    #undef __DECIMAL_DIG__
-    #define __DECIMAL_DIG__ 21
-    #undef __FLT64_EPSILON__
-    #define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
-    #undef __gnu_linux__
-    #define __gnu_linux__ 1
-    #undef __FLT128_IS_IEC_60559__
-    #define __FLT128_IS_IEC_60559__ 2
-    #undef __FLT64X_MIN_10_EXP__
-    #define __FLT64X_MIN_10_EXP__ (-4931)
-    #undef __LDBL_HAS_QUIET_NAN__
-    #define __LDBL_HAS_QUIET_NAN__ 1
-    #undef __FLT16_MIN_EXP__
-    #define __FLT16_MIN_EXP__ (-13)
-    #undef __FLT64_MANT_DIG__
-    #define __FLT64_MANT_DIG__ 53
-    #undef __FLT64X_MANT_DIG__
-    #define __FLT64X_MANT_DIG__ 64
-    #undef __GNUC__
-    #define __GNUC__ 12
-    #undef __pie__
-    #define __pie__ 2
-    #undef __MMX__
-    #define __MMX__ 1
-    #undef __FLT_HAS_DENORM__
-    #define __FLT_HAS_DENORM__ 1
-    #undef __SIZEOF_LONG_DOUBLE__
-    #define __SIZEOF_LONG_DOUBLE__ 12
-    #undef __BIGGEST_ALIGNMENT__
-    #define __BIGGEST_ALIGNMENT__ 16
-    #undef __FLT64_MAX_10_EXP__
-    #define __FLT64_MAX_10_EXP__ 308
-    #undef __FLT16_MAX_10_EXP__
-    #define __FLT16_MAX_10_EXP__ 4
-    #undef __DBL_MAX__
-    #define __DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)
-    #undef __INT_FAST32_MAX__
-    #define __INT_FAST32_MAX__ 0x7fffffff
-    #undef __DBL_HAS_INFINITY__
-    #define __DBL_HAS_INFINITY__ 1
-    #undef __SIZEOF_FLOAT__
-    #define __SIZEOF_FLOAT__ 4
-    #undef __HAVE_SPECULATION_SAFE_VALUE
-    #define __HAVE_SPECULATION_SAFE_VALUE 1
-    #undef __DEC32_MIN_EXP__
-    #define __DEC32_MIN_EXP__ (-94)
-    #undef __INTPTR_WIDTH__
-    #define __INTPTR_WIDTH__ 32
-    #undef __FLT64X_HAS_INFINITY__
-    #define __FLT64X_HAS_INFINITY__ 1
-    #undef __UINT_LEAST32_MAX__
-    #define __UINT_LEAST32_MAX__ 0xffffffffU
-    #undef __FLT32X_HAS_DENORM__
-    #define __FLT32X_HAS_DENORM__ 1
-    #undef __INT_FAST16_TYPE__
-    #define __INT_FAST16_TYPE__ int
-    #undef __LDBL_HAS_DENORM__
-    #define __LDBL_HAS_DENORM__ 1
-    #undef __SEG_GS
-    #define __SEG_GS 1
-    #undef __FLT128_HAS_INFINITY__
-    #define __FLT128_HAS_INFINITY__ 1
-    #undef __DEC32_MIN__
-    #define __DEC32_MIN__ 1E-95DF
-    #undef __DBL_MAX_EXP__
-    #define __DBL_MAX_EXP__ 1024
-    #undef __WCHAR_WIDTH__
-    #define __WCHAR_WIDTH__ 16
-    #undef __FLT32_MAX__
-    #define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
-    #undef __DEC128_EPSILON__
-    #define __DEC128_EPSILON__ 1E-33DL
-    #undef __FLT16_DECIMAL_DIG__
-    #define __FLT16_DECIMAL_DIG__ 5
-    #undef __ATOMIC_HLE_RELEASE
-    #define __ATOMIC_HLE_RELEASE 131072
-    #undef __PTRDIFF_MAX__
-    #define __PTRDIFF_MAX__ 0x7fffffff
-    #undef __ATOMIC_HLE_ACQUIRE
-    #define __ATOMIC_HLE_ACQUIRE 65536
-    #undef __LONG_LONG_MAX__
-    #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
-    #undef __SIZEOF_SIZE_T__
-    #define __SIZEOF_SIZE_T__ 2
-    #undef __FLT64X_MIN_EXP__
-    #define __FLT64X_MIN_EXP__ (-16381)
-    #undef __SIZEOF_WINT_T__
-    #define __SIZEOF_WINT_T__ 4
-    #undef __LONG_LONG_WIDTH__
-    #define __LONG_LONG_WIDTH__ 64
-    #undef __FLT32_MAX_EXP__
-    #define __FLT32_MAX_EXP__ 128
-    #undef __GXX_ABI_VERSION
-    #define __GXX_ABI_VERSION 1017
-    #undef __FLT_MIN_EXP__
-    #define __FLT_MIN_EXP__ (-125)
-    #undef __GCC_HAVE_DWARF2_CFI_ASM
-    #define __GCC_HAVE_DWARF2_CFI_ASM 1
-    #undef __INT16_MAX__
-    #define __INT16_MAX__ 0x7fff
-    #undef __INT_FAST64_TYPE__
-    #define __INT_FAST64_TYPE__ long long int
-    #undef __FLT64_DENORM_MIN__
-    #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
-    #undef __DBL_MIN__
-    #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
-    #undef __FLT16_DENORM_MIN__
-    #define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16
-    #undef __FLT128_EPSILON__
-    #define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
-    #undef __FLT64X_NORM_MAX__
-    #define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x
-    #undef __SIZEOF_POINTER__
-    #define __SIZEOF_POINTER__ 4
-    #undef __DBL_HAS_QUIET_NAN__
-    #define __DBL_HAS_QUIET_NAN__ 1
-    #undef __FLT32X_EPSILON__
-    #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
-    #undef __DECIMAL_BID_FORMAT__
-    #define __DECIMAL_BID_FORMAT__ 1
-    #undef __FLT64_MIN_EXP__
-    #define __FLT64_MIN_EXP__ (-1021)
-    #undef __FLT64_MIN_10_EXP__
-    #define __FLT64_MIN_10_EXP__ (-307)
-    #undef __FLT16_MIN_10_EXP__
-    #define __FLT16_MIN_10_EXP__ (-4)
-    #undef __FLT64X_DECIMAL_DIG__
-    #define __FLT64X_DECIMAL_DIG__ 21
-    #undef __DEC128_MIN__
-    #define __DEC128_MIN__ 1E-6143DL
-    #undef __REGISTER_PREFIX__
-    #define __REGISTER_PREFIX__
-    #undef __UINT16_MAX__
-    #define __UINT16_MAX__ 0xffff
-    #undef __DBL_HAS_DENORM__
-    #define __DBL_HAS_DENORM__ 1
-    #undef __LDBL_HAS_INFINITY__
-    #define __LDBL_HAS_INFINITY__ 1
-    #undef __FLT32_MIN__
-    #define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
-    #undef __UINT8_TYPE__
-    #define __UINT8_TYPE__ unsigned char
-    #undef __FLT_DIG__
-    #define __FLT_DIG__ 6
-    #undef __NO_INLINE__
-    #define __NO_INLINE__ 1
-    #undef __DEC_EVAL_METHOD__
-    #define __DEC_EVAL_METHOD__ 2
-    #undef __DEC128_MAX__
-    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
-    #undef __i386
-    #define __i386 1
-    #undef __FLT_MANT_DIG__
-    #define __FLT_MANT_DIG__ 24
-    #undef __LDBL_DECIMAL_DIG__
-    #define __LDBL_DECIMAL_DIG__ 21
-    #undef __VERSION__
-    #define __VERSION__ "12.2.1 20230201"
-    #undef __UINT64_C
-    #define __UINT64_C(c) c ## ULL
-    #undef _STDC_PREDEF_H
-    #define _STDC_PREDEF_H 1
-    #undef __INT_LEAST32_MAX__
-    #define __INT_LEAST32_MAX__ 0x7fffffff
-    #undef __GCC_ATOMIC_INT_LOCK_FREE
-    #define __GCC_ATOMIC_INT_LOCK_FREE 2
-    #undef __FLT128_MAX_EXP__
-    #define __FLT128_MAX_EXP__ 16384
-    #undef __FLT32_MANT_DIG__
-    #define __FLT32_MANT_DIG__ 24
-    #undef __FLOAT_WORD_ORDER__
-    #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
-    #undef __FLT32X_MIN_EXP__
-    #define __FLT32X_MIN_EXP__ (-1021)
-    #undef i386
-    #define i386 1
-    #undef __FLT128_HAS_DENORM__
-    #define __FLT128_HAS_DENORM__ 1
-    #undef __FLT32_DECIMAL_DIG__
-    #define __FLT32_DECIMAL_DIG__ 9
-    #undef __FLT128_DIG__
-    #define __FLT128_DIG__ 33
-    #undef __INT32_C
-    #define __INT32_C(c) c ## L
-    #undef __DEC64_EPSILON__
-    #define __DEC64_EPSILON__ 1E-15DD
-    #undef __ORDER_PDP_ENDIAN__
-    #define __ORDER_PDP_ENDIAN__ 3412
-    #undef __DEC128_MIN_EXP__
-    #define __DEC128_MIN_EXP__ (-6142)
-    #undef __code_model_32__
-    #define __code_model_32__ 1
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ long
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ short unsigned int
-    #undef unix
-    #define unix 1
-    #undef __i386__
-    #define __i386__ 1
-    #undef __SIZE_TYPE__
-    #define __SIZE_TYPE__ unsigned int
-    #undef __UINT64_MAX__
-    #define __UINT64_MAX__ 0xffffffffffffffffULL
-    #undef __FLT_IS_IEC_60559__
-    #define __FLT_IS_IEC_60559__ 2
-    #undef __GNUC_WIDE_EXECUTION_CHARSET_NAME
-    #define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE"
-    #undef __FLT64X_DIG__
-    #define __FLT64X_DIG__ 18
-    #undef __INT8_TYPE__
-    #define __INT8_TYPE__ signed char
-    #undef __ELF__
-    #define __ELF__ 1
-    #undef __GCC_ASM_FLAG_OUTPUTS__
-    #define __GCC_ASM_FLAG_OUTPUTS__ 1
-    #undef __UINT32_TYPE__
-    #define __UINT32_TYPE__ unsigned long
-    #undef __FLT_RADIX__
-    #define __FLT_RADIX__ 2
-    #undef __INT_LEAST16_TYPE__
-    #define __INT_LEAST16_TYPE__ short int
-    #undef __LDBL_EPSILON__
-    #define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
-    #undef __UINTMAX_C
-    #define __UINTMAX_C(c) c ## ULL
-    #undef __k8
-    #define __k8 1
-    #undef __FLT32X_MIN__
-    #define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
-    #undef __SIG_ATOMIC_MAX__
-    #define __SIG_ATOMIC_MAX__ 0x7fffffff
-    #undef __GCC_ATOMIC_WCHAR_T_LOCK_FREE
-    #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
-    #undef __USER_LABEL_PREFIX__
-    #define __USER_LABEL_PREFIX__
-    #undef __SIZEOF_PTRDIFF_T__
-    #define __SIZEOF_PTRDIFF_T__ 4
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 18
-    #undef __FLT64_IS_IEC_60559__
-    #define __FLT64_IS_IEC_60559__ 2
-    #undef __FLT16_IS_IEC_60559__
-    #define __FLT16_IS_IEC_60559__ 2
-    #undef __FLT16_MAX_EXP__
-    #define __FLT16_MAX_EXP__ 16
-    #undef __DEC32_SUBNORMAL_MIN__
-    #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
-    #undef __INT_FAST16_MAX__
-    #define __INT_FAST16_MAX__ 0x7fffffff
-    #undef __GCC_CONSTRUCTIVE_SIZE
-    #define __GCC_CONSTRUCTIVE_SIZE 64
-    #undef __FLT64_DIG__
-    #define __FLT64_DIG__ 15
-    #undef __UINT_FAST32_MAX__
-    #define __UINT_FAST32_MAX__ 0xffffffffU
-    #undef __UINT_LEAST64_TYPE__
-    #define __UINT_LEAST64_TYPE__ long long unsigned int
-    #undef __FLT16_EPSILON__
-    #define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16
-    #undef __ILP32__
-    #define __ILP32__ 1
-    #undef __FLT_HAS_QUIET_NAN__
-    #define __FLT_HAS_QUIET_NAN__ 1
-    #undef __FLT_MAX_10_EXP__
-    #define __FLT_MAX_10_EXP__ 38
-    #undef __LONG_MAX__
-    #define __LONG_MAX__ 0x7fffffffL
-    #undef __FLT64X_HAS_DENORM__
-    #define __FLT64X_HAS_DENORM__ 1
-    #undef __DEC128_SUBNORMAL_MIN__
-    #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
-    #undef __FLT_HAS_INFINITY__
-    #define __FLT_HAS_INFINITY__ 1
-    #undef __GNUC_EXECUTION_CHARSET_NAME
-    #define __GNUC_EXECUTION_CHARSET_NAME "UTF-8"
-    #undef _ILP32
-    #define _ILP32 1
-    #undef __UINT_FAST16_TYPE__
-    #define __UINT_FAST16_TYPE__ unsigned int
-    #undef __DEC64_MAX__
-    #define __DEC64_MAX__ 9.999999999999999E384DD
-    #undef __INT_FAST32_WIDTH__
-    #define __INT_FAST32_WIDTH__ 32
-    #undef __CHAR16_TYPE__
-    #define __CHAR16_TYPE__ short unsigned int
-    #undef __PRAGMA_REDEFINE_EXTNAME
-    #define __PRAGMA_REDEFINE_EXTNAME 1
-    #undef __SIZE_WIDTH__
-    #define __SIZE_WIDTH__ 32
-    #undef __SEG_FS
-    #define __SEG_FS 1
-    #undef __INT_LEAST16_MAX__
-    #define __INT_LEAST16_MAX__ 0x7fff
-    #undef __FLT16_NORM_MAX__
-    #define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16
-    #undef __DEC64_MANT_DIG__
-    #define __DEC64_MANT_DIG__ 16
-    #undef __INT64_MAX__
-    #define __INT64_MAX__ 0x7fffffffffffffffLL
-    #undef __FLT32_DENORM_MIN__
-    #define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
-    #undef __SIG_ATOMIC_WIDTH__
-    #define __SIG_ATOMIC_WIDTH__ 32
-    #undef __INT_LEAST64_TYPE__
-    #define __INT_LEAST64_TYPE__ long long int
-    #undef __INT16_TYPE__
-    #define __INT16_TYPE__ short int
-    #undef __INT_LEAST8_TYPE__
-    #define __INT_LEAST8_TYPE__ signed char
-    #undef __FLT16_MAX__
-    #define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16
-    #undef __SIZEOF_INT__
-    #define __SIZEOF_INT__ 4
-    #undef __DEC32_MAX_EXP__
-    #define __DEC32_MAX_EXP__ 97
-    #undef __INT_FAST8_MAX__
-    #define __INT_FAST8_MAX__ 0x7f
-    #undef __FLT128_MAX__
-    #define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
-    #undef __INTPTR_MAX__
-    #define __INTPTR_MAX__ 0x7fffffff
-    #undef linux
-    #define linux 1
-    #undef __FLT64_HAS_QUIET_NAN__
-    #define __FLT64_HAS_QUIET_NAN__ 1
-    #undef __FLT32_MIN_10_EXP__
-    #define __FLT32_MIN_10_EXP__ (-37)
-    #undef __FLT32X_DIG__
-    #define __FLT32X_DIG__ 15
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 16
-    #undef __LDBL_MANT_DIG__
-    #define __LDBL_MANT_DIG__ 64
-    #undef __FLT64_HAS_INFINITY__
-    #define __FLT64_HAS_INFINITY__ 1
-    #undef __FLT64X_MAX__
-    #define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
-    #undef __FLT16_HAS_INFINITY__
-    #define __FLT16_HAS_INFINITY__ 1
-    #undef __SIG_ATOMIC_MIN__
-    #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
-    #undef __GCC_ATOMIC_LONG_LOCK_FREE
-    #define __GCC_ATOMIC_LONG_LOCK_FREE 2
-    #undef __DEC32_MANT_DIG__
-    #define __DEC32_MANT_DIG__ 7
-    #undef __FLT16_MANT_DIG__
-    #define __FLT16_MANT_DIG__ 11
-    #undef __k8__
-    #define __k8__ 1
-    #undef __INTPTR_TYPE__
-    #define __INTPTR_TYPE__ long
-    #undef __UINT16_TYPE__
-    #define __UINT16_TYPE__ short unsigned int
-    #undef __WCHAR_TYPE__
-    #define __WCHAR_TYPE__ int
-    #undef __pic__
-    #define __pic__ 2
-    #undef __UINTPTR_MAX__
-    #define __UINTPTR_MAX__ 0xffffffffU
-    #undef __INT_FAST64_WIDTH__
-    #define __INT_FAST64_WIDTH__ 64
-    #undef __INT_FAST64_MAX__
-    #define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
-    #undef __GCC_ATOMIC_TEST_AND_SET_TRUEVAL
-    #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
-    #undef __FLT_NORM_MAX__
-    #define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __FLT32_HAS_INFINITY__
-    #define __FLT32_HAS_INFINITY__ 1
-    #undef __FLT64X_MAX_EXP__
-    #define __FLT64X_MAX_EXP__ 16384
-    #undef __UINT_FAST64_TYPE__
-    #define __UINT_FAST64_TYPE__ long long unsigned int
-    #undef __INT_MAX__
-    #define __INT_MAX__ 0x7fff
-    #undef __linux__
-    #define __linux__ 1
-    #undef __INT64_TYPE__
-    #define __INT64_TYPE__ long long int
-    #undef __FLT_MAX_EXP__
-    #define __FLT_MAX_EXP__ 128
-    #undef __DBL_MANT_DIG__
-    #define __DBL_MANT_DIG__ 53
-    #undef __SIZEOF_FLOAT128__
-    #define __SIZEOF_FLOAT128__ 16
-    #undef __INT_LEAST64_MAX__
-    #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
-    #undef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
-    #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
-    #undef __DEC64_MIN__
-    #define __DEC64_MIN__ 1E-383DD
-    #undef __WINT_TYPE__
-    #define __WINT_TYPE__ unsigned long
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ unsigned long
-    #undef __SIZEOF_SHORT__
-    #define __SIZEOF_SHORT__ 2
-    #undef __FLT32_NORM_MAX__
-    #define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32
-    #undef __SSE__
-    #define __SSE__ 1
-    #undef __LDBL_MIN_EXP__
-    #define __LDBL_MIN_EXP__ (-16381)
-    #undef __FLT64_MAX__
-    #define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
-    #undef __WINT_WIDTH__
-    #define __WINT_WIDTH__ 32
-    #undef __INT_LEAST8_MAX__
-    #define __INT_LEAST8_MAX__ 0x7f
-    #undef __INT_LEAST64_WIDTH__
-    #define __INT_LEAST64_WIDTH__ 64
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 16384
-    #undef __FLT32X_MAX_10_EXP__
-    #define __FLT32X_MAX_10_EXP__ 308
-    #undef __FLT16_MIN__
-    #define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16
-    #undef __FLT64X_IS_IEC_60559__
-    #define __FLT64X_IS_IEC_60559__ 2
-    #undef __LDBL_MAX_10_EXP__
-    #define __LDBL_MAX_10_EXP__ 4932
-    #undef __ATOMIC_RELAXED
-    #define __ATOMIC_RELAXED 0
-    #undef __DBL_EPSILON__
-    #define __DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)
-    #undef __FLT128_MIN__
-    #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
-    #undef __UINT8_C
-    #define __UINT8_C(c) c
-    #undef __FLT64_MAX_EXP__
-    #define __FLT64_MAX_EXP__ 1024
-    #undef __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ long
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 2
-    #undef __UINT64_TYPE__
-    #define __UINT64_TYPE__ long long unsigned int
-    #undef __GNUC_PATCHLEVEL__
-    #define __GNUC_PATCHLEVEL__ 1
-    #undef __FLT128_NORM_MAX__
-    #define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128
-    #undef __FLT64_NORM_MAX__
-    #define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64
-    #undef __FLT128_HAS_QUIET_NAN__
-    #define __FLT128_HAS_QUIET_NAN__ 1
-    #undef __INTMAX_MAX__
-    #define __INTMAX_MAX__ 0x7fffffffffffffffLL
-    #undef __INT_FAST8_TYPE__
-    #define __INT_FAST8_TYPE__ signed char
-    #undef __FLT64X_MIN__
-    #define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
-    #undef __GNUC_STDC_INLINE__
-    #define __GNUC_STDC_INLINE__ 1
-    #undef __FLT64_HAS_DENORM__
-    #define __FLT64_HAS_DENORM__ 1
-    #undef __FLT32_EPSILON__
-    #define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
-    #undef __FLT16_HAS_DENORM__
-    #define __FLT16_HAS_DENORM__ 1
-    #undef __DBL_DECIMAL_DIG__
-    #define __DBL_DECIMAL_DIG__ 17
-    #undef __INT_FAST8_WIDTH__
-    #define __INT_FAST8_WIDTH__ 8
-    #undef __FXSR__
-    #define __FXSR__ 1
-    #undef __FLT32X_MAX__
-    #define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __DBL_NORM_MAX__
-    #define __DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)
-    #undef __BYTE_ORDER__
-    #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
-    #undef __GCC_DESTRUCTIVE_SIZE
-    #define __GCC_DESTRUCTIVE_SIZE 64
-    #undef __INTMAX_WIDTH__
-    #define __INTMAX_WIDTH__ 64
-    #undef __ORDER_BIG_ENDIAN__
-    #define __ORDER_BIG_ENDIAN__ 4321
-    #undef __UINT32_C
-    #define __UINT32_C(c) c ## UL
-    #undef __FLT_DENORM_MIN__
-    #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
-    #undef __INT8_MAX__
-    #define __INT8_MAX__ 0x7f
-    #undef __LONG_WIDTH__
-    #define __LONG_WIDTH__ 32
-    #undef __PIC__
-    #define __PIC__ 2
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ unsigned long
-    #undef __FLT32X_NORM_MAX__
-    #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned long
-    #undef __FLT_MAX__
-    #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __SSE2__
-    #define __SSE2__ 1
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ long
-    #undef __SIZEOF_DOUBLE__
-    #define __SIZEOF_DOUBLE__ 8
-    #undef __FLT_MIN_10_EXP__
-    #define __FLT_MIN_10_EXP__ (-37)
-    #undef __FLT64_MIN__
-    #define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
-    #undef __INT_LEAST32_WIDTH__
-    #define __INT_LEAST32_WIDTH__ 32
-    #undef __INTMAX_TYPE__
-    #define __INTMAX_TYPE__ long long int
-    #undef __DEC128_MAX_EXP__
-    #define __DEC128_MAX_EXP__ 6145
-    #undef __FLT32X_HAS_QUIET_NAN__
-    #define __FLT32X_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_CONSUME
-    #define __ATOMIC_CONSUME 1
-    #undef __GNUC_MINOR__
-    #define __GNUC_MINOR__ 2
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 32
-    #undef __UINTMAX_MAX__
-    #define __UINTMAX_MAX__ 0xffffffffffffffffULL
-    #undef __PIE__
-    #define __PIE__ 2
-    #undef __FLT32X_DENORM_MIN__
-    #define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
-    #undef __DBL_MAX_10_EXP__
-    #define __DBL_MAX_10_EXP__ 308
-    #undef __LDBL_DENORM_MIN__
-    #define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
-    #undef __INT16_C
-    #define __INT16_C(c) c
-    #undef __PTRDIFF_TYPE__
-    #define __PTRDIFF_TYPE__ int
-    #undef __ATOMIC_SEQ_CST
-    #define __ATOMIC_SEQ_CST 5
-    #undef __FLT32X_MIN_10_EXP__
-    #define __FLT32X_MIN_10_EXP__ (-307)
-    #undef __UINTPTR_TYPE__
-    #define __UINTPTR_TYPE__ unsigned int
-    #undef __DEC64_SUBNORMAL_MIN__
-    #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
-    #undef __DEC128_MANT_DIG__
-    #define __DEC128_MANT_DIG__ 34
-    #undef __LDBL_MIN_10_EXP__
-    #define __LDBL_MIN_10_EXP__ (-4931)
-    #undef __SIZEOF_LONG_LONG__
-    #define __SIZEOF_LONG_LONG__ 8
-    #undef __FLT128_DECIMAL_DIG__
-    #define __FLT128_DECIMAL_DIG__ 36
-    #undef __GCC_ATOMIC_LLONG_LOCK_FREE
-    #define __GCC_ATOMIC_LLONG_LOCK_FREE 2
-    #undef __FLT32_HAS_QUIET_NAN__
-    #define __FLT32_HAS_QUIET_NAN__ 1
-    #undef __FLT_DECIMAL_DIG__
-    #define __FLT_DECIMAL_DIG__ 9
-    #undef __UINT_FAST16_MAX__
-    #define __UINT_FAST16_MAX__ 0xffffU
-    #undef __LDBL_NORM_MAX__
-    #define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L
-    #undef __GCC_ATOMIC_SHORT_LOCK_FREE
-    #define __GCC_ATOMIC_SHORT_LOCK_FREE 2
-    #undef __UINT_FAST8_TYPE__
-    #define __UINT_FAST8_TYPE__ unsigned char
-    #undef __ATOMIC_ACQ_REL
-    #define __ATOMIC_ACQ_REL 4
-    #undef __ATOMIC_RELEASE
-    #define __ATOMIC_RELEASE 3
+custom_defs:
+    __SSP_STRONG__: '3'
+    __DBL_MIN_EXP__: '(-1021)'
+    __UINT_LEAST16_MAX__: '0xffff'
+    __FLT16_HAS_QUIET_NAN__: '1'
+    __ATOMIC_ACQUIRE: '2'
+    __FLT128_MAX_10_EXP__: '4932'
+    __FLT_MIN__: '1.17549435082228750796873653722224568e-38F'
+    __UINT_LEAST8_TYPE__: 'unsigned char'
+    __SIZEOF_FLOAT80__: '12'
+    __INTMAX_C(c): 'c ## LL'
+    __CHAR_BIT__: '8'
+    __UINT8_MAX__: '0xff'
+    __SCHAR_WIDTH__: '8'
+    __WINT_MAX__: '0xffffffffU'
+    __FLT32_MIN_EXP__: '(-125)'
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __SIZE_MAX__: '0xffffffffU'
+    __WCHAR_MAX__: '0x7fffffffL'
+    __FLT32X_DECIMAL_DIG__: '17'
+    __FLT_EVAL_METHOD__: '2'
+    __FLT64_DECIMAL_DIG__: '17'
+    __UINT_FAST64_MAX__: '0xffffffffffffffffULL'
+    __SIG_ATOMIC_TYPE__: 'int'
+    __DBL_MIN_10_EXP__: '(-307)'
+    __FINITE_MATH_ONLY__: '0'
+    __FLT32X_MAX_EXP__: '1024'
+    __FLT32_HAS_DENORM__: '1'
+    __UINT_FAST8_MAX__: '0xff'
+    __FLT32_MAX_10_EXP__: '38'
+    __DEC64_MAX_EXP__: '385'
+    __INT8_C(c): 'c'
+    __INT_LEAST8_WIDTH__: '8'
+    __UINT_LEAST64_MAX__: '0xffffffffffffffffULL'
+    __SHRT_MAX__: '0x7fff'
+    __LDBL_MAX__: '1.18973149535723176502126385303097021e+4932L'
+    __FLT64X_MAX_10_EXP__: '4932'
+    __LDBL_IS_IEC_60559__: '2'
+    __FLT64X_HAS_QUIET_NAN__: '1'
+    __UINT_LEAST8_MAX__: '0xff'
+    __LAHF_SAHF__: '1'
+    __FLT128_DENORM_MIN__: '6.47517511943802511092443895822764655e-4966F128'
+    __UINTMAX_TYPE__: 'long long unsigned int'
+    __linux: '1'
+    __DEC32_EPSILON__: '1E-6DF'
+    __FLT_EVAL_METHOD_TS_18661_3__: '2'
+    __unix: '1'
+    __UINT32_MAX__: '0xffffffffU'
+    __DBL_DENORM_MIN__: '((double)4.94065645841246544176568792868221372e-324L)'
+    __FLT128_MIN_EXP__: '(-16381)'
+    __WINT_MIN__: '0U'
+    __FLT128_MIN_10_EXP__: '(-4931)'
+    __FLT32X_IS_IEC_60559__: '2'
+    __INT_LEAST16_WIDTH__: '16'
+    __SCHAR_MAX__: '0x7f'
+    __FLT128_MANT_DIG__: '113'
+    __WCHAR_MIN__: '(-__WCHAR_MAX__ - 1)'
+    __INT64_C(c): 'c ## LL'
+    __FLT32X_MANT_DIG__: '53'
+    __FLT64X_EPSILON__: '1.08420217248550443400745280086994171e-19F64x'
+    __DEC64_MIN_EXP__: '(-382)'
+    __DBL_DIG__: '15'
+    __FLT32_DIG__: '6'
+    __FLT_EPSILON__: '1.19209289550781250000000000000000000e-7F'
+    __SHRT_WIDTH__: '16'
+    __FLT32_IS_IEC_60559__: '2'
+    __LDBL_MIN__: '3.36210314311209350626267781732175260e-4932L'
+    __DBL_IS_IEC_60559__: '2'
+    __DEC32_MAX__: '9.999999E96DF'
+    __FLT64X_DENORM_MIN__: '3.64519953188247460252840593361941982e-4951F64x'
+    __FLT32X_HAS_INFINITY__: '1'
+    __INT32_MAX__: '0x7fffffff'
+    __FLT16_DIG__: '3'
+    __unix__: '1'
+    __INT_WIDTH__: '16'
+    __SIZEOF_LONG__: '4'
+    __UINT16_C(c): 'c'
+    __DECIMAL_DIG__: '21'
+    __FLT64_EPSILON__: '2.22044604925031308084726333618164062e-16F64'
+    __gnu_linux__: '1'
+    __FLT128_IS_IEC_60559__: '2'
+    __FLT64X_MIN_10_EXP__: '(-4931)'
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __FLT16_MIN_EXP__: '(-13)'
+    __FLT64_MANT_DIG__: '53'
+    __FLT64X_MANT_DIG__: '64'
+    __GNUC__: '12'
+    __pie__: '2'
+    __MMX__: '1'
+    __FLT_HAS_DENORM__: '1'
+    __SIZEOF_LONG_DOUBLE__: '12'
+    __BIGGEST_ALIGNMENT__: '16'
+    __FLT64_MAX_10_EXP__: '308'
+    __FLT16_MAX_10_EXP__: '4'
+    __DBL_MAX__: '((double)1.79769313486231570814527423731704357e+308L)'
+    __INT_FAST32_MAX__: '0x7fffffff'
+    __DBL_HAS_INFINITY__: '1'
+    __SIZEOF_FLOAT__: '4'
+    __HAVE_SPECULATION_SAFE_VALUE: '1'
+    __DEC32_MIN_EXP__: '(-94)'
+    __INTPTR_WIDTH__: '32'
+    __FLT64X_HAS_INFINITY__: '1'
+    __UINT_LEAST32_MAX__: '0xffffffffU'
+    __FLT32X_HAS_DENORM__: '1'
+    __INT_FAST16_TYPE__: 'int'
+    __LDBL_HAS_DENORM__: '1'
+    __SEG_GS: '1'
+    __FLT128_HAS_INFINITY__: '1'
+    __DEC32_MIN__: '1E-95DF'
+    __DBL_MAX_EXP__: '1024'
+    __WCHAR_WIDTH__: '16'
+    __FLT32_MAX__: '3.40282346638528859811704183484516925e+38F32'
+    __DEC128_EPSILON__: '1E-33DL'
+    __FLT16_DECIMAL_DIG__: '5'
+    __ATOMIC_HLE_RELEASE: '131072'
+    __PTRDIFF_MAX__: '0x7fffffff'
+    __ATOMIC_HLE_ACQUIRE: '65536'
+    __LONG_LONG_MAX__: '0x7fffffffffffffffLL'
+    __SIZEOF_SIZE_T__: '2'
+    __FLT64X_MIN_EXP__: '(-16381)'
+    __SIZEOF_WINT_T__: '4'
+    __LONG_LONG_WIDTH__: '64'
+    __FLT32_MAX_EXP__: '128'
+    __GXX_ABI_VERSION: '1017'
+    __FLT_MIN_EXP__: '(-125)'
+    __INT16_MAX__: '0x7fff'
+    __INT_FAST64_TYPE__: 'long long int'
+    __FLT64_DENORM_MIN__: '4.94065645841246544176568792868221372e-324F64'
+    __DBL_MIN__: '((double)2.22507385850720138309023271733240406e-308L)'
+    __FLT16_DENORM_MIN__: '5.96046447753906250000000000000000000e-8F16'
+    __FLT128_EPSILON__: '1.92592994438723585305597794258492732e-34F128'
+    __FLT64X_NORM_MAX__: '1.18973149535723176502126385303097021e+4932F64x'
+    __SIZEOF_POINTER__: '4'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __FLT32X_EPSILON__: '2.22044604925031308084726333618164062e-16F32x'
+    __DECIMAL_BID_FORMAT__: '1'
+    __FLT64_MIN_EXP__: '(-1021)'
+    __FLT64_MIN_10_EXP__: '(-307)'
+    __FLT16_MIN_10_EXP__: '(-4)'
+    __FLT64X_DECIMAL_DIG__: '21'
+    __DEC128_MIN__: '1E-6143DL'
+    __REGISTER_PREFIX__: ''
+    __UINT16_MAX__: '0xffff'
+    __DBL_HAS_DENORM__: '1'
+    __LDBL_HAS_INFINITY__: '1'
+    __FLT32_MIN__: '1.17549435082228750796873653722224568e-38F32'
+    __UINT8_TYPE__: 'unsigned char'
+    __FLT_DIG__: '6'
+    __NO_INLINE__: '1'
+    __DEC_EVAL_METHOD__: '2'
+    __DEC128_MAX__: '9.999999999999999999999999999999999E6144DL'
+    __i386: '1'
+    __FLT_MANT_DIG__: '24'
+    __LDBL_DECIMAL_DIG__: '21'
+    __VERSION__: '"12.2.1 20230201"'
+    __UINT64_C(c): 'c ## ULL'
+    _STDC_PREDEF_H: '1'
+    __INT_LEAST32_MAX__: '0x7fffffff'
+    __FLT128_MAX_EXP__: '16384'
+    __FLT32_MANT_DIG__: '24'
+    __FLOAT_WORD_ORDER__: '__ORDER_LITTLE_ENDIAN__'
+    __FLT32X_MIN_EXP__: '(-1021)'
+    i386: '1'
+    __FLT128_HAS_DENORM__: '1'
+    __FLT32_DECIMAL_DIG__: '9'
+    __FLT128_DIG__: '33'
+    __INT32_C(c): 'c ## L'
+    __DEC64_EPSILON__: '1E-15DD'
+    __ORDER_PDP_ENDIAN__: '3412'
+    __DEC128_MIN_EXP__: '(-6142)'
+    __code_model_32__: '1'
+    __INT_FAST32_TYPE__: 'long'
+    __UINT_LEAST16_TYPE__: 'short unsigned int'
+    unix: '1'
+    __i386__: '1'
+    __SIZE_TYPE__: 'unsigned int'
+    __UINT64_MAX__: '0xffffffffffffffffULL'
+    __FLT_IS_IEC_60559__: '2'
+    __GNUC_WIDE_EXECUTION_CHARSET_NAME: '"UTF-32LE"'
+    __FLT64X_DIG__: '18'
+    __INT8_TYPE__: 'signed char'
+    __ELF__: '1'
+    __UINT32_TYPE__: 'unsigned long'
+    __FLT_RADIX__: '2'
+    __INT_LEAST16_TYPE__: 'short int'
+    __LDBL_EPSILON__: '1.08420217248550443400745280086994171e-19L'
+    __UINTMAX_C(c): 'c ## ULL'
+    __k8: '1'
+    __FLT32X_MIN__: '2.22507385850720138309023271733240406e-308F32x'
+    __SIG_ATOMIC_MAX__: '0x7fffffff'
+    __USER_LABEL_PREFIX__: ''
+    __SIZEOF_PTRDIFF_T__: '4'
+    __LDBL_DIG__: '18'
+    __FLT64_IS_IEC_60559__: '2'
+    __FLT16_IS_IEC_60559__: '2'
+    __FLT16_MAX_EXP__: '16'
+    __DEC32_SUBNORMAL_MIN__: '0.000001E-95DF'
+    __INT_FAST16_MAX__: '0x7fffffff'
+    __FLT64_DIG__: '15'
+    __UINT_FAST32_MAX__: '0xffffffffU'
+    __UINT_LEAST64_TYPE__: 'long long unsigned int'
+    __FLT16_EPSILON__: '9.76562500000000000000000000000000000e-4F16'
+    __ILP32__: '1'
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MAX_10_EXP__: '38'
+    __LONG_MAX__: '0x7fffffffL'
+    __FLT64X_HAS_DENORM__: '1'
+    __DEC128_SUBNORMAL_MIN__: '0.000000000000000000000000000000001E-6143DL'
+    __FLT_HAS_INFINITY__: '1'
+    __GNUC_EXECUTION_CHARSET_NAME: '"UTF-8"'
+    _ILP32: '1'
+    __UINT_FAST16_TYPE__: 'unsigned int'
+    __DEC64_MAX__: '9.999999999999999E384DD'
+    __INT_FAST32_WIDTH__: '32'
+    __CHAR16_TYPE__: 'short unsigned int'
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __SIZE_WIDTH__: '32'
+    __SEG_FS: '1'
+    __INT_LEAST16_MAX__: '0x7fff'
+    __FLT16_NORM_MAX__: '6.55040000000000000000000000000000000e+4F16'
+    __DEC64_MANT_DIG__: '16'
+    __INT64_MAX__: '0x7fffffffffffffffLL'
+    __FLT32_DENORM_MIN__: '1.40129846432481707092372958328991613e-45F32'
+    __SIG_ATOMIC_WIDTH__: '32'
+    __INT_LEAST64_TYPE__: 'long long int'
+    __INT16_TYPE__: 'short int'
+    __INT_LEAST8_TYPE__: 'signed char'
+    __FLT16_MAX__: '6.55040000000000000000000000000000000e+4F16'
+    __SIZEOF_INT__: '4'
+    __DEC32_MAX_EXP__: '97'
+    __INT_FAST8_MAX__: '0x7f'
+    __FLT128_MAX__: '1.18973149535723176508575932662800702e+4932F128'
+    __INTPTR_MAX__: '0x7fffffff'
+    linux: '1'
+    __FLT64_HAS_QUIET_NAN__: '1'
+    __FLT32_MIN_10_EXP__: '(-37)'
+    __FLT32X_DIG__: '15'
+    __PTRDIFF_WIDTH__: '16'
+    __LDBL_MANT_DIG__: '64'
+    __FLT64_HAS_INFINITY__: '1'
+    __FLT64X_MAX__: '1.18973149535723176502126385303097021e+4932F64x'
+    __FLT16_HAS_INFINITY__: '1'
+    __SIG_ATOMIC_MIN__: '(-__SIG_ATOMIC_MAX__ - 1)'
+    __DEC32_MANT_DIG__: '7'
+    __FLT16_MANT_DIG__: '11'
+    __k8__: '1'
+    __INTPTR_TYPE__: 'long'
+    __UINT16_TYPE__: 'short unsigned int'
+    __WCHAR_TYPE__: 'int'
+    __pic__: '2'
+    __UINTPTR_MAX__: '0xffffffffU'
+    __INT_FAST64_WIDTH__: '64'
+    __INT_FAST64_MAX__: '0x7fffffffffffffffLL'
+    __FLT_NORM_MAX__: '3.40282346638528859811704183484516925e+38F'
+    __FLT32_HAS_INFINITY__: '1'
+    __FLT64X_MAX_EXP__: '16384'
+    __UINT_FAST64_TYPE__: 'long long unsigned int'
+    __INT_MAX__: '0x7fff'
+    __linux__: '1'
+    __INT64_TYPE__: 'long long int'
+    __FLT_MAX_EXP__: '128'
+    __DBL_MANT_DIG__: '53'
+    __SIZEOF_FLOAT128__: '16'
+    __INT_LEAST64_MAX__: '0x7fffffffffffffffLL'
+    __DEC64_MIN__: '1E-383DD'
+    __WINT_TYPE__: 'unsigned long'
+    __UINT_LEAST32_TYPE__: 'unsigned long'
+    __SIZEOF_SHORT__: '2'
+    __FLT32_NORM_MAX__: '3.40282346638528859811704183484516925e+38F32'
+    __SSE__: '1'
+    __LDBL_MIN_EXP__: '(-16381)'
+    __FLT64_MAX__: '1.79769313486231570814527423731704357e+308F64'
+    __WINT_WIDTH__: '32'
+    __INT_LEAST8_MAX__: '0x7f'
+    __INT_LEAST64_WIDTH__: '64'
+    __LDBL_MAX_EXP__: '16384'
+    __FLT32X_MAX_10_EXP__: '308'
+    __FLT16_MIN__: '6.10351562500000000000000000000000000e-5F16'
+    __FLT64X_IS_IEC_60559__: '2'
+    __LDBL_MAX_10_EXP__: '4932'
+    __ATOMIC_RELAXED: '0'
+    __DBL_EPSILON__: '((double)2.22044604925031308084726333618164062e-16L)'
+    __FLT128_MIN__: '3.36210314311209350626267781732175260e-4932F128'
+    __UINT8_C(c): 'c'
+    __FLT64_MAX_EXP__: '1024'
+    __INT_LEAST32_TYPE__: 'long'
+    __SIZEOF_WCHAR_T__: '2'
+    __UINT64_TYPE__: 'long long unsigned int'
+    __GNUC_PATCHLEVEL__: '1'
+    __FLT128_NORM_MAX__: '1.18973149535723176508575932662800702e+4932F128'
+    __FLT64_NORM_MAX__: '1.79769313486231570814527423731704357e+308F64'
+    __FLT128_HAS_QUIET_NAN__: '1'
+    __INTMAX_MAX__: '0x7fffffffffffffffLL'
+    __INT_FAST8_TYPE__: 'signed char'
+    __FLT64X_MIN__: '3.36210314311209350626267781732175260e-4932F64x'
+    __GNUC_STDC_INLINE__: '1'
+    __FLT64_HAS_DENORM__: '1'
+    __FLT32_EPSILON__: '1.19209289550781250000000000000000000e-7F32'
+    __FLT16_HAS_DENORM__: '1'
+    __DBL_DECIMAL_DIG__: '17'
+    __INT_FAST8_WIDTH__: '8'
+    __FXSR__: '1'
+    __FLT32X_MAX__: '1.79769313486231570814527423731704357e+308F32x'
+    __DBL_NORM_MAX__: '((double)1.79769313486231570814527423731704357e+308L)'
+    __BYTE_ORDER__: '__ORDER_LITTLE_ENDIAN__'
+    __INTMAX_WIDTH__: '64'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __UINT32_C(c): 'c ## UL'
+    __FLT_DENORM_MIN__: '1.40129846432481707092372958328991613e-45F'
+    __INT8_MAX__: '0x7f'
+    __LONG_WIDTH__: '32'
+    __PIC__: '2'
+    __UINT_FAST32_TYPE__: 'unsigned long'
+    __FLT32X_NORM_MAX__: '1.79769313486231570814527423731704357e+308F32x'
+    __CHAR32_TYPE__: 'unsigned long'
+    __FLT_MAX__: '3.40282346638528859811704183484516925e+38F'
+    __SSE2__: '1'
+    __INT32_TYPE__: 'long'
+    __SIZEOF_DOUBLE__: '8'
+    __FLT_MIN_10_EXP__: '(-37)'
+    __FLT64_MIN__: '2.22507385850720138309023271733240406e-308F64'
+    __INT_LEAST32_WIDTH__: '32'
+    __INTMAX_TYPE__: 'long long int'
+    __DEC128_MAX_EXP__: '6145'
+    __FLT32X_HAS_QUIET_NAN__: '1'
+    __ATOMIC_CONSUME: '1'
+    __GNUC_MINOR__: '2'
+    __INT_FAST16_WIDTH__: '32'
+    __UINTMAX_MAX__: '0xffffffffffffffffULL'
+    __PIE__: '2'
+    __FLT32X_DENORM_MIN__: '4.94065645841246544176568792868221372e-324F32x'
+    __DBL_MAX_10_EXP__: '308'
+    __LDBL_DENORM_MIN__: '3.64519953188247460252840593361941982e-4951L'
+    __INT16_C(c): 'c'
+    __PTRDIFF_TYPE__: 'int'
+    __ATOMIC_SEQ_CST: '5'
+    __FLT32X_MIN_10_EXP__: '(-307)'
+    __UINTPTR_TYPE__: 'unsigned int'
+    __DEC64_SUBNORMAL_MIN__: '0.000000000000001E-383DD'
+    __DEC128_MANT_DIG__: '34'
+    __LDBL_MIN_10_EXP__: '(-4931)'
+    __SIZEOF_LONG_LONG__: '8'
+    __FLT128_DECIMAL_DIG__: '36'
+    __FLT32_HAS_QUIET_NAN__: '1'
+    __FLT_DECIMAL_DIG__: '9'
+    __UINT_FAST16_MAX__: '0xffffU'
+    __LDBL_NORM_MAX__: '1.18973149535723176502126385303097021e+4932L'
+    __UINT_FAST8_TYPE__: 'unsigned char'
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_RELEASE: '3'
 
 errno:
     e2big: '7'
@@ -880,49 +535,3 @@ errno:
     ewouldblock: '11'
     exdev: '18'
     exfull: '54'
-has__builtin_va_list: true
-int_fast8_t: signed char
-int_fast16_t: signed int
-int_fast32_t: long
-int_fast64_t: long long
-intptr_t: long
-little_endian: true
-nsig: '65'
-ptrdiff_t: int
-sig_atomic_t: int
-size_t: unsigned int
-sizeof_double: 8
-sizeof_float: 4
-sizeof_fun: 1
-sizeof_int: 2
-sizeof_long: 4
-sizeof_longdouble: 16
-sizeof_longlong: 8
-sizeof_ptr: 4
-sizeof_short: 2
-sizeof_void: 1
-ssize_t: int
-time_t: long
-uint_fast8_t: unsigned char
-uint_fast16_t: unsigned int
-uint_fast32_t: unsigned long
-uint_fast64_t: unsigned long long
-uintptr_t: unsigned long
-version: none
-wchar_t: int
-weof: (0xffffffffUL)
-wint_t: unsigned long
-wordsize: '16'
-posix_version: '200809L'
-bufsiz: '8192'
-eof: '(-1)'
-fopen_max: '16'
-filename_max: '2048'
-path_max: '256'
-host_name_max: '64'
-tty_name_max: '32'
-l_tmpnam: '2048'
-tmp_max: '0xFFFFFFFF'
-rand_max: '32767'
-mb_cur_max: '((size_t)16)'
-machdep_name: machdep_gcc_x86_16
diff --git a/share/machdeps/machdep_msvc_x86_64.yaml b/share/machdeps/machdep_msvc_x86_64.yaml
index 59f2f5d98f1d29548c658c44e8c2403e5dda32a4..d6177b4a8575d620eb6bb0ecb03158a72be5b14f 100644
--- a/share/machdeps/machdep_msvc_x86_64.yaml
+++ b/share/machdeps/machdep_msvc_x86_64.yaml
@@ -13,35 +13,72 @@ char_is_unsigned: false
 compiler: msvc
 cpp_arch_flags:
 - -m64
-custom_defs: |
-  #define _MSC_FULL_VER 160040219
-  #define _MSC_VER 1600
-  #undef __ptr64
-  #define __ptr64
-  #undef __ptr32
-  #define __ptr32
-  #undef __unaligned
-  #define __unaligned
-  #undef __cdecl
-  #define __cdecl
-  #undef __possibly_notnullterminated
-  #define __possibly_notnullterminated
-  #ifndef errno_t
-  # define errno_t int
-  # define _ERRNO_T_DEFINED
-  #endif
-  #ifndef _WIN64
-  # define _WIN64 1
-  #endif
-  #ifndef _AMD64_
-  # define _AMD64_ 1
-  #endif
-  #ifndef _M_AMD64
-  # define _M_AMD64 1
-  #endif
-  #ifndef _M_X64
-  # define _M_X64 1
-  #endif
+has__builtin_va_list: false
+int_fast8_t: signed char
+int_fast16_t: signed int
+int_fast32_t: signed int
+int_fast64_t: signed long long
+intptr_t: signed long long
+little_endian: true
+nsig: '23'
+ptrdiff_t: long long
+# NB: wasn't defined at all in old __fc_machdep.h
+sig_atomic_t: int
+size_t: unsigned long long
+sizeof_double: 8
+sizeof_float: 4
+sizeof_fun: -1
+sizeof_int: 4
+sizeof_long: 4
+sizeof_longdouble: 8
+sizeof_longlong: 8
+sizeof_ptr: 8
+sizeof_short: 2
+sizeof_void: 0
+ssize_t: long long
+time_t: long long
+uint_fast8_t: unsigned char
+uint_fast16_t: unsigned int
+uint_fast32_t: unsigned int
+uint_fast64_t: unsigned long long
+uintptr_t: unsigned long long
+version: MSVC - X86-64bits mode
+wchar_t: unsigned short
+weof: (0xffffU)
+wint_t: unsigned short
+wordsize: '64'
+posix_version: ''
+
+# NB: except for l_tmpnam, the following macro are not defined in the old
+# __fc_machdep.h in the MSVC_X86_64 section. The values below have thus been 
+# taken from gnu
+bufsiz: '8192'
+eof: '(-1)'
+fopen_max: '20'
+host_name_max: '255'
+path_max: '256'
+tty_name_max: '32'
+filename_max: '2048'
+l_tmpnam: '20'
+tmp_max: '0xFFFFFFFF'
+rand_max: '32767'
+mb_cur_max: '((size_t)16)'
+machdep_name: machdep_msvc_x86_64
+
+custom_defs:
+    _MSC_FULL_VER: '160040219'
+    _MSC_VER: '1600'
+    __ptr64: ''
+    __ptr32: ''
+    __unaligned: ''
+    __cdecl: ''
+    __possibly_notnullterminated: ''
+    errno_t: int
+    _ERRNO_T_DEFINED: ''
+    _WIN64: '1'
+    _AMD64_: '1'
+    _M_AMD64: '1'
+    _M_X64: '1'
 
 errno:
     eperm: '1'
@@ -123,53 +160,3 @@ errno:
     ecanceled: '105'
     eownerdead: '133'
     enotrecoverable: '127'
-has__builtin_va_list: false
-int_fast8_t: signed char
-int_fast16_t: signed int
-int_fast32_t: signed int
-int_fast64_t: signed long long
-intptr_t: signed long long
-little_endian: true
-nsig: '23'
-ptrdiff_t: long long
-# NB: wasn't defined at all in old __fc_machdep.h
-sig_atomic_t: int
-size_t: unsigned long long
-sizeof_double: 8
-sizeof_float: 4
-sizeof_fun: -1
-sizeof_int: 4
-sizeof_long: 4
-sizeof_longdouble: 8
-sizeof_longlong: 8
-sizeof_ptr: 8
-sizeof_short: 2
-sizeof_void: 0
-ssize_t: long long
-time_t: long long
-uint_fast8_t: unsigned char
-uint_fast16_t: unsigned int
-uint_fast32_t: unsigned int
-uint_fast64_t: unsigned long long
-uintptr_t: unsigned long long
-version: MSVC - X86-64bits mode
-wchar_t: unsigned short
-weof: (0xffffU)
-wint_t: unsigned short
-wordsize: '64'
-posix_version: ''
-# NB: except for l_tmpnam, the corresponding macro are not defined in the old
-# __fc_machdep.h in the MSVC_X86_64 section. The values below have thus been 
-# taken from gnu
-bufsiz: '8192'
-eof: '(-1)'
-fopen_max: '20'
-host_name_max: '255'
-path_max: '256'
-tty_name_max: '32'
-filename_max: '2048'
-l_tmpnam: '20'
-tmp_max: '0xFFFFFFFF'
-rand_max: '32767'
-mb_cur_max: '((size_t)16)'
-machdep_name: machdep_msvc_x86_64
diff --git a/share/machdeps/machdep_x86_16.yaml b/share/machdeps/machdep_x86_16.yaml
index 70f9b4bae3ca3d9ef817a5e5b66821de0120e44a..e241dff2119d4659fd4fcb231f8301ea15dffe19 100644
--- a/share/machdeps/machdep_x86_16.yaml
+++ b/share/machdeps/machdep_x86_16.yaml
@@ -13,707 +13,404 @@ char_is_unsigned: false
 compiler: generic
 cpp_arch_flags:
 - -m16
+has__builtin_va_list: true
+int_fast8_t: signed char
+int_fast16_t: signed int
+int_fast32_t: long
+int_fast64_t: long long
+intptr_t: long
+little_endian: true
+nsig: '65'
+ptrdiff_t: int
+sig_atomic_t: int
+size_t: unsigned int
+sizeof_double: 8
+sizeof_float: 4
+sizeof_fun: -1
+sizeof_int: 2
+sizeof_long: 4
+sizeof_longdouble: 16
+sizeof_longlong: 8
+sizeof_ptr: 4
+sizeof_short: 2
+sizeof_void: -1
+ssize_t: int
+time_t: long
+uint_fast8_t: unsigned char
+uint_fast16_t: unsigned int
+uint_fast32_t: unsigned long
+uint_fast64_t: unsigned long long
+uintptr_t: unsigned long
+version: none
+wchar_t: int
+weof: (0xffffffffUL)
+wint_t: unsigned long
+wordsize: '16'
+posix_version: '200809L'
+bufsiz: '8192'
+eof: '(-1)'
+fopen_max: '16'
+filename_max: '2048'
+path_max: '256'
+host_name_max: '64'
+tty_name_max: '32'
+l_tmpnam: '2048'
+tmp_max: '0xFFFFFFFF'
+rand_max: '32767'
+mb_cur_max: '((size_t)16)'
+machdep_name: machdep_x86_16
 
 # adapted from the builtin macros of gcc_x86_32
-custom_defs: |
-    #undef __SSP_STRONG__
-    #define __SSP_STRONG__ 3
-    #undef __DBL_MIN_EXP__
-    #define __DBL_MIN_EXP__ (-1021)
-    #undef __UINT_LEAST16_MAX__
-    #define __UINT_LEAST16_MAX__ 0xffff
-    #undef __FLT16_HAS_QUIET_NAN__
-    #define __FLT16_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_ACQUIRE
-    #define __ATOMIC_ACQUIRE 2
-    #undef __FLT128_MAX_10_EXP__
-    #define __FLT128_MAX_10_EXP__ 4932
-    #undef __FLT_MIN__
-    #define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
-    #undef __UINT_LEAST8_TYPE__
-    #define __UINT_LEAST8_TYPE__ unsigned char
-    #undef __SIZEOF_FLOAT80__
-    #define __SIZEOF_FLOAT80__ 12
-    #undef __INTMAX_C
-    #define __INTMAX_C(c) c ## LL
-    #undef __CHAR_BIT__
-    #define __CHAR_BIT__ 8
-    #undef __UINT8_MAX__
-    #define __UINT8_MAX__ 0xff
-    #undef __SCHAR_WIDTH__
-    #define __SCHAR_WIDTH__ 8
-    #undef __WINT_MAX__
-    #define __WINT_MAX__ 0xffffffffU
-    #undef __FLT32_MIN_EXP__
-    #define __FLT32_MIN_EXP__ (-125)
-    #undef __ORDER_LITTLE_ENDIAN__
-    #define __ORDER_LITTLE_ENDIAN__ 1234
-    #undef __SIZE_MAX__
-    #define __SIZE_MAX__ 0xffffffffU
-    #undef __WCHAR_MAX__
-    #define __WCHAR_MAX__ 0x7fffffffL
-    #undef __FLT32X_DECIMAL_DIG__
-    #define __FLT32X_DECIMAL_DIG__ 17
-    #undef __FLT_EVAL_METHOD__
-    #define __FLT_EVAL_METHOD__ 2
-    #undef __FLT64_DECIMAL_DIG__
-    #define __FLT64_DECIMAL_DIG__ 17
-    #undef __UINT_FAST64_MAX__
-    #define __UINT_FAST64_MAX__ 0xffffffffffffffffULL
-    #undef __SIG_ATOMIC_TYPE__
-    #define __SIG_ATOMIC_TYPE__ int
-    #undef __DBL_MIN_10_EXP__
-    #define __DBL_MIN_10_EXP__ (-307)
-    #undef __FINITE_MATH_ONLY__
-    #define __FINITE_MATH_ONLY__ 0
-    #undef __FLT32X_MAX_EXP__
-    #define __FLT32X_MAX_EXP__ 1024
-    #undef __FLT32_HAS_DENORM__
-    #define __FLT32_HAS_DENORM__ 1
-    #undef __UINT_FAST8_MAX__
-    #define __UINT_FAST8_MAX__ 0xff
-    #undef __FLT32_MAX_10_EXP__
-    #define __FLT32_MAX_10_EXP__ 38
-    #undef __DEC64_MAX_EXP__
-    #define __DEC64_MAX_EXP__ 385
-    #undef __INT8_C
-    #define __INT8_C(c) c
-    #undef __INT_LEAST8_WIDTH__
-    #define __INT_LEAST8_WIDTH__ 8
-    #undef __UINT_LEAST64_MAX__
-    #define __UINT_LEAST64_MAX__ 0xffffffffffffffffULL
-    #undef __SHRT_MAX__
-    #define __SHRT_MAX__ 0x7fff
-    #undef __LDBL_MAX__
-    #define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
-    #undef __FLT64X_MAX_10_EXP__
-    #define __FLT64X_MAX_10_EXP__ 4932
-    #undef __LDBL_IS_IEC_60559__
-    #define __LDBL_IS_IEC_60559__ 2
-    #undef __FLT64X_HAS_QUIET_NAN__
-    #define __FLT64X_HAS_QUIET_NAN__ 1
-    #undef __UINT_LEAST8_MAX__
-    #define __UINT_LEAST8_MAX__ 0xff
-    #undef __LAHF_SAHF__
-    #define __LAHF_SAHF__ 1
-    #undef __FLT128_DENORM_MIN__
-    #define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
-    #undef __UINTMAX_TYPE__
-    #define __UINTMAX_TYPE__ long long unsigned int
-    #undef __linux
-    #define __linux 1
-    #undef __DEC32_EPSILON__
-    #define __DEC32_EPSILON__ 1E-6DF
-    #undef __FLT_EVAL_METHOD_TS_18661_3__
-    #define __FLT_EVAL_METHOD_TS_18661_3__ 2
-    #undef __unix
-    #define __unix 1
-    #undef __UINT32_MAX__
-    #define __UINT32_MAX__ 0xffffffffU
-    #undef __DBL_DENORM_MIN__
-    #define __DBL_DENORM_MIN__ ((double)4.94065645841246544176568792868221372e-324L)
-    #undef __FLT128_MIN_EXP__
-    #define __FLT128_MIN_EXP__ (-16381)
-    #undef __WINT_MIN__
-    #define __WINT_MIN__ 0U
-    #undef __FLT128_MIN_10_EXP__
-    #define __FLT128_MIN_10_EXP__ (-4931)
-    #undef __FLT32X_IS_IEC_60559__
-    #define __FLT32X_IS_IEC_60559__ 2
-    #undef __INT_LEAST16_WIDTH__
-    #define __INT_LEAST16_WIDTH__ 16
-    #undef __SCHAR_MAX__
-    #define __SCHAR_MAX__ 0x7f
-    #undef __FLT128_MANT_DIG__
-    #define __FLT128_MANT_DIG__ 113
-    #undef __WCHAR_MIN__
-    #define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
-    #undef __INT64_C
-    #define __INT64_C(c) c ## LL
-    #undef __FLT32X_MANT_DIG__
-    #define __FLT32X_MANT_DIG__ 53
-    #undef __FLT64X_EPSILON__
-    #define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
-    #undef __DEC64_MIN_EXP__
-    #define __DEC64_MIN_EXP__ (-382)
-    #undef __DBL_DIG__
-    #define __DBL_DIG__ 15
-    #undef __FLT32_DIG__
-    #define __FLT32_DIG__ 6
-    #undef __FLT_EPSILON__
-    #define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
-    #undef __SHRT_WIDTH__
-    #define __SHRT_WIDTH__ 16
-    #undef __FLT32_IS_IEC_60559__
-    #define __FLT32_IS_IEC_60559__ 2
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
-    #undef __DBL_IS_IEC_60559__
-    #define __DBL_IS_IEC_60559__ 2
-    #undef __DEC32_MAX__
-    #define __DEC32_MAX__ 9.999999E96DF
-    #undef __FLT64X_DENORM_MIN__
-    #define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
-    #undef __FLT32X_HAS_INFINITY__
-    #define __FLT32X_HAS_INFINITY__ 1
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 0x7fffffff
-    #undef __FLT16_DIG__
-    #define __FLT16_DIG__ 3
-    #undef __unix__
-    #define __unix__ 1
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 16
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 4
-    #undef __UINT16_C
-    #define __UINT16_C(c) c
-    #undef __DECIMAL_DIG__
-    #define __DECIMAL_DIG__ 21
-    #undef __FLT64_EPSILON__
-    #define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
-    #undef __gnu_linux__
-    #define __gnu_linux__ 1
-    #undef __FLT128_IS_IEC_60559__
-    #define __FLT128_IS_IEC_60559__ 2
-    #undef __FLT64X_MIN_10_EXP__
-    #define __FLT64X_MIN_10_EXP__ (-4931)
-    #undef __LDBL_HAS_QUIET_NAN__
-    #define __LDBL_HAS_QUIET_NAN__ 1
-    #undef __FLT16_MIN_EXP__
-    #define __FLT16_MIN_EXP__ (-13)
-    #undef __FLT64_MANT_DIG__
-    #define __FLT64_MANT_DIG__ 53
-    #undef __FLT64X_MANT_DIG__
-    #define __FLT64X_MANT_DIG__ 64
-    #undef __GNUC__
-    #define __GNUC__ 12
-    #undef __pie__
-    #define __pie__ 2
-    #undef __MMX__
-    #define __MMX__ 1
-    #undef __FLT_HAS_DENORM__
-    #define __FLT_HAS_DENORM__ 1
-    #undef __SIZEOF_LONG_DOUBLE__
-    #define __SIZEOF_LONG_DOUBLE__ 12
-    #undef __BIGGEST_ALIGNMENT__
-    #define __BIGGEST_ALIGNMENT__ 16
-    #undef __FLT64_MAX_10_EXP__
-    #define __FLT64_MAX_10_EXP__ 308
-    #undef __FLT16_MAX_10_EXP__
-    #define __FLT16_MAX_10_EXP__ 4
-    #undef __DBL_MAX__
-    #define __DBL_MAX__ ((double)1.79769313486231570814527423731704357e+308L)
-    #undef __INT_FAST32_MAX__
-    #define __INT_FAST32_MAX__ 0x7fffffff
-    #undef __DBL_HAS_INFINITY__
-    #define __DBL_HAS_INFINITY__ 1
-    #undef __SIZEOF_FLOAT__
-    #define __SIZEOF_FLOAT__ 4
-    #undef __HAVE_SPECULATION_SAFE_VALUE
-    #define __HAVE_SPECULATION_SAFE_VALUE 1
-    #undef __DEC32_MIN_EXP__
-    #define __DEC32_MIN_EXP__ (-94)
-    #undef __INTPTR_WIDTH__
-    #define __INTPTR_WIDTH__ 32
-    #undef __FLT64X_HAS_INFINITY__
-    #define __FLT64X_HAS_INFINITY__ 1
-    #undef __UINT_LEAST32_MAX__
-    #define __UINT_LEAST32_MAX__ 0xffffffffU
-    #undef __FLT32X_HAS_DENORM__
-    #define __FLT32X_HAS_DENORM__ 1
-    #undef __INT_FAST16_TYPE__
-    #define __INT_FAST16_TYPE__ int
-    #undef __LDBL_HAS_DENORM__
-    #define __LDBL_HAS_DENORM__ 1
-    #undef __SEG_GS
-    #define __SEG_GS 1
-    #undef __FLT128_HAS_INFINITY__
-    #define __FLT128_HAS_INFINITY__ 1
-    #undef __DEC32_MIN__
-    #define __DEC32_MIN__ 1E-95DF
-    #undef __DBL_MAX_EXP__
-    #define __DBL_MAX_EXP__ 1024
-    #undef __WCHAR_WIDTH__
-    #define __WCHAR_WIDTH__ 16
-    #undef __FLT32_MAX__
-    #define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
-    #undef __DEC128_EPSILON__
-    #define __DEC128_EPSILON__ 1E-33DL
-    #undef __FLT16_DECIMAL_DIG__
-    #define __FLT16_DECIMAL_DIG__ 5
-    #undef __ATOMIC_HLE_RELEASE
-    #define __ATOMIC_HLE_RELEASE 131072
-    #undef __PTRDIFF_MAX__
-    #define __PTRDIFF_MAX__ 0x7fffffff
-    #undef __ATOMIC_HLE_ACQUIRE
-    #define __ATOMIC_HLE_ACQUIRE 65536
-    #undef __LONG_LONG_MAX__
-    #define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
-    #undef __SIZEOF_SIZE_T__
-    #define __SIZEOF_SIZE_T__ 2
-    #undef __FLT64X_MIN_EXP__
-    #define __FLT64X_MIN_EXP__ (-16381)
-    #undef __SIZEOF_WINT_T__
-    #define __SIZEOF_WINT_T__ 4
-    #undef __LONG_LONG_WIDTH__
-    #define __LONG_LONG_WIDTH__ 64
-    #undef __FLT32_MAX_EXP__
-    #define __FLT32_MAX_EXP__ 128
-    #undef __GXX_ABI_VERSION
-    #define __GXX_ABI_VERSION 1017
-    #undef __FLT_MIN_EXP__
-    #define __FLT_MIN_EXP__ (-125)
-    #undef __INT16_MAX__
-    #define __INT16_MAX__ 0x7fff
-    #undef __INT_FAST64_TYPE__
-    #define __INT_FAST64_TYPE__ long long int
-    #undef __FLT64_DENORM_MIN__
-    #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
-    #undef __DBL_MIN__
-    #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
-    #undef __FLT16_DENORM_MIN__
-    #define __FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16
-    #undef __FLT128_EPSILON__
-    #define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
-    #undef __FLT64X_NORM_MAX__
-    #define __FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x
-    #undef __SIZEOF_POINTER__
-    #define __SIZEOF_POINTER__ 4
-    #undef __DBL_HAS_QUIET_NAN__
-    #define __DBL_HAS_QUIET_NAN__ 1
-    #undef __FLT32X_EPSILON__
-    #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
-    #undef __DECIMAL_BID_FORMAT__
-    #define __DECIMAL_BID_FORMAT__ 1
-    #undef __FLT64_MIN_EXP__
-    #define __FLT64_MIN_EXP__ (-1021)
-    #undef __FLT64_MIN_10_EXP__
-    #define __FLT64_MIN_10_EXP__ (-307)
-    #undef __FLT16_MIN_10_EXP__
-    #define __FLT16_MIN_10_EXP__ (-4)
-    #undef __FLT64X_DECIMAL_DIG__
-    #define __FLT64X_DECIMAL_DIG__ 21
-    #undef __DEC128_MIN__
-    #define __DEC128_MIN__ 1E-6143DL
-    #undef __REGISTER_PREFIX__
-    #define __REGISTER_PREFIX__
-    #undef __UINT16_MAX__
-    #define __UINT16_MAX__ 0xffff
-    #undef __DBL_HAS_DENORM__
-    #define __DBL_HAS_DENORM__ 1
-    #undef __LDBL_HAS_INFINITY__
-    #define __LDBL_HAS_INFINITY__ 1
-    #undef __FLT32_MIN__
-    #define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
-    #undef __UINT8_TYPE__
-    #define __UINT8_TYPE__ unsigned char
-    #undef __FLT_DIG__
-    #define __FLT_DIG__ 6
-    #undef __NO_INLINE__
-    #define __NO_INLINE__ 1
-    #undef __DEC_EVAL_METHOD__
-    #define __DEC_EVAL_METHOD__ 2
-    #undef __DEC128_MAX__
-    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
-    #undef __i386
-    #define __i386 1
-    #undef __FLT_MANT_DIG__
-    #define __FLT_MANT_DIG__ 24
-    #undef __LDBL_DECIMAL_DIG__
-    #define __LDBL_DECIMAL_DIG__ 21
-    #undef __VERSION__
-    #define __VERSION__ "12.2.1 20230201"
-    #undef __UINT64_C
-    #define __UINT64_C(c) c ## ULL
-    #undef _STDC_PREDEF_H
-    #define _STDC_PREDEF_H 1
-    #undef __INT_LEAST32_MAX__
-    #define __INT_LEAST32_MAX__ 0x7fffffff
-    #undef __FLT128_MAX_EXP__
-    #define __FLT128_MAX_EXP__ 16384
-    #undef __FLT32_MANT_DIG__
-    #define __FLT32_MANT_DIG__ 24
-    #undef __FLOAT_WORD_ORDER__
-    #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
-    #undef __FLT32X_MIN_EXP__
-    #define __FLT32X_MIN_EXP__ (-1021)
-    #undef i386
-    #define i386 1
-    #undef __FLT128_HAS_DENORM__
-    #define __FLT128_HAS_DENORM__ 1
-    #undef __FLT32_DECIMAL_DIG__
-    #define __FLT32_DECIMAL_DIG__ 9
-    #undef __FLT128_DIG__
-    #define __FLT128_DIG__ 33
-    #undef __INT32_C
-    #define __INT32_C(c) c ## L
-    #undef __DEC64_EPSILON__
-    #define __DEC64_EPSILON__ 1E-15DD
-    #undef __ORDER_PDP_ENDIAN__
-    #define __ORDER_PDP_ENDIAN__ 3412
-    #undef __DEC128_MIN_EXP__
-    #define __DEC128_MIN_EXP__ (-6142)
-    #undef __code_model_32__
-    #define __code_model_32__ 1
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ long
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ short unsigned int
-    #undef unix
-    #define unix 1
-    #undef __i386__
-    #define __i386__ 1
-    #undef __SIZE_TYPE__
-    #define __SIZE_TYPE__ unsigned int
-    #undef __UINT64_MAX__
-    #define __UINT64_MAX__ 0xffffffffffffffffULL
-    #undef __FLT_IS_IEC_60559__
-    #define __FLT_IS_IEC_60559__ 2
-    #undef __GNUC_WIDE_EXECUTION_CHARSET_NAME
-    #define __GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE"
-    #undef __FLT64X_DIG__
-    #define __FLT64X_DIG__ 18
-    #undef __INT8_TYPE__
-    #define __INT8_TYPE__ signed char
-    #undef __ELF__
-    #define __ELF__ 1
-    #undef __UINT32_TYPE__
-    #define __UINT32_TYPE__ unsigned long
-    #undef __FLT_RADIX__
-    #define __FLT_RADIX__ 2
-    #undef __INT_LEAST16_TYPE__
-    #define __INT_LEAST16_TYPE__ short int
-    #undef __LDBL_EPSILON__
-    #define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
-    #undef __UINTMAX_C
-    #define __UINTMAX_C(c) c ## ULL
-    #undef __k8
-    #define __k8 1
-    #undef __FLT32X_MIN__
-    #define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
-    #undef __SIG_ATOMIC_MAX__
-    #define __SIG_ATOMIC_MAX__ 0x7fffffff
-    #undef __USER_LABEL_PREFIX__
-    #define __USER_LABEL_PREFIX__
-    #undef __SIZEOF_PTRDIFF_T__
-    #define __SIZEOF_PTRDIFF_T__ 4
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 18
-    #undef __FLT64_IS_IEC_60559__
-    #define __FLT64_IS_IEC_60559__ 2
-    #undef __FLT16_IS_IEC_60559__
-    #define __FLT16_IS_IEC_60559__ 2
-    #undef __FLT16_MAX_EXP__
-    #define __FLT16_MAX_EXP__ 16
-    #undef __DEC32_SUBNORMAL_MIN__
-    #define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
-    #undef __INT_FAST16_MAX__
-    #define __INT_FAST16_MAX__ 0x7fffffff
-    #undef __FLT64_DIG__
-    #define __FLT64_DIG__ 15
-    #undef __UINT_FAST32_MAX__
-    #define __UINT_FAST32_MAX__ 0xffffffffU
-    #undef __UINT_LEAST64_TYPE__
-    #define __UINT_LEAST64_TYPE__ long long unsigned int
-    #undef __FLT16_EPSILON__
-    #define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16
-    #undef __ILP32__
-    #define __ILP32__ 1
-    #undef __FLT_HAS_QUIET_NAN__
-    #define __FLT_HAS_QUIET_NAN__ 1
-    #undef __FLT_MAX_10_EXP__
-    #define __FLT_MAX_10_EXP__ 38
-    #undef __LONG_MAX__
-    #define __LONG_MAX__ 0x7fffffffL
-    #undef __FLT64X_HAS_DENORM__
-    #define __FLT64X_HAS_DENORM__ 1
-    #undef __DEC128_SUBNORMAL_MIN__
-    #define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
-    #undef __FLT_HAS_INFINITY__
-    #define __FLT_HAS_INFINITY__ 1
-    #undef __GNUC_EXECUTION_CHARSET_NAME
-    #define __GNUC_EXECUTION_CHARSET_NAME "UTF-8"
-    #undef _ILP32
-    #define _ILP32 1
-    #undef __UINT_FAST16_TYPE__
-    #define __UINT_FAST16_TYPE__ unsigned int
-    #undef __DEC64_MAX__
-    #define __DEC64_MAX__ 9.999999999999999E384DD
-    #undef __INT_FAST32_WIDTH__
-    #define __INT_FAST32_WIDTH__ 32
-    #undef __CHAR16_TYPE__
-    #define __CHAR16_TYPE__ short unsigned int
-    #undef __PRAGMA_REDEFINE_EXTNAME
-    #define __PRAGMA_REDEFINE_EXTNAME 1
-    #undef __SIZE_WIDTH__
-    #define __SIZE_WIDTH__ 32
-    #undef __SEG_FS
-    #define __SEG_FS 1
-    #undef __INT_LEAST16_MAX__
-    #define __INT_LEAST16_MAX__ 0x7fff
-    #undef __FLT16_NORM_MAX__
-    #define __FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16
-    #undef __DEC64_MANT_DIG__
-    #define __DEC64_MANT_DIG__ 16
-    #undef __INT64_MAX__
-    #define __INT64_MAX__ 0x7fffffffffffffffLL
-    #undef __FLT32_DENORM_MIN__
-    #define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
-    #undef __SIG_ATOMIC_WIDTH__
-    #define __SIG_ATOMIC_WIDTH__ 32
-    #undef __INT_LEAST64_TYPE__
-    #define __INT_LEAST64_TYPE__ long long int
-    #undef __INT16_TYPE__
-    #define __INT16_TYPE__ short int
-    #undef __INT_LEAST8_TYPE__
-    #define __INT_LEAST8_TYPE__ signed char
-    #undef __FLT16_MAX__
-    #define __FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16
-    #undef __SIZEOF_INT__
-    #define __SIZEOF_INT__ 4
-    #undef __DEC32_MAX_EXP__
-    #define __DEC32_MAX_EXP__ 97
-    #undef __INT_FAST8_MAX__
-    #define __INT_FAST8_MAX__ 0x7f
-    #undef __FLT128_MAX__
-    #define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
-    #undef __INTPTR_MAX__
-    #define __INTPTR_MAX__ 0x7fffffff
-    #undef linux
-    #define linux 1
-    #undef __FLT64_HAS_QUIET_NAN__
-    #define __FLT64_HAS_QUIET_NAN__ 1
-    #undef __FLT32_MIN_10_EXP__
-    #define __FLT32_MIN_10_EXP__ (-37)
-    #undef __FLT32X_DIG__
-    #define __FLT32X_DIG__ 15
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 16
-    #undef __LDBL_MANT_DIG__
-    #define __LDBL_MANT_DIG__ 64
-    #undef __FLT64_HAS_INFINITY__
-    #define __FLT64_HAS_INFINITY__ 1
-    #undef __FLT64X_MAX__
-    #define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
-    #undef __FLT16_HAS_INFINITY__
-    #define __FLT16_HAS_INFINITY__ 1
-    #undef __SIG_ATOMIC_MIN__
-    #define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
-    #undef __DEC32_MANT_DIG__
-    #define __DEC32_MANT_DIG__ 7
-    #undef __FLT16_MANT_DIG__
-    #define __FLT16_MANT_DIG__ 11
-    #undef __k8__
-    #define __k8__ 1
-    #undef __INTPTR_TYPE__
-    #define __INTPTR_TYPE__ long
-    #undef __UINT16_TYPE__
-    #define __UINT16_TYPE__ short unsigned int
-    #undef __WCHAR_TYPE__
-    #define __WCHAR_TYPE__ int
-    #undef __pic__
-    #define __pic__ 2
-    #undef __UINTPTR_MAX__
-    #define __UINTPTR_MAX__ 0xffffffffU
-    #undef __INT_FAST64_WIDTH__
-    #define __INT_FAST64_WIDTH__ 64
-    #undef __INT_FAST64_MAX__
-    #define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
-    #undef __FLT_NORM_MAX__
-    #define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __FLT32_HAS_INFINITY__
-    #define __FLT32_HAS_INFINITY__ 1
-    #undef __FLT64X_MAX_EXP__
-    #define __FLT64X_MAX_EXP__ 16384
-    #undef __UINT_FAST64_TYPE__
-    #define __UINT_FAST64_TYPE__ long long unsigned int
-    #undef __INT_MAX__
-    #define __INT_MAX__ 0x7fff
-    #undef __linux__
-    #define __linux__ 1
-    #undef __INT64_TYPE__
-    #define __INT64_TYPE__ long long int
-    #undef __FLT_MAX_EXP__
-    #define __FLT_MAX_EXP__ 128
-    #undef __DBL_MANT_DIG__
-    #define __DBL_MANT_DIG__ 53
-    #undef __SIZEOF_FLOAT128__
-    #define __SIZEOF_FLOAT128__ 16
-    #undef __INT_LEAST64_MAX__
-    #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
-    #undef __DEC64_MIN__
-    #define __DEC64_MIN__ 1E-383DD
-    #undef __WINT_TYPE__
-    #define __WINT_TYPE__ unsigned long
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ unsigned long
-    #undef __SIZEOF_SHORT__
-    #define __SIZEOF_SHORT__ 2
-    #undef __FLT32_NORM_MAX__
-    #define __FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32
-    #undef __SSE__
-    #define __SSE__ 1
-    #undef __LDBL_MIN_EXP__
-    #define __LDBL_MIN_EXP__ (-16381)
-    #undef __FLT64_MAX__
-    #define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
-    #undef __WINT_WIDTH__
-    #define __WINT_WIDTH__ 32
-    #undef __INT_LEAST8_MAX__
-    #define __INT_LEAST8_MAX__ 0x7f
-    #undef __INT_LEAST64_WIDTH__
-    #define __INT_LEAST64_WIDTH__ 64
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 16384
-    #undef __FLT32X_MAX_10_EXP__
-    #define __FLT32X_MAX_10_EXP__ 308
-    #undef __FLT16_MIN__
-    #define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16
-    #undef __FLT64X_IS_IEC_60559__
-    #define __FLT64X_IS_IEC_60559__ 2
-    #undef __LDBL_MAX_10_EXP__
-    #define __LDBL_MAX_10_EXP__ 4932
-    #undef __ATOMIC_RELAXED
-    #define __ATOMIC_RELAXED 0
-    #undef __DBL_EPSILON__
-    #define __DBL_EPSILON__ ((double)2.22044604925031308084726333618164062e-16L)
-    #undef __FLT128_MIN__
-    #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
-    #undef __UINT8_C
-    #define __UINT8_C(c) c
-    #undef __FLT64_MAX_EXP__
-    #define __FLT64_MAX_EXP__ 1024
-    #undef __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ long
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 2
-    #undef __UINT64_TYPE__
-    #define __UINT64_TYPE__ long long unsigned int
-    #undef __GNUC_PATCHLEVEL__
-    #define __GNUC_PATCHLEVEL__ 1
-    #undef __FLT128_NORM_MAX__
-    #define __FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128
-    #undef __FLT64_NORM_MAX__
-    #define __FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64
-    #undef __FLT128_HAS_QUIET_NAN__
-    #define __FLT128_HAS_QUIET_NAN__ 1
-    #undef __INTMAX_MAX__
-    #define __INTMAX_MAX__ 0x7fffffffffffffffLL
-    #undef __INT_FAST8_TYPE__
-    #define __INT_FAST8_TYPE__ signed char
-    #undef __FLT64X_MIN__
-    #define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
-    #undef __GNUC_STDC_INLINE__
-    #define __GNUC_STDC_INLINE__ 1
-    #undef __FLT64_HAS_DENORM__
-    #define __FLT64_HAS_DENORM__ 1
-    #undef __FLT32_EPSILON__
-    #define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
-    #undef __FLT16_HAS_DENORM__
-    #define __FLT16_HAS_DENORM__ 1
-    #undef __DBL_DECIMAL_DIG__
-    #define __DBL_DECIMAL_DIG__ 17
-    #undef __INT_FAST8_WIDTH__
-    #define __INT_FAST8_WIDTH__ 8
-    #undef __FXSR__
-    #define __FXSR__ 1
-    #undef __FLT32X_MAX__
-    #define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __DBL_NORM_MAX__
-    #define __DBL_NORM_MAX__ ((double)1.79769313486231570814527423731704357e+308L)
-    #undef __BYTE_ORDER__
-    #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
-    #undef __INTMAX_WIDTH__
-    #define __INTMAX_WIDTH__ 64
-    #undef __ORDER_BIG_ENDIAN__
-    #define __ORDER_BIG_ENDIAN__ 4321
-    #undef __UINT32_C
-    #define __UINT32_C(c) c ## UL
-    #undef __FLT_DENORM_MIN__
-    #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
-    #undef __INT8_MAX__
-    #define __INT8_MAX__ 0x7f
-    #undef __LONG_WIDTH__
-    #define __LONG_WIDTH__ 32
-    #undef __PIC__
-    #define __PIC__ 2
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ unsigned long
-    #undef __FLT32X_NORM_MAX__
-    #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned long
-    #undef __FLT_MAX__
-    #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __SSE2__
-    #define __SSE2__ 1
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ long
-    #undef __SIZEOF_DOUBLE__
-    #define __SIZEOF_DOUBLE__ 8
-    #undef __FLT_MIN_10_EXP__
-    #define __FLT_MIN_10_EXP__ (-37)
-    #undef __FLT64_MIN__
-    #define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
-    #undef __INT_LEAST32_WIDTH__
-    #define __INT_LEAST32_WIDTH__ 32
-    #undef __INTMAX_TYPE__
-    #define __INTMAX_TYPE__ long long int
-    #undef __DEC128_MAX_EXP__
-    #define __DEC128_MAX_EXP__ 6145
-    #undef __FLT32X_HAS_QUIET_NAN__
-    #define __FLT32X_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_CONSUME
-    #define __ATOMIC_CONSUME 1
-    #undef __GNUC_MINOR__
-    #define __GNUC_MINOR__ 2
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 32
-    #undef __UINTMAX_MAX__
-    #define __UINTMAX_MAX__ 0xffffffffffffffffULL
-    #undef __PIE__
-    #define __PIE__ 2
-    #undef __FLT32X_DENORM_MIN__
-    #define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
-    #undef __DBL_MAX_10_EXP__
-    #define __DBL_MAX_10_EXP__ 308
-    #undef __LDBL_DENORM_MIN__
-    #define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
-    #undef __INT16_C
-    #define __INT16_C(c) c
-    #undef __PTRDIFF_TYPE__
-    #define __PTRDIFF_TYPE__ int
-    #undef __ATOMIC_SEQ_CST
-    #define __ATOMIC_SEQ_CST 5
-    #undef __FLT32X_MIN_10_EXP__
-    #define __FLT32X_MIN_10_EXP__ (-307)
-    #undef __UINTPTR_TYPE__
-    #define __UINTPTR_TYPE__ unsigned int
-    #undef __DEC64_SUBNORMAL_MIN__
-    #define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
-    #undef __DEC128_MANT_DIG__
-    #define __DEC128_MANT_DIG__ 34
-    #undef __LDBL_MIN_10_EXP__
-    #define __LDBL_MIN_10_EXP__ (-4931)
-    #undef __SIZEOF_LONG_LONG__
-    #define __SIZEOF_LONG_LONG__ 8
-    #undef __FLT128_DECIMAL_DIG__
-    #define __FLT128_DECIMAL_DIG__ 36
-    #undef __FLT32_HAS_QUIET_NAN__
-    #define __FLT32_HAS_QUIET_NAN__ 1
-    #undef __FLT_DECIMAL_DIG__
-    #define __FLT_DECIMAL_DIG__ 9
-    #undef __UINT_FAST16_MAX__
-    #define __UINT_FAST16_MAX__ 0xffffU
-    #undef __LDBL_NORM_MAX__
-    #define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L
-    #undef __UINT_FAST8_TYPE__
-    #define __UINT_FAST8_TYPE__ unsigned char
-    #undef __ATOMIC_ACQ_REL
-    #define __ATOMIC_ACQ_REL 4
-    #undef __ATOMIC_RELEASE
-    #define __ATOMIC_RELEASE 3
+custom_defs:
+    __SSP_STRONG__: '3'
+    __DBL_MIN_EXP__: '(-1021)'
+    __UINT_LEAST16_MAX__: '0xffff'
+    __FLT16_HAS_QUIET_NAN__: '1'
+    __ATOMIC_ACQUIRE: '2'
+    __FLT128_MAX_10_EXP__: '4932'
+    __FLT_MIN__: '1.17549435082228750796873653722224568e-38F'
+    __UINT_LEAST8_TYPE__: 'unsigned char'
+    __SIZEOF_FLOAT80__: '12'
+    __INTMAX_C(c): 'c ## LL'
+    __CHAR_BIT__: '8'
+    __UINT8_MAX__: '0xff'
+    __SCHAR_WIDTH__: '8'
+    __WINT_MAX__: '0xffffffffU'
+    __FLT32_MIN_EXP__: '(-125)'
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __SIZE_MAX__: '0xffffffffU'
+    __WCHAR_MAX__: '0x7fffffffL'
+    __FLT32X_DECIMAL_DIG__: '17'
+    __FLT_EVAL_METHOD__: '2'
+    __FLT64_DECIMAL_DIG__: '17'
+    __UINT_FAST64_MAX__: '0xffffffffffffffffULL'
+    __SIG_ATOMIC_TYPE__: 'int'
+    __DBL_MIN_10_EXP__: '(-307)'
+    __FINITE_MATH_ONLY__: '0'
+    __FLT32X_MAX_EXP__: '1024'
+    __FLT32_HAS_DENORM__: '1'
+    __UINT_FAST8_MAX__: '0xff'
+    __FLT32_MAX_10_EXP__: '38'
+    __DEC64_MAX_EXP__: '385'
+    __INT8_C(c): 'c'
+    __INT_LEAST8_WIDTH__: '8'
+    __UINT_LEAST64_MAX__: '0xffffffffffffffffULL'
+    __SHRT_MAX__: '0x7fff'
+    __LDBL_MAX__: '1.18973149535723176502126385303097021e+4932L'
+    __FLT64X_MAX_10_EXP__: '4932'
+    __LDBL_IS_IEC_60559__: '2'
+    __FLT64X_HAS_QUIET_NAN__: '1'
+    __UINT_LEAST8_MAX__: '0xff'
+    __LAHF_SAHF__: '1'
+    __FLT128_DENORM_MIN__: '6.47517511943802511092443895822764655e-4966F128'
+    __UINTMAX_TYPE__: 'long long unsigned int'
+    __linux: '1'
+    __DEC32_EPSILON__: '1E-6DF'
+    __FLT_EVAL_METHOD_TS_18661_3__: '2'
+    __unix: '1'
+    __UINT32_MAX__: '0xffffffffU'
+    __DBL_DENORM_MIN__: '((double)4.94065645841246544176568792868221372e-324L)'
+    __FLT128_MIN_EXP__: '(-16381)'
+    __WINT_MIN__: '0U'
+    __FLT128_MIN_10_EXP__: '(-4931)'
+    __FLT32X_IS_IEC_60559__: '2'
+    __INT_LEAST16_WIDTH__: '16'
+    __SCHAR_MAX__: '0x7f'
+    __FLT128_MANT_DIG__: '113'
+    __WCHAR_MIN__: '(-__WCHAR_MAX__ - 1)'
+    __INT64_C(c): 'c ## LL'
+    __FLT32X_MANT_DIG__: '53'
+    __FLT64X_EPSILON__: '1.08420217248550443400745280086994171e-19F64x'
+    __DEC64_MIN_EXP__: '(-382)'
+    __DBL_DIG__: '15'
+    __FLT32_DIG__: '6'
+    __FLT_EPSILON__: '1.19209289550781250000000000000000000e-7F'
+    __SHRT_WIDTH__: '16'
+    __FLT32_IS_IEC_60559__: '2'
+    __LDBL_MIN__: '3.36210314311209350626267781732175260e-4932L'
+    __DBL_IS_IEC_60559__: '2'
+    __DEC32_MAX__: '9.999999E96DF'
+    __FLT64X_DENORM_MIN__: '3.64519953188247460252840593361941982e-4951F64x'
+    __FLT32X_HAS_INFINITY__: '1'
+    __INT32_MAX__: '0x7fffffff'
+    __FLT16_DIG__: '3'
+    __unix__: '1'
+    __INT_WIDTH__: '16'
+    __SIZEOF_LONG__: '4'
+    __UINT16_C(c): 'c'
+    __DECIMAL_DIG__: '21'
+    __FLT64_EPSILON__: '2.22044604925031308084726333618164062e-16F64'
+    __gnu_linux__: '1'
+    __FLT128_IS_IEC_60559__: '2'
+    __FLT64X_MIN_10_EXP__: '(-4931)'
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __FLT16_MIN_EXP__: '(-13)'
+    __FLT64_MANT_DIG__: '53'
+    __FLT64X_MANT_DIG__: '64'
+    __GNUC__: '12'
+    __pie__: '2'
+    __MMX__: '1'
+    __FLT_HAS_DENORM__: '1'
+    __SIZEOF_LONG_DOUBLE__: '12'
+    __BIGGEST_ALIGNMENT__: '16'
+    __FLT64_MAX_10_EXP__: '308'
+    __FLT16_MAX_10_EXP__: '4'
+    __DBL_MAX__: '((double)1.79769313486231570814527423731704357e+308L)'
+    __INT_FAST32_MAX__: '0x7fffffff'
+    __DBL_HAS_INFINITY__: '1'
+    __SIZEOF_FLOAT__: '4'
+    __HAVE_SPECULATION_SAFE_VALUE: '1'
+    __DEC32_MIN_EXP__: '(-94)'
+    __INTPTR_WIDTH__: '32'
+    __FLT64X_HAS_INFINITY__: '1'
+    __UINT_LEAST32_MAX__: '0xffffffffU'
+    __FLT32X_HAS_DENORM__: '1'
+    __INT_FAST16_TYPE__: 'int'
+    __LDBL_HAS_DENORM__: '1'
+    __SEG_GS: '1'
+    __FLT128_HAS_INFINITY__: '1'
+    __DEC32_MIN__: '1E-95DF'
+    __DBL_MAX_EXP__: '1024'
+    __WCHAR_WIDTH__: '16'
+    __FLT32_MAX__: '3.40282346638528859811704183484516925e+38F32'
+    __DEC128_EPSILON__: '1E-33DL'
+    __FLT16_DECIMAL_DIG__: '5'
+    __ATOMIC_HLE_RELEASE: '131072'
+    __PTRDIFF_MAX__: '0x7fffffff'
+    __ATOMIC_HLE_ACQUIRE: '65536'
+    __LONG_LONG_MAX__: '0x7fffffffffffffffLL'
+    __SIZEOF_SIZE_T__: '2'
+    __FLT64X_MIN_EXP__: '(-16381)'
+    __SIZEOF_WINT_T__: '4'
+    __LONG_LONG_WIDTH__: '64'
+    __FLT32_MAX_EXP__: '128'
+    __GXX_ABI_VERSION: '1017'
+    __FLT_MIN_EXP__: '(-125)'
+    __INT16_MAX__: '0x7fff'
+    __INT_FAST64_TYPE__: 'long long int'
+    __FLT64_DENORM_MIN__: '4.94065645841246544176568792868221372e-324F64'
+    __DBL_MIN__: '((double)2.22507385850720138309023271733240406e-308L)'
+    __FLT16_DENORM_MIN__: '5.96046447753906250000000000000000000e-8F16'
+    __FLT128_EPSILON__: '1.92592994438723585305597794258492732e-34F128'
+    __FLT64X_NORM_MAX__: '1.18973149535723176502126385303097021e+4932F64x'
+    __SIZEOF_POINTER__: '4'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __FLT32X_EPSILON__: '2.22044604925031308084726333618164062e-16F32x'
+    __DECIMAL_BID_FORMAT__: '1'
+    __FLT64_MIN_EXP__: '(-1021)'
+    __FLT64_MIN_10_EXP__: '(-307)'
+    __FLT16_MIN_10_EXP__: '(-4)'
+    __FLT64X_DECIMAL_DIG__: '21'
+    __DEC128_MIN__: '1E-6143DL'
+    __REGISTER_PREFIX__: ''
+    __UINT16_MAX__: '0xffff'
+    __DBL_HAS_DENORM__: '1'
+    __LDBL_HAS_INFINITY__: '1'
+    __FLT32_MIN__: '1.17549435082228750796873653722224568e-38F32'
+    __UINT8_TYPE__: 'unsigned char'
+    __FLT_DIG__: '6'
+    __NO_INLINE__: '1'
+    __DEC_EVAL_METHOD__: '2'
+    __DEC128_MAX__: '9.999999999999999999999999999999999E6144DL'
+    __i386: '1'
+    __FLT_MANT_DIG__: '24'
+    __LDBL_DECIMAL_DIG__: '21'
+    __VERSION__: '"12.2.1 20230201"'
+    __UINT64_C(c): 'c ## ULL'
+    _STDC_PREDEF_H: '1'
+    __INT_LEAST32_MAX__: '0x7fffffff'
+    __FLT128_MAX_EXP__: '16384'
+    __FLT32_MANT_DIG__: '24'
+    __FLOAT_WORD_ORDER__: '__ORDER_LITTLE_ENDIAN__'
+    __FLT32X_MIN_EXP__: '(-1021)'
+    i386: '1'
+    __FLT128_HAS_DENORM__: '1'
+    __FLT32_DECIMAL_DIG__: '9'
+    __FLT128_DIG__: '33'
+    __INT32_C(c): 'c ## L'
+    __DEC64_EPSILON__: '1E-15DD'
+    __ORDER_PDP_ENDIAN__: '3412'
+    __DEC128_MIN_EXP__: '(-6142)'
+    __code_model_32__: '1'
+    __INT_FAST32_TYPE__: 'long'
+    __UINT_LEAST16_TYPE__: 'short unsigned int'
+    unix: '1'
+    __i386__: '1'
+    __SIZE_TYPE__: 'unsigned int'
+    __UINT64_MAX__: '0xffffffffffffffffULL'
+    __FLT_IS_IEC_60559__: '2'
+    __GNUC_WIDE_EXECUTION_CHARSET_NAME: '"UTF-32LE"'
+    __FLT64X_DIG__: '18'
+    __INT8_TYPE__: 'signed char'
+    __ELF__: '1'
+    __UINT32_TYPE__: 'unsigned long'
+    __FLT_RADIX__: '2'
+    __INT_LEAST16_TYPE__: 'short int'
+    __LDBL_EPSILON__: '1.08420217248550443400745280086994171e-19L'
+    __UINTMAX_C(c): 'c ## ULL'
+    __k8: '1'
+    __FLT32X_MIN__: '2.22507385850720138309023271733240406e-308F32x'
+    __SIG_ATOMIC_MAX__: '0x7fffffff'
+    __USER_LABEL_PREFIX__: ''
+    __SIZEOF_PTRDIFF_T__: '4'
+    __LDBL_DIG__: '18'
+    __FLT64_IS_IEC_60559__: '2'
+    __FLT16_IS_IEC_60559__: '2'
+    __FLT16_MAX_EXP__: '16'
+    __DEC32_SUBNORMAL_MIN__: '0.000001E-95DF'
+    __INT_FAST16_MAX__: '0x7fffffff'
+    __FLT64_DIG__: '15'
+    __UINT_FAST32_MAX__: '0xffffffffU'
+    __UINT_LEAST64_TYPE__: 'long long unsigned int'
+    __FLT16_EPSILON__: '9.76562500000000000000000000000000000e-4F16'
+    __ILP32__: '1'
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MAX_10_EXP__: '38'
+    __LONG_MAX__: '0x7fffffffL'
+    __FLT64X_HAS_DENORM__: '1'
+    __DEC128_SUBNORMAL_MIN__: '0.000000000000000000000000000000001E-6143DL'
+    __FLT_HAS_INFINITY__: '1'
+    __GNUC_EXECUTION_CHARSET_NAME: '"UTF-8"'
+    _ILP32: '1'
+    __UINT_FAST16_TYPE__: 'unsigned int'
+    __DEC64_MAX__: '9.999999999999999E384DD'
+    __INT_FAST32_WIDTH__: '32'
+    __CHAR16_TYPE__: 'short unsigned int'
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __SIZE_WIDTH__: '32'
+    __SEG_FS: '1'
+    __INT_LEAST16_MAX__: '0x7fff'
+    __FLT16_NORM_MAX__: '6.55040000000000000000000000000000000e+4F16'
+    __DEC64_MANT_DIG__: '16'
+    __INT64_MAX__: '0x7fffffffffffffffLL'
+    __FLT32_DENORM_MIN__: '1.40129846432481707092372958328991613e-45F32'
+    __SIG_ATOMIC_WIDTH__: '32'
+    __INT_LEAST64_TYPE__: 'long long int'
+    __INT16_TYPE__: 'short int'
+    __INT_LEAST8_TYPE__: 'signed char'
+    __FLT16_MAX__: '6.55040000000000000000000000000000000e+4F16'
+    __SIZEOF_INT__: '4'
+    __DEC32_MAX_EXP__: '97'
+    __INT_FAST8_MAX__: '0x7f'
+    __FLT128_MAX__: '1.18973149535723176508575932662800702e+4932F128'
+    __INTPTR_MAX__: '0x7fffffff'
+    linux: '1'
+    __FLT64_HAS_QUIET_NAN__: '1'
+    __FLT32_MIN_10_EXP__: '(-37)'
+    __FLT32X_DIG__: '15'
+    __PTRDIFF_WIDTH__: '16'
+    __LDBL_MANT_DIG__: '64'
+    __FLT64_HAS_INFINITY__: '1'
+    __FLT64X_MAX__: '1.18973149535723176502126385303097021e+4932F64x'
+    __FLT16_HAS_INFINITY__: '1'
+    __SIG_ATOMIC_MIN__: '(-__SIG_ATOMIC_MAX__ - 1)'
+    __DEC32_MANT_DIG__: '7'
+    __FLT16_MANT_DIG__: '11'
+    __k8__: '1'
+    __INTPTR_TYPE__: 'long'
+    __UINT16_TYPE__: 'short unsigned int'
+    __WCHAR_TYPE__: 'int'
+    __pic__: '2'
+    __UINTPTR_MAX__: '0xffffffffU'
+    __INT_FAST64_WIDTH__: '64'
+    __INT_FAST64_MAX__: '0x7fffffffffffffffLL'
+    __FLT_NORM_MAX__: '3.40282346638528859811704183484516925e+38F'
+    __FLT32_HAS_INFINITY__: '1'
+    __FLT64X_MAX_EXP__: '16384'
+    __UINT_FAST64_TYPE__: 'long long unsigned int'
+    __INT_MAX__: '0x7fff'
+    __linux__: '1'
+    __INT64_TYPE__: 'long long int'
+    __FLT_MAX_EXP__: '128'
+    __DBL_MANT_DIG__: '53'
+    __SIZEOF_FLOAT128__: '16'
+    __INT_LEAST64_MAX__: '0x7fffffffffffffffLL'
+    __DEC64_MIN__: '1E-383DD'
+    __WINT_TYPE__: 'unsigned long'
+    __UINT_LEAST32_TYPE__: 'unsigned long'
+    __SIZEOF_SHORT__: '2'
+    __FLT32_NORM_MAX__: '3.40282346638528859811704183484516925e+38F32'
+    __SSE__: '1'
+    __LDBL_MIN_EXP__: '(-16381)'
+    __FLT64_MAX__: '1.79769313486231570814527423731704357e+308F64'
+    __WINT_WIDTH__: '32'
+    __INT_LEAST8_MAX__: '0x7f'
+    __INT_LEAST64_WIDTH__: '64'
+    __LDBL_MAX_EXP__: '16384'
+    __FLT32X_MAX_10_EXP__: '308'
+    __FLT16_MIN__: '6.10351562500000000000000000000000000e-5F16'
+    __FLT64X_IS_IEC_60559__: '2'
+    __LDBL_MAX_10_EXP__: '4932'
+    __ATOMIC_RELAXED: '0'
+    __DBL_EPSILON__: '((double)2.22044604925031308084726333618164062e-16L)'
+    __FLT128_MIN__: '3.36210314311209350626267781732175260e-4932F128'
+    __UINT8_C(c): 'c'
+    __FLT64_MAX_EXP__: '1024'
+    __INT_LEAST32_TYPE__: 'long'
+    __SIZEOF_WCHAR_T__: '2'
+    __UINT64_TYPE__: 'long long unsigned int'
+    __GNUC_PATCHLEVEL__: '1'
+    __FLT128_NORM_MAX__: '1.18973149535723176508575932662800702e+4932F128'
+    __FLT64_NORM_MAX__: '1.79769313486231570814527423731704357e+308F64'
+    __FLT128_HAS_QUIET_NAN__: '1'
+    __INTMAX_MAX__: '0x7fffffffffffffffLL'
+    __INT_FAST8_TYPE__: 'signed char'
+    __FLT64X_MIN__: '3.36210314311209350626267781732175260e-4932F64x'
+    __GNUC_STDC_INLINE__: '1'
+    __FLT64_HAS_DENORM__: '1'
+    __FLT32_EPSILON__: '1.19209289550781250000000000000000000e-7F32'
+    __FLT16_HAS_DENORM__: '1'
+    __DBL_DECIMAL_DIG__: '17'
+    __INT_FAST8_WIDTH__: '8'
+    __FXSR__: '1'
+    __FLT32X_MAX__: '1.79769313486231570814527423731704357e+308F32x'
+    __DBL_NORM_MAX__: '((double)1.79769313486231570814527423731704357e+308L)'
+    __BYTE_ORDER__: '__ORDER_LITTLE_ENDIAN__'
+    __INTMAX_WIDTH__: '64'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __UINT32_C(c): 'c ## UL'
+    __FLT_DENORM_MIN__: '1.40129846432481707092372958328991613e-45F'
+    __INT8_MAX__: '0x7f'
+    __LONG_WIDTH__: '32'
+    __PIC__: '2'
+    __UINT_FAST32_TYPE__: 'unsigned long'
+    __FLT32X_NORM_MAX__: '1.79769313486231570814527423731704357e+308F32x'
+    __CHAR32_TYPE__: 'unsigned long'
+    __FLT_MAX__: '3.40282346638528859811704183484516925e+38F'
+    __SSE2__: '1'
+    __INT32_TYPE__: 'long'
+    __SIZEOF_DOUBLE__: '8'
+    __FLT_MIN_10_EXP__: '(-37)'
+    __FLT64_MIN__: '2.22507385850720138309023271733240406e-308F64'
+    __INT_LEAST32_WIDTH__: '32'
+    __INTMAX_TYPE__: 'long long int'
+    __DEC128_MAX_EXP__: '6145'
+    __FLT32X_HAS_QUIET_NAN__: '1'
+    __ATOMIC_CONSUME: '1'
+    __GNUC_MINOR__: '2'
+    __INT_FAST16_WIDTH__: '32'
+    __UINTMAX_MAX__: '0xffffffffffffffffULL'
+    __PIE__: '2'
+    __FLT32X_DENORM_MIN__: '4.94065645841246544176568792868221372e-324F32x'
+    __DBL_MAX_10_EXP__: '308'
+    __LDBL_DENORM_MIN__: '3.64519953188247460252840593361941982e-4951L'
+    __INT16_C(c): 'c'
+    __PTRDIFF_TYPE__: 'int'
+    __ATOMIC_SEQ_CST: '5'
+    __FLT32X_MIN_10_EXP__: '(-307)'
+    __UINTPTR_TYPE__: 'unsigned int'
+    __DEC64_SUBNORMAL_MIN__: '0.000000000000001E-383DD'
+    __DEC128_MANT_DIG__: '34'
+    __LDBL_MIN_10_EXP__: '(-4931)'
+    __SIZEOF_LONG_LONG__: '8'
+    __FLT128_DECIMAL_DIG__: '36'
+    __FLT32_HAS_QUIET_NAN__: '1'
+    __FLT_DECIMAL_DIG__: '9'
+    __UINT_FAST16_MAX__: '0xffffU'
+    __LDBL_NORM_MAX__: '1.18973149535723176502126385303097021e+4932L'
+    __UINT_FAST8_TYPE__: 'unsigned char'
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_RELEASE: '3'
 
 errno:
     e2big: '7'
@@ -838,49 +535,3 @@ errno:
     ewouldblock: '11'
     exdev: '18'
     exfull: '54'
-has__builtin_va_list: true
-int_fast8_t: signed char
-int_fast16_t: signed int
-int_fast32_t: long
-int_fast64_t: long long
-intptr_t: long
-little_endian: true
-nsig: '65'
-ptrdiff_t: int
-sig_atomic_t: int
-size_t: unsigned int
-sizeof_double: 8
-sizeof_float: 4
-sizeof_fun: -1
-sizeof_int: 2
-sizeof_long: 4
-sizeof_longdouble: 16
-sizeof_longlong: 8
-sizeof_ptr: 4
-sizeof_short: 2
-sizeof_void: -1
-ssize_t: int
-time_t: long
-uint_fast8_t: unsigned char
-uint_fast16_t: unsigned int
-uint_fast32_t: unsigned long
-uint_fast64_t: unsigned long long
-uintptr_t: unsigned long
-version: none
-wchar_t: int
-weof: (0xffffffffUL)
-wint_t: unsigned long
-wordsize: '16'
-posix_version: '200809L'
-bufsiz: '8192'
-eof: '(-1)'
-fopen_max: '16'
-filename_max: '2048'
-path_max: '256'
-host_name_max: '64'
-tty_name_max: '32'
-l_tmpnam: '2048'
-tmp_max: '0xFFFFFFFF'
-rand_max: '32767'
-mb_cur_max: '((size_t)16)'
-machdep_name: machdep_x86_16
diff --git a/src/kernel_internals/runtime/machdep.ml b/src/kernel_internals/runtime/machdep.ml
index 52851386afea12f1a862bcd3304de19c43d68dee..69980c349a32a3764a3f4df3cf0933848fae757f 100644
--- a/src/kernel_internals/runtime/machdep.ml
+++ b/src/kernel_internals/runtime/machdep.ml
@@ -41,10 +41,7 @@ let gen_define_macro fmt macro def =
   else gen_define_string fmt macro def
 
 let gen_define_custom_macros fmt key_values =
-  let rec iter = function
-    | (k,v)::kvs -> gen_define_macro fmt k v; iter kvs
-    | _ -> Format.fprintf fmt "@\n"
-  in iter key_values
+  List.iter (fun (k,v) -> gen_undef fmt k; gen_define_macro fmt k v) key_values
 
 let gen_define_int fmt macro def = gen_define fmt macro Format.pp_print_int def