diff --git a/.gitattributes b/.gitattributes
index 7e6f04ddfae32ee3d3228baf112d0f2f77cd9cd3..6b41e9483111166dc31ba8e496ab16eaa565536d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -267,7 +267,6 @@ README* header_spec=.ignore
 /share/win32_manual_installation_step.txt header_spec=.ignore
 /share/compliance/*.json header_spec=.ignore
 /share/machdeps/.machdep_*.validated header_spec=.ignore
-/share/machdeps/machdep-schema.json header_spec=.ignore
 /share/machdeps/machdep-schema.yaml header_spec=.ignore
 /share/machdeps/machdep_*.yaml header_spec=.ignore
 /tests/**/* header_spec=.ignore
diff --git a/share/dune b/share/dune
index 752e4b6b656fa503f9e90a39ab42c557efde645d..77f771002d1b2e413dd411f13512b51fbf62f5b9 100644
--- a/share/dune
+++ b/share/dune
@@ -330,6 +330,7 @@
  (package frama-c)
  (section share)
  (files
+  (machdeps/machdep_avr_8.yaml as share/machdeps/machdep_avr_8.yaml)
   (machdeps/machdep_avr_16.yaml as share/machdeps/machdep_avr_16.yaml)
   (machdeps/machdep_x86_16.yaml as share/machdeps/machdep_x86_16.yaml)
   (machdeps/machdep_x86_32.yaml as share/machdeps/machdep_x86_32.yaml)
diff --git a/share/machdeps/Makefile b/share/machdeps/Makefile
index b1b070ebf727013e8421132344d942ed5475614d..4f81985ae94e8dc328ce69b1ec8199e90472b280 100644
--- a/share/machdeps/Makefile
+++ b/share/machdeps/Makefile
@@ -24,6 +24,7 @@ MANUAL_MACHDEPS=machdep_gcc_x86_16.yaml machdep_msvc_x86_64.yaml
 
 update-all: machdep_*.yaml $(MANUAL_MACHDEPS:%=.%.validated)
 
+machdep_avr_8.yaml \
 machdep_avr_16.yaml \
 machdep_gcc_x86_32.yaml \
 machdep_gcc_x86_64.yaml \
diff --git a/share/machdeps/machdep_avr_16.yaml b/share/machdeps/machdep_avr_16.yaml
index 7cf66e801fd675867de85d5565f85ae735f25fa3..5377681d9a451b3159104cf071c7335a3d916816 100644
--- a/share/machdeps/machdep_avr_16.yaml
+++ b/share/machdeps/machdep_avr_16.yaml
@@ -9,7 +9,7 @@ alignof_longlong: 1
 alignof_ptr: 1
 alignof_short: 2
 alignof_str: 1
-bufsiz: '8192'
+bufsiz: '1024'
 char_is_unsigned: false
 compiler: clang
 cpp_arch_flags:
@@ -649,46 +649,46 @@ custom_defs: |
     #define __llvm__ 1
 eof: (-1)
 errno:
-    e2big: '7'
-    eacces: '13'
-    eaddrinuse: '98'
-    eaddrnotavail: '99'
-    eafnosupport: '97'
-    eagain: '11'
-    ealready: '114'
+    e2big: ((int)(66072050 & 0xffff))
+    eacces: ((int)(66072050 & 0xffff))
+    eaddrinuse: ((int)(66072050 & 0xffff))
+    eaddrnotavail: ((int)(66072050 & 0xffff))
+    eafnosupport: ((int)(66072050 & 0xffff))
+    eagain: ((int)(66072050 & 0xffff))
+    ealready: ((int)(66072050 & 0xffff))
     ebade: '52'
-    ebadf: '9'
+    ebadf: ((int)(66072050 & 0xffff))
     ebadfd: '77'
     ebadmsg: '74'
     ebadr: '53'
     ebadrqc: '56'
     ebadslt: '57'
-    ebusy: '16'
+    ebusy: ((int)(66072050 & 0xffff))
     ecanceled: '125'
-    echild: '10'
+    echild: ((int)(66072050 & 0xffff))
     echrng: '44'
     ecomm: '70'
-    econnaborted: '103'
-    econnrefused: '111'
-    econnreset: '104'
-    edeadlk: '35'
-    edeadlock: '35'
-    edestaddrreq: '89'
+    econnaborted: ((int)(66072050 & 0xffff))
+    econnrefused: ((int)(66072050 & 0xffff))
+    econnreset: ((int)(66072050 & 0xffff))
+    edeadlk: ((int)(66072050 & 0xffff))
+    edeadlock: ((int)(66072050 & 0xffff))
+    edestaddrreq: ((int)(66072050 & 0xffff))
     edom: '33'
     edquot: '122'
-    eexist: '17'
-    efault: '14'
-    efbig: '27'
+    eexist: ((int)(66072050 & 0xffff))
+    efault: ((int)(66072050 & 0xffff))
+    efbig: ((int)(66072050 & 0xffff))
     ehostdown: '112'
-    ehostunreach: '113'
+    ehostunreach: ((int)(66072050 & 0xffff))
     eidrm: '43'
-    eilseq: '84'
-    einprogress: '115'
-    eintr: '4'
-    einval: '22'
-    eio: '5'
-    eisconn: '106'
-    eisdir: '21'
+    eilseq: ((int)(66072050 & 0xffff))
+    einprogress: ((int)(66072050 & 0xffff))
+    eintr: ((int)(2453066 & 0x7fff))
+    einval: ((int)(66072050 & 0xffff))
+    eio: ((int)(66072050 & 0xffff))
+    eisconn: ((int)(66072050 & 0xffff))
+    eisdir: ((int)(66072050 & 0xffff))
     eisnam: '120'
     ekeyexpired: '127'
     ekeyrejected: '129'
@@ -702,94 +702,93 @@ errno:
     elibexec: '83'
     elibmax: '82'
     elibscn: '81'
-    eloop: '40'
+    eloop: ((int)(66072050 & 0xffff))
     emediumtype: '124'
-    emfile: '24'
-    emlink: '31'
-    emsgsize: '90'
+    emfile: ((int)(66072050 & 0xffff))
+    emlink: ((int)(66072050 & 0xffff))
+    emsgsize: ((int)(66072050 & 0xffff))
     emultihop: '72'
-    enametoolong: '36'
-    enetdown: '100'
-    enetreset: '102'
-    enetunreach: '101'
-    enfile: '23'
-    enobufs: '105'
+    enametoolong: ((int)(66072050 & 0xffff))
+    enetdown: ((int)(66072050 & 0xffff))
+    enetreset: ((int)(66072050 & 0xffff))
+    enetunreach: ((int)(66072050 & 0xffff))
+    enfile: ((int)(66072050 & 0xffff))
+    enobufs: ((int)(66072050 & 0xffff))
     enodata: '61'
-    enodev: '19'
-    enoent: '2'
-    enoexec: '8'
+    enodev: ((int)(66072050 & 0xffff))
+    enoent: ((int)(66072050 & 0xffff))
+    enoexec: ((int)(66072050 & 0xffff))
     enokey: '126'
-    enolck: '37'
+    enolck: ((int)(66072050 & 0xffff))
     enolink: '67'
     enomedium: '123'
-    enomem: '12'
-    enomsg: '42'
+    enomem: ((int)(66072050 & 0xffff))
+    enomsg: ((int)(66072050 & 0xffff))
     enonet: '64'
     enopkg: '65'
-    enoprotoopt: '92'
-    enospc: '28'
+    enoprotoopt: ((int)(66072050 & 0xffff))
+    enospc: ((int)(66072050 & 0xffff))
     enosr: '63'
     enostr: '60'
-    enosys: '38'
+    enosys: ((int)(66081697 & 0x7fff))
     enotblk: '15'
-    enotconn: '107'
-    enotdir: '20'
-    enotempty: '39'
+    enotconn: ((int)(66072050 & 0xffff))
+    enotdir: ((int)(66072050 & 0xffff))
+    enotempty: ((int)(66072050 & 0xffff))
     enotrecoverable: '131'
-    enotsock: '88'
-    enotsup: '95'
-    enotty: '25'
+    enotsock: ((int)(66072050 & 0xffff))
+    enotty: ((int)(66072050 & 0xffff))
     enotuniq: '76'
-    enxio: '6'
-    eopnotsupp: '95'
+    enxio: ((int)(66072050 & 0xffff))
+    eopnotsupp: ((int)(66072050 & 0xffff))
     eoverflow: '75'
     eownerdead: '130'
-    eperm: '1'
+    eperm: ((int)(66072050 & 0xffff))
     epfnosupport: '96'
-    epipe: '32'
+    epipe: ((int)(66072050 & 0xffff))
     eproto: '71'
-    eprotonosupport: '93'
-    eprototype: '91'
+    eprotonosupport: ((int)(66072050 & 0xffff))
+    eprototype: ((int)(66072050 & 0xffff))
     erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
-    erofs: '30'
+    erofs: ((int)(66072050 & 0xffff))
     eshutdown: '108'
     esocktnosupport: '94'
-    espipe: '29'
-    esrch: '3'
+    espipe: ((int)(66072050 & 0xffff))
+    esrch: ((int)(66072050 & 0xffff))
     estale: '116'
     estrpipe: '86'
     etime: '62'
-    etimedout: '110'
+    etimedout: ((int)(66072050 & 0xffff))
     etxtbsy: '26'
     euclean: '117'
     eunatch: '49'
     eusers: '87'
-    ewouldblock: '11'
-    exdev: '18'
+    ewouldblock: ((int)(66072050 & 0xffff))
+    exdev: ((int)(66072050 & 0xffff))
     exfull: '54'
-filename_max: '4096'
-fopen_max: '16'
+filename_max: FILENAME_MAX
+fopen_max: FOPEN_MAX
 has__builtin_va_list: true
 host_name_max: '64'
 int_fast16_t: int
-int_fast32_t: int
+int_fast32_t: long
 int_fast64_t: long long
 int_fast8_t: signed char
 intptr_t: int
-l_tmpnam: '20'
+l_tmpnam: L_tmpnam
 little_endian: true
 machdep_name: machdep_avr_16
 mb_cur_max: ((size_t)16)
-nsig: (64 + 1)
+nsig: ''
 path_max: '4096'
-posix_version: 200809L
+posix_version: ''
 ptrdiff_t: int
-rand_max: '2147483647'
-sig_atomic_t: int
+rand_max: '0x7FFF'
+sig_atomic_t: ''
 size_t: unsigned int
 sizeof_double: 4
 sizeof_float: 4
@@ -801,12 +800,12 @@ sizeof_longlong: 8
 sizeof_ptr: 2
 sizeof_short: 2
 sizeof_void: 1
-ssize_t: int
-time_t: long
-tmp_max: '238328'
+ssize_t: ''
+time_t: unsigned long
+tmp_max: TMP_MAX
 tty_name_max: '32'
 uint_fast16_t: unsigned int
-uint_fast32_t: unsigned int
+uint_fast32_t: unsigned long
 uint_fast64_t: unsigned long long
 uint_fast8_t: unsigned char
 uintptr_t: unsigned int
diff --git a/share/machdeps/machdep_avr_8.yaml b/share/machdeps/machdep_avr_8.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..91b6902295f69a3a6834bcbca8b4a355889bd493
--- /dev/null
+++ b/share/machdeps/machdep_avr_8.yaml
@@ -0,0 +1,815 @@
+alignof_aligned: 1
+alignof_double: 1
+alignof_float: 1
+alignof_fun: 4
+alignof_int: 1
+alignof_long: 1
+alignof_longdouble: 1
+alignof_longlong: 1
+alignof_ptr: 1
+alignof_short: 2
+alignof_str: 1
+bufsiz: '1024'
+char_is_unsigned: false
+compiler: clang
+cpp_arch_flags:
+- -target
+- avr
+custom_defs: |
+    #undef AVR
+    #define AVR 1
+    #undef __ATOMIC_ACQUIRE
+    #define __ATOMIC_ACQUIRE 2
+    #undef __ATOMIC_ACQ_REL
+    #define __ATOMIC_ACQ_REL 4
+    #undef __ATOMIC_CONSUME
+    #define __ATOMIC_CONSUME 1
+    #undef __ATOMIC_RELAXED
+    #define __ATOMIC_RELAXED 0
+    #undef __ATOMIC_RELEASE
+    #define __ATOMIC_RELEASE 3
+    #undef __ATOMIC_SEQ_CST
+    #define __ATOMIC_SEQ_CST 5
+    #undef __AVR
+    #define __AVR 1
+    #undef __AVR__
+    #define __AVR__ 1
+    #undef __BIGGEST_ALIGNMENT__
+    #define __BIGGEST_ALIGNMENT__ 1
+    #undef __BITINT_MAXWIDTH__
+    #define __BITINT_MAXWIDTH__ 128
+    #undef __BOOL_WIDTH__
+    #define __BOOL_WIDTH__ 8
+    #undef __BYTE_ORDER__
+    #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
+    #undef __CHAR16_TYPE__
+    #define __CHAR16_TYPE__ unsigned int
+    #undef __CHAR32_TYPE__
+    #define __CHAR32_TYPE__ long unsigned int
+    #undef __CHAR_BIT__
+    #define __CHAR_BIT__ 8
+    #undef __CLANG_ATOMIC_BOOL_LOCK_FREE
+    #define __CLANG_ATOMIC_BOOL_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_CHAR16_T_LOCK_FREE
+    #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_CHAR32_T_LOCK_FREE
+    #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_CHAR_LOCK_FREE
+    #define __CLANG_ATOMIC_CHAR_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_INT_LOCK_FREE
+    #define __CLANG_ATOMIC_INT_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_LLONG_LOCK_FREE
+    #define __CLANG_ATOMIC_LLONG_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_LONG_LOCK_FREE
+    #define __CLANG_ATOMIC_LONG_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_POINTER_LOCK_FREE
+    #define __CLANG_ATOMIC_POINTER_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_SHORT_LOCK_FREE
+    #define __CLANG_ATOMIC_SHORT_LOCK_FREE 1
+    #undef __CLANG_ATOMIC_WCHAR_T_LOCK_FREE
+    #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 1
+    #undef __CONSTANT_CFSTRINGS__
+    #define __CONSTANT_CFSTRINGS__ 1
+    #undef __DBL_DECIMAL_DIG__
+    #define __DBL_DECIMAL_DIG__ 9
+    #undef __DBL_DENORM_MIN__
+    #define __DBL_DENORM_MIN__ 1.40129846e-45
+    #undef __DBL_DIG__
+    #define __DBL_DIG__ 6
+    #undef __DBL_EPSILON__
+    #define __DBL_EPSILON__ 1.19209290e-7
+    #undef __DBL_HAS_DENORM__
+    #define __DBL_HAS_DENORM__ 1
+    #undef __DBL_HAS_INFINITY__
+    #define __DBL_HAS_INFINITY__ 1
+    #undef __DBL_HAS_QUIET_NAN__
+    #define __DBL_HAS_QUIET_NAN__ 1
+    #undef __DBL_MANT_DIG__
+    #define __DBL_MANT_DIG__ 24
+    #undef __DBL_MAX_10_EXP__
+    #define __DBL_MAX_10_EXP__ 38
+    #undef __DBL_MAX_EXP__
+    #define __DBL_MAX_EXP__ 128
+    #undef __DBL_MAX__
+    #define __DBL_MAX__ 3.40282347e+38
+    #undef __DBL_MIN_10_EXP__
+    #define __DBL_MIN_10_EXP__ (-37)
+    #undef __DBL_MIN_EXP__
+    #define __DBL_MIN_EXP__ (-125)
+    #undef __DBL_MIN__
+    #define __DBL_MIN__ 1.17549435e-38
+    #undef __DECIMAL_DIG__
+    #define __DECIMAL_DIG__ __LDBL_DECIMAL_DIG__
+    #undef __ELF__
+    #define __ELF__ 1
+    #undef __FINITE_MATH_ONLY__
+    #define __FINITE_MATH_ONLY__ 0
+    #undef __FLT_DECIMAL_DIG__
+    #define __FLT_DECIMAL_DIG__ 9
+    #undef __FLT_DENORM_MIN__
+    #define __FLT_DENORM_MIN__ 1.40129846e-45F
+    #undef __FLT_DIG__
+    #define __FLT_DIG__ 6
+    #undef __FLT_EPSILON__
+    #define __FLT_EPSILON__ 1.19209290e-7F
+    #undef __FLT_HAS_DENORM__
+    #define __FLT_HAS_DENORM__ 1
+    #undef __FLT_HAS_INFINITY__
+    #define __FLT_HAS_INFINITY__ 1
+    #undef __FLT_HAS_QUIET_NAN__
+    #define __FLT_HAS_QUIET_NAN__ 1
+    #undef __FLT_MANT_DIG__
+    #define __FLT_MANT_DIG__ 24
+    #undef __FLT_MAX_10_EXP__
+    #define __FLT_MAX_10_EXP__ 38
+    #undef __FLT_MAX_EXP__
+    #define __FLT_MAX_EXP__ 128
+    #undef __FLT_MAX__
+    #define __FLT_MAX__ 3.40282347e+38F
+    #undef __FLT_MIN_10_EXP__
+    #define __FLT_MIN_10_EXP__ (-37)
+    #undef __FLT_MIN_EXP__
+    #define __FLT_MIN_EXP__ (-125)
+    #undef __FLT_MIN__
+    #define __FLT_MIN__ 1.17549435e-38F
+    #undef __FLT_RADIX__
+    #define __FLT_RADIX__ 2
+    #undef __GCC_ATOMIC_BOOL_LOCK_FREE
+    #define __GCC_ATOMIC_BOOL_LOCK_FREE 1
+    #undef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
+    #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
+    #undef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
+    #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
+    #undef __GCC_ATOMIC_CHAR_LOCK_FREE
+    #define __GCC_ATOMIC_CHAR_LOCK_FREE 1
+    #undef __GCC_ATOMIC_INT_LOCK_FREE
+    #define __GCC_ATOMIC_INT_LOCK_FREE 1
+    #undef __GCC_ATOMIC_LLONG_LOCK_FREE
+    #define __GCC_ATOMIC_LLONG_LOCK_FREE 1
+    #undef __GCC_ATOMIC_LONG_LOCK_FREE
+    #define __GCC_ATOMIC_LONG_LOCK_FREE 1
+    #undef __GCC_ATOMIC_POINTER_LOCK_FREE
+    #define __GCC_ATOMIC_POINTER_LOCK_FREE 1
+    #undef __GCC_ATOMIC_SHORT_LOCK_FREE
+    #define __GCC_ATOMIC_SHORT_LOCK_FREE 1
+    #undef __GCC_ATOMIC_TEST_AND_SET_TRUEVAL
+    #define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
+    #undef __GCC_ATOMIC_WCHAR_T_LOCK_FREE
+    #define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
+    #undef __GNUC_MINOR__
+    #define __GNUC_MINOR__ 2
+    #undef __GNUC_PATCHLEVEL__
+    #define __GNUC_PATCHLEVEL__ 1
+    #undef __GNUC_STDC_INLINE__
+    #define __GNUC_STDC_INLINE__ 1
+    #undef __GNUC__
+    #define __GNUC__ 4
+    #undef __GXX_ABI_VERSION
+    #define __GXX_ABI_VERSION 1002
+    #undef __INT16_C_SUFFIX__
+    #define __INT16_C_SUFFIX__
+    #undef __INT16_FMTd__
+    #define __INT16_FMTd__ "d"
+    #undef __INT16_FMTi__
+    #define __INT16_FMTi__ "i"
+    #undef __INT16_MAX__
+    #define __INT16_MAX__ 32767
+    #undef __INT16_TYPE__
+    #define __INT16_TYPE__ int
+    #undef __INT32_C_SUFFIX__
+    #define __INT32_C_SUFFIX__ L
+    #undef __INT32_FMTd__
+    #define __INT32_FMTd__ "ld"
+    #undef __INT32_FMTi__
+    #define __INT32_FMTi__ "li"
+    #undef __INT32_MAX__
+    #define __INT32_MAX__ 2147483647L
+    #undef __INT32_TYPE__
+    #define __INT32_TYPE__ long int
+    #undef __INT64_C_SUFFIX__
+    #define __INT64_C_SUFFIX__ LL
+    #undef __INT64_FMTd__
+    #define __INT64_FMTd__ "lld"
+    #undef __INT64_FMTi__
+    #define __INT64_FMTi__ "lli"
+    #undef __INT64_MAX__
+    #define __INT64_MAX__ 9223372036854775807LL
+    #undef __INT64_TYPE__
+    #define __INT64_TYPE__ long long int
+    #undef __INT8_C_SUFFIX__
+    #define __INT8_C_SUFFIX__
+    #undef __INT8_FMTd__
+    #define __INT8_FMTd__ "hhd"
+    #undef __INT8_FMTi__
+    #define __INT8_FMTi__ "hhi"
+    #undef __INT8_MAX__
+    #define __INT8_MAX__ 127
+    #undef __INT8_TYPE__
+    #define __INT8_TYPE__ signed char
+    #undef __INTMAX_C_SUFFIX__
+    #define __INTMAX_C_SUFFIX__ LL
+    #undef __INTMAX_FMTd__
+    #define __INTMAX_FMTd__ "lld"
+    #undef __INTMAX_FMTi__
+    #define __INTMAX_FMTi__ "lli"
+    #undef __INTMAX_MAX__
+    #define __INTMAX_MAX__ 9223372036854775807LL
+    #undef __INTMAX_TYPE__
+    #define __INTMAX_TYPE__ long long int
+    #undef __INTMAX_WIDTH__
+    #define __INTMAX_WIDTH__ 64
+    #undef __INTPTR_FMTd__
+    #define __INTPTR_FMTd__ "d"
+    #undef __INTPTR_FMTi__
+    #define __INTPTR_FMTi__ "i"
+    #undef __INTPTR_MAX__
+    #define __INTPTR_MAX__ 32767
+    #undef __INTPTR_TYPE__
+    #define __INTPTR_TYPE__ int
+    #undef __INTPTR_WIDTH__
+    #define __INTPTR_WIDTH__ 16
+    #undef __INT_FAST16_FMTd__
+    #define __INT_FAST16_FMTd__ "d"
+    #undef __INT_FAST16_FMTi__
+    #define __INT_FAST16_FMTi__ "i"
+    #undef __INT_FAST16_MAX__
+    #define __INT_FAST16_MAX__ 32767
+    #undef __INT_FAST16_TYPE__
+    #define __INT_FAST16_TYPE__ int
+    #undef __INT_FAST16_WIDTH__
+    #define __INT_FAST16_WIDTH__ 16
+    #undef __INT_FAST32_FMTd__
+    #define __INT_FAST32_FMTd__ "ld"
+    #undef __INT_FAST32_FMTi__
+    #define __INT_FAST32_FMTi__ "li"
+    #undef __INT_FAST32_MAX__
+    #define __INT_FAST32_MAX__ 2147483647L
+    #undef __INT_FAST32_TYPE__
+    #define __INT_FAST32_TYPE__ long int
+    #undef __INT_FAST32_WIDTH__
+    #define __INT_FAST32_WIDTH__ 32
+    #undef __INT_FAST64_FMTd__
+    #define __INT_FAST64_FMTd__ "lld"
+    #undef __INT_FAST64_FMTi__
+    #define __INT_FAST64_FMTi__ "lli"
+    #undef __INT_FAST64_MAX__
+    #define __INT_FAST64_MAX__ 9223372036854775807LL
+    #undef __INT_FAST64_TYPE__
+    #define __INT_FAST64_TYPE__ long long int
+    #undef __INT_FAST64_WIDTH__
+    #define __INT_FAST64_WIDTH__ 64
+    #undef __INT_FAST8_FMTd__
+    #define __INT_FAST8_FMTd__ "hhd"
+    #undef __INT_FAST8_FMTi__
+    #define __INT_FAST8_FMTi__ "hhi"
+    #undef __INT_FAST8_MAX__
+    #define __INT_FAST8_MAX__ 127
+    #undef __INT_FAST8_TYPE__
+    #define __INT_FAST8_TYPE__ signed char
+    #undef __INT_FAST8_WIDTH__
+    #define __INT_FAST8_WIDTH__ 8
+    #undef __INT_LEAST16_FMTd__
+    #define __INT_LEAST16_FMTd__ "d"
+    #undef __INT_LEAST16_FMTi__
+    #define __INT_LEAST16_FMTi__ "i"
+    #undef __INT_LEAST16_MAX__
+    #define __INT_LEAST16_MAX__ 32767
+    #undef __INT_LEAST16_TYPE__
+    #define __INT_LEAST16_TYPE__ int
+    #undef __INT_LEAST16_WIDTH__
+    #define __INT_LEAST16_WIDTH__ 16
+    #undef __INT_LEAST32_FMTd__
+    #define __INT_LEAST32_FMTd__ "ld"
+    #undef __INT_LEAST32_FMTi__
+    #define __INT_LEAST32_FMTi__ "li"
+    #undef __INT_LEAST32_MAX__
+    #define __INT_LEAST32_MAX__ 2147483647L
+    #undef __INT_LEAST32_TYPE__
+    #define __INT_LEAST32_TYPE__ long int
+    #undef __INT_LEAST32_WIDTH__
+    #define __INT_LEAST32_WIDTH__ 32
+    #undef __INT_LEAST64_FMTd__
+    #define __INT_LEAST64_FMTd__ "lld"
+    #undef __INT_LEAST64_FMTi__
+    #define __INT_LEAST64_FMTi__ "lli"
+    #undef __INT_LEAST64_MAX__
+    #define __INT_LEAST64_MAX__ 9223372036854775807LL
+    #undef __INT_LEAST64_TYPE__
+    #define __INT_LEAST64_TYPE__ long long int
+    #undef __INT_LEAST64_WIDTH__
+    #define __INT_LEAST64_WIDTH__ 64
+    #undef __INT_LEAST8_FMTd__
+    #define __INT_LEAST8_FMTd__ "hhd"
+    #undef __INT_LEAST8_FMTi__
+    #define __INT_LEAST8_FMTi__ "hhi"
+    #undef __INT_LEAST8_MAX__
+    #define __INT_LEAST8_MAX__ 127
+    #undef __INT_LEAST8_TYPE__
+    #define __INT_LEAST8_TYPE__ signed char
+    #undef __INT_LEAST8_WIDTH__
+    #define __INT_LEAST8_WIDTH__ 8
+    #undef __INT_MAX__
+    #define __INT_MAX__ 32767
+    #undef __INT_WIDTH__
+    #define __INT_WIDTH__ 16
+    #undef __LDBL_DECIMAL_DIG__
+    #define __LDBL_DECIMAL_DIG__ 9
+    #undef __LDBL_DENORM_MIN__
+    #define __LDBL_DENORM_MIN__ 1.40129846e-45L
+    #undef __LDBL_DIG__
+    #define __LDBL_DIG__ 6
+    #undef __LDBL_EPSILON__
+    #define __LDBL_EPSILON__ 1.19209290e-7L
+    #undef __LDBL_HAS_DENORM__
+    #define __LDBL_HAS_DENORM__ 1
+    #undef __LDBL_HAS_INFINITY__
+    #define __LDBL_HAS_INFINITY__ 1
+    #undef __LDBL_HAS_QUIET_NAN__
+    #define __LDBL_HAS_QUIET_NAN__ 1
+    #undef __LDBL_MANT_DIG__
+    #define __LDBL_MANT_DIG__ 24
+    #undef __LDBL_MAX_10_EXP__
+    #define __LDBL_MAX_10_EXP__ 38
+    #undef __LDBL_MAX_EXP__
+    #define __LDBL_MAX_EXP__ 128
+    #undef __LDBL_MAX__
+    #define __LDBL_MAX__ 3.40282347e+38L
+    #undef __LDBL_MIN_10_EXP__
+    #define __LDBL_MIN_10_EXP__ (-37)
+    #undef __LDBL_MIN_EXP__
+    #define __LDBL_MIN_EXP__ (-125)
+    #undef __LDBL_MIN__
+    #define __LDBL_MIN__ 1.17549435e-38L
+    #undef __LITTLE_ENDIAN__
+    #define __LITTLE_ENDIAN__ 1
+    #undef __LLONG_WIDTH__
+    #define __LLONG_WIDTH__ 64
+    #undef __LONG_LONG_MAX__
+    #define __LONG_LONG_MAX__ 9223372036854775807LL
+    #undef __LONG_MAX__
+    #define __LONG_MAX__ 2147483647L
+    #undef __LONG_WIDTH__
+    #define __LONG_WIDTH__ 32
+    #undef __NO_INLINE__
+    #define __NO_INLINE__ 1
+    #undef __OBJC_BOOL_IS_BOOL
+    #define __OBJC_BOOL_IS_BOOL 0
+    #undef __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES
+    #define __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES 3
+    #undef __OPENCL_MEMORY_SCOPE_DEVICE
+    #define __OPENCL_MEMORY_SCOPE_DEVICE 2
+    #undef __OPENCL_MEMORY_SCOPE_SUB_GROUP
+    #define __OPENCL_MEMORY_SCOPE_SUB_GROUP 4
+    #undef __OPENCL_MEMORY_SCOPE_WORK_GROUP
+    #define __OPENCL_MEMORY_SCOPE_WORK_GROUP 1
+    #undef __OPENCL_MEMORY_SCOPE_WORK_ITEM
+    #define __OPENCL_MEMORY_SCOPE_WORK_ITEM 0
+    #undef __ORDER_BIG_ENDIAN__
+    #define __ORDER_BIG_ENDIAN__ 4321
+    #undef __ORDER_LITTLE_ENDIAN__
+    #define __ORDER_LITTLE_ENDIAN__ 1234
+    #undef __ORDER_PDP_ENDIAN__
+    #define __ORDER_PDP_ENDIAN__ 3412
+    #undef __POINTER_WIDTH__
+    #define __POINTER_WIDTH__ 16
+    #undef __PRAGMA_REDEFINE_EXTNAME
+    #define __PRAGMA_REDEFINE_EXTNAME 1
+    #undef __PTRDIFF_FMTd__
+    #define __PTRDIFF_FMTd__ "d"
+    #undef __PTRDIFF_FMTi__
+    #define __PTRDIFF_FMTi__ "i"
+    #undef __PTRDIFF_MAX__
+    #define __PTRDIFF_MAX__ 32767
+    #undef __PTRDIFF_TYPE__
+    #define __PTRDIFF_TYPE__ int
+    #undef __PTRDIFF_WIDTH__
+    #define __PTRDIFF_WIDTH__ 16
+    #undef __SCHAR_MAX__
+    #define __SCHAR_MAX__ 127
+    #undef __SHRT_MAX__
+    #define __SHRT_MAX__ 32767
+    #undef __SHRT_WIDTH__
+    #define __SHRT_WIDTH__ 16
+    #undef __SIG_ATOMIC_MAX__
+    #define __SIG_ATOMIC_MAX__ 127
+    #undef __SIG_ATOMIC_WIDTH__
+    #define __SIG_ATOMIC_WIDTH__ 8
+    #undef __SIZEOF_DOUBLE__
+    #define __SIZEOF_DOUBLE__ 4
+    #undef __SIZEOF_FLOAT__
+    #define __SIZEOF_FLOAT__ 4
+    #undef __SIZEOF_INT__
+    #define __SIZEOF_INT__ 2
+    #undef __SIZEOF_LONG_DOUBLE__
+    #define __SIZEOF_LONG_DOUBLE__ 4
+    #undef __SIZEOF_LONG_LONG__
+    #define __SIZEOF_LONG_LONG__ 8
+    #undef __SIZEOF_LONG__
+    #define __SIZEOF_LONG__ 4
+    #undef __SIZEOF_POINTER__
+    #define __SIZEOF_POINTER__ 2
+    #undef __SIZEOF_PTRDIFF_T__
+    #define __SIZEOF_PTRDIFF_T__ 2
+    #undef __SIZEOF_SHORT__
+    #define __SIZEOF_SHORT__ 2
+    #undef __SIZEOF_SIZE_T__
+    #define __SIZEOF_SIZE_T__ 2
+    #undef __SIZEOF_WCHAR_T__
+    #define __SIZEOF_WCHAR_T__ 2
+    #undef __SIZEOF_WINT_T__
+    #define __SIZEOF_WINT_T__ 2
+    #undef __SIZE_FMTX__
+    #define __SIZE_FMTX__ "X"
+    #undef __SIZE_FMTo__
+    #define __SIZE_FMTo__ "o"
+    #undef __SIZE_FMTu__
+    #define __SIZE_FMTu__ "u"
+    #undef __SIZE_FMTx__
+    #define __SIZE_FMTx__ "x"
+    #undef __SIZE_MAX__
+    #define __SIZE_MAX__ 65535U
+    #undef __SIZE_TYPE__
+    #define __SIZE_TYPE__ unsigned int
+    #undef __SIZE_WIDTH__
+    #define __SIZE_WIDTH__ 16
+    #undef __UINT16_C_SUFFIX__
+    #define __UINT16_C_SUFFIX__ U
+    #undef __UINT16_FMTX__
+    #define __UINT16_FMTX__ "X"
+    #undef __UINT16_FMTo__
+    #define __UINT16_FMTo__ "o"
+    #undef __UINT16_FMTu__
+    #define __UINT16_FMTu__ "u"
+    #undef __UINT16_FMTx__
+    #define __UINT16_FMTx__ "x"
+    #undef __UINT16_MAX__
+    #define __UINT16_MAX__ 65535U
+    #undef __UINT16_TYPE__
+    #define __UINT16_TYPE__ unsigned int
+    #undef __UINT32_C_SUFFIX__
+    #define __UINT32_C_SUFFIX__ UL
+    #undef __UINT32_FMTX__
+    #define __UINT32_FMTX__ "lX"
+    #undef __UINT32_FMTo__
+    #define __UINT32_FMTo__ "lo"
+    #undef __UINT32_FMTu__
+    #define __UINT32_FMTu__ "lu"
+    #undef __UINT32_FMTx__
+    #define __UINT32_FMTx__ "lx"
+    #undef __UINT32_MAX__
+    #define __UINT32_MAX__ 4294967295UL
+    #undef __UINT32_TYPE__
+    #define __UINT32_TYPE__ long unsigned int
+    #undef __UINT64_C_SUFFIX__
+    #define __UINT64_C_SUFFIX__ ULL
+    #undef __UINT64_FMTX__
+    #define __UINT64_FMTX__ "llX"
+    #undef __UINT64_FMTo__
+    #define __UINT64_FMTo__ "llo"
+    #undef __UINT64_FMTu__
+    #define __UINT64_FMTu__ "llu"
+    #undef __UINT64_FMTx__
+    #define __UINT64_FMTx__ "llx"
+    #undef __UINT64_MAX__
+    #define __UINT64_MAX__ 18446744073709551615ULL
+    #undef __UINT64_TYPE__
+    #define __UINT64_TYPE__ long long unsigned int
+    #undef __UINT8_C_SUFFIX__
+    #define __UINT8_C_SUFFIX__
+    #undef __UINT8_FMTX__
+    #define __UINT8_FMTX__ "hhX"
+    #undef __UINT8_FMTo__
+    #define __UINT8_FMTo__ "hho"
+    #undef __UINT8_FMTu__
+    #define __UINT8_FMTu__ "hhu"
+    #undef __UINT8_FMTx__
+    #define __UINT8_FMTx__ "hhx"
+    #undef __UINT8_MAX__
+    #define __UINT8_MAX__ 255
+    #undef __UINT8_TYPE__
+    #define __UINT8_TYPE__ unsigned char
+    #undef __UINTMAX_C_SUFFIX__
+    #define __UINTMAX_C_SUFFIX__ ULL
+    #undef __UINTMAX_FMTX__
+    #define __UINTMAX_FMTX__ "llX"
+    #undef __UINTMAX_FMTo__
+    #define __UINTMAX_FMTo__ "llo"
+    #undef __UINTMAX_FMTu__
+    #define __UINTMAX_FMTu__ "llu"
+    #undef __UINTMAX_FMTx__
+    #define __UINTMAX_FMTx__ "llx"
+    #undef __UINTMAX_MAX__
+    #define __UINTMAX_MAX__ 18446744073709551615ULL
+    #undef __UINTMAX_TYPE__
+    #define __UINTMAX_TYPE__ long long unsigned int
+    #undef __UINTMAX_WIDTH__
+    #define __UINTMAX_WIDTH__ 64
+    #undef __UINTPTR_FMTX__
+    #define __UINTPTR_FMTX__ "X"
+    #undef __UINTPTR_FMTo__
+    #define __UINTPTR_FMTo__ "o"
+    #undef __UINTPTR_FMTu__
+    #define __UINTPTR_FMTu__ "u"
+    #undef __UINTPTR_FMTx__
+    #define __UINTPTR_FMTx__ "x"
+    #undef __UINTPTR_MAX__
+    #define __UINTPTR_MAX__ 65535U
+    #undef __UINTPTR_TYPE__
+    #define __UINTPTR_TYPE__ unsigned int
+    #undef __UINTPTR_WIDTH__
+    #define __UINTPTR_WIDTH__ 16
+    #undef __UINT_FAST16_FMTX__
+    #define __UINT_FAST16_FMTX__ "X"
+    #undef __UINT_FAST16_FMTo__
+    #define __UINT_FAST16_FMTo__ "o"
+    #undef __UINT_FAST16_FMTu__
+    #define __UINT_FAST16_FMTu__ "u"
+    #undef __UINT_FAST16_FMTx__
+    #define __UINT_FAST16_FMTx__ "x"
+    #undef __UINT_FAST16_MAX__
+    #define __UINT_FAST16_MAX__ 65535U
+    #undef __UINT_FAST16_TYPE__
+    #define __UINT_FAST16_TYPE__ unsigned int
+    #undef __UINT_FAST32_FMTX__
+    #define __UINT_FAST32_FMTX__ "lX"
+    #undef __UINT_FAST32_FMTo__
+    #define __UINT_FAST32_FMTo__ "lo"
+    #undef __UINT_FAST32_FMTu__
+    #define __UINT_FAST32_FMTu__ "lu"
+    #undef __UINT_FAST32_FMTx__
+    #define __UINT_FAST32_FMTx__ "lx"
+    #undef __UINT_FAST32_MAX__
+    #define __UINT_FAST32_MAX__ 4294967295UL
+    #undef __UINT_FAST32_TYPE__
+    #define __UINT_FAST32_TYPE__ long unsigned int
+    #undef __UINT_FAST64_FMTX__
+    #define __UINT_FAST64_FMTX__ "llX"
+    #undef __UINT_FAST64_FMTo__
+    #define __UINT_FAST64_FMTo__ "llo"
+    #undef __UINT_FAST64_FMTu__
+    #define __UINT_FAST64_FMTu__ "llu"
+    #undef __UINT_FAST64_FMTx__
+    #define __UINT_FAST64_FMTx__ "llx"
+    #undef __UINT_FAST64_MAX__
+    #define __UINT_FAST64_MAX__ 18446744073709551615ULL
+    #undef __UINT_FAST64_TYPE__
+    #define __UINT_FAST64_TYPE__ long long unsigned int
+    #undef __UINT_FAST8_FMTX__
+    #define __UINT_FAST8_FMTX__ "hhX"
+    #undef __UINT_FAST8_FMTo__
+    #define __UINT_FAST8_FMTo__ "hho"
+    #undef __UINT_FAST8_FMTu__
+    #define __UINT_FAST8_FMTu__ "hhu"
+    #undef __UINT_FAST8_FMTx__
+    #define __UINT_FAST8_FMTx__ "hhx"
+    #undef __UINT_FAST8_MAX__
+    #define __UINT_FAST8_MAX__ 255
+    #undef __UINT_FAST8_TYPE__
+    #define __UINT_FAST8_TYPE__ unsigned char
+    #undef __UINT_LEAST16_FMTX__
+    #define __UINT_LEAST16_FMTX__ "X"
+    #undef __UINT_LEAST16_FMTo__
+    #define __UINT_LEAST16_FMTo__ "o"
+    #undef __UINT_LEAST16_FMTu__
+    #define __UINT_LEAST16_FMTu__ "u"
+    #undef __UINT_LEAST16_FMTx__
+    #define __UINT_LEAST16_FMTx__ "x"
+    #undef __UINT_LEAST16_MAX__
+    #define __UINT_LEAST16_MAX__ 65535U
+    #undef __UINT_LEAST16_TYPE__
+    #define __UINT_LEAST16_TYPE__ unsigned int
+    #undef __UINT_LEAST32_FMTX__
+    #define __UINT_LEAST32_FMTX__ "lX"
+    #undef __UINT_LEAST32_FMTo__
+    #define __UINT_LEAST32_FMTo__ "lo"
+    #undef __UINT_LEAST32_FMTu__
+    #define __UINT_LEAST32_FMTu__ "lu"
+    #undef __UINT_LEAST32_FMTx__
+    #define __UINT_LEAST32_FMTx__ "lx"
+    #undef __UINT_LEAST32_MAX__
+    #define __UINT_LEAST32_MAX__ 4294967295UL
+    #undef __UINT_LEAST32_TYPE__
+    #define __UINT_LEAST32_TYPE__ long unsigned int
+    #undef __UINT_LEAST64_FMTX__
+    #define __UINT_LEAST64_FMTX__ "llX"
+    #undef __UINT_LEAST64_FMTo__
+    #define __UINT_LEAST64_FMTo__ "llo"
+    #undef __UINT_LEAST64_FMTu__
+    #define __UINT_LEAST64_FMTu__ "llu"
+    #undef __UINT_LEAST64_FMTx__
+    #define __UINT_LEAST64_FMTx__ "llx"
+    #undef __UINT_LEAST64_MAX__
+    #define __UINT_LEAST64_MAX__ 18446744073709551615ULL
+    #undef __UINT_LEAST64_TYPE__
+    #define __UINT_LEAST64_TYPE__ long long unsigned int
+    #undef __UINT_LEAST8_FMTX__
+    #define __UINT_LEAST8_FMTX__ "hhX"
+    #undef __UINT_LEAST8_FMTo__
+    #define __UINT_LEAST8_FMTo__ "hho"
+    #undef __UINT_LEAST8_FMTu__
+    #define __UINT_LEAST8_FMTu__ "hhu"
+    #undef __UINT_LEAST8_FMTx__
+    #define __UINT_LEAST8_FMTx__ "hhx"
+    #undef __UINT_LEAST8_MAX__
+    #define __UINT_LEAST8_MAX__ 255
+    #undef __UINT_LEAST8_TYPE__
+    #define __UINT_LEAST8_TYPE__ unsigned char
+    #undef __USER_LABEL_PREFIX__
+    #define __USER_LABEL_PREFIX__
+    #undef __VERSION__
+    #define __VERSION__ "Clang 15.0.7"
+    #undef __WCHAR_MAX__
+    #define __WCHAR_MAX__ 32767
+    #undef __WCHAR_TYPE__
+    #define __WCHAR_TYPE__ int
+    #undef __WCHAR_WIDTH__
+    #define __WCHAR_WIDTH__ 16
+    #undef __WINT_MAX__
+    #define __WINT_MAX__ 32767
+    #undef __WINT_TYPE__
+    #define __WINT_TYPE__ int
+    #undef __WINT_WIDTH__
+    #define __WINT_WIDTH__ 16
+    #undef __clang__
+    #define __clang__ 1
+    #undef __clang_literal_encoding__
+    #define __clang_literal_encoding__ "UTF-8"
+    #undef __clang_major__
+    #define __clang_major__ 15
+    #undef __clang_minor__
+    #define __clang_minor__ 0
+    #undef __clang_patchlevel__
+    #define __clang_patchlevel__ 7
+    #undef __clang_version__
+    #define __clang_version__ "15.0.7 "
+    #undef __clang_wide_literal_encoding__
+    #define __clang_wide_literal_encoding__ "UTF-16"
+    #undef __llvm__
+    #define __llvm__ 1
+eof: (-1)
+errno:
+    e2big: ((int)(66072050 & 0xffff))
+    eacces: ((int)(66072050 & 0xffff))
+    eaddrinuse: ((int)(66072050 & 0xffff))
+    eaddrnotavail: ((int)(66072050 & 0xffff))
+    eafnosupport: ((int)(66072050 & 0xffff))
+    eagain: ((int)(66072050 & 0xffff))
+    ealready: ((int)(66072050 & 0xffff))
+    ebade: '52'
+    ebadf: ((int)(66072050 & 0xffff))
+    ebadfd: '77'
+    ebadmsg: '74'
+    ebadr: '53'
+    ebadrqc: '56'
+    ebadslt: '57'
+    ebusy: ((int)(66072050 & 0xffff))
+    ecanceled: '125'
+    echild: ((int)(66072050 & 0xffff))
+    echrng: '44'
+    ecomm: '70'
+    econnaborted: ((int)(66072050 & 0xffff))
+    econnrefused: ((int)(66072050 & 0xffff))
+    econnreset: ((int)(66072050 & 0xffff))
+    edeadlk: ((int)(66072050 & 0xffff))
+    edeadlock: ((int)(66072050 & 0xffff))
+    edestaddrreq: ((int)(66072050 & 0xffff))
+    edom: '33'
+    edquot: '122'
+    eexist: ((int)(66072050 & 0xffff))
+    efault: ((int)(66072050 & 0xffff))
+    efbig: ((int)(66072050 & 0xffff))
+    ehostdown: '112'
+    ehostunreach: ((int)(66072050 & 0xffff))
+    eidrm: '43'
+    eilseq: ((int)(66072050 & 0xffff))
+    einprogress: ((int)(66072050 & 0xffff))
+    eintr: ((int)(2453066 & 0x7fff))
+    einval: ((int)(66072050 & 0xffff))
+    eio: ((int)(66072050 & 0xffff))
+    eisconn: ((int)(66072050 & 0xffff))
+    eisdir: ((int)(66072050 & 0xffff))
+    eisnam: '120'
+    ekeyexpired: '127'
+    ekeyrejected: '129'
+    ekeyrevoked: '128'
+    el2hlt: '51'
+    el2nsync: '45'
+    el3hlt: '46'
+    el3rst: '47'
+    elibacc: '79'
+    elibbad: '80'
+    elibexec: '83'
+    elibmax: '82'
+    elibscn: '81'
+    eloop: ((int)(66072050 & 0xffff))
+    emediumtype: '124'
+    emfile: ((int)(66072050 & 0xffff))
+    emlink: ((int)(66072050 & 0xffff))
+    emsgsize: ((int)(66072050 & 0xffff))
+    emultihop: '72'
+    enametoolong: ((int)(66072050 & 0xffff))
+    enetdown: ((int)(66072050 & 0xffff))
+    enetreset: ((int)(66072050 & 0xffff))
+    enetunreach: ((int)(66072050 & 0xffff))
+    enfile: ((int)(66072050 & 0xffff))
+    enobufs: ((int)(66072050 & 0xffff))
+    enodata: '61'
+    enodev: ((int)(66072050 & 0xffff))
+    enoent: ((int)(66072050 & 0xffff))
+    enoexec: ((int)(66072050 & 0xffff))
+    enokey: '126'
+    enolck: ((int)(66072050 & 0xffff))
+    enolink: '67'
+    enomedium: '123'
+    enomem: ((int)(66072050 & 0xffff))
+    enomsg: ((int)(66072050 & 0xffff))
+    enonet: '64'
+    enopkg: '65'
+    enoprotoopt: ((int)(66072050 & 0xffff))
+    enospc: ((int)(66072050 & 0xffff))
+    enosr: '63'
+    enostr: '60'
+    enosys: ((int)(66081697 & 0x7fff))
+    enotblk: '15'
+    enotconn: ((int)(66072050 & 0xffff))
+    enotdir: ((int)(66072050 & 0xffff))
+    enotempty: ((int)(66072050 & 0xffff))
+    enotrecoverable: '131'
+    enotsock: ((int)(66072050 & 0xffff))
+    enotty: ((int)(66072050 & 0xffff))
+    enotuniq: '76'
+    enxio: ((int)(66072050 & 0xffff))
+    eopnotsupp: ((int)(66072050 & 0xffff))
+    eoverflow: '75'
+    eownerdead: '130'
+    eperm: ((int)(66072050 & 0xffff))
+    epfnosupport: '96'
+    epipe: ((int)(66072050 & 0xffff))
+    eproto: '71'
+    eprotonosupport: ((int)(66072050 & 0xffff))
+    eprototype: ((int)(66072050 & 0xffff))
+    erange: '34'
+    eremchg: '78'
+    eremote: '66'
+    eremoteio: '121'
+    erestart: '85'
+    erofs: ((int)(66072050 & 0xffff))
+    eshutdown: '108'
+    esocktnosupport: '94'
+    espipe: ((int)(66072050 & 0xffff))
+    esrch: ((int)(66072050 & 0xffff))
+    estale: '116'
+    estrpipe: '86'
+    etime: '62'
+    etimedout: ((int)(66072050 & 0xffff))
+    etxtbsy: '26'
+    euclean: '117'
+    eunatch: '49'
+    eusers: '87'
+    ewouldblock: ((int)(66072050 & 0xffff))
+    exdev: ((int)(66072050 & 0xffff))
+    exfull: '54'
+filename_max: FILENAME_MAX
+fopen_max: FOPEN_MAX
+has__builtin_va_list: true
+host_name_max: '64'
+int_fast16_t: int
+int_fast32_t: long
+int_fast64_t: long long
+int_fast8_t: signed char
+intptr_t: int
+l_tmpnam: L_tmpnam
+little_endian: true
+machdep_name: machdep_avr_8
+mb_cur_max: ((size_t)16)
+nsig: ''
+path_max: '4096'
+posix_version: ''
+ptrdiff_t: int
+rand_max: '0x7FFF'
+sig_atomic_t: ''
+size_t: unsigned int
+sizeof_double: 4
+sizeof_float: 4
+sizeof_fun: 1
+sizeof_int: 2
+sizeof_long: 4
+sizeof_longdouble: 4
+sizeof_longlong: 8
+sizeof_ptr: 2
+sizeof_short: 2
+sizeof_void: 1
+ssize_t: ''
+time_t: unsigned long
+tmp_max: TMP_MAX
+tty_name_max: '32'
+uint_fast16_t: unsigned int
+uint_fast32_t: unsigned long
+uint_fast64_t: unsigned long long
+uint_fast8_t: unsigned char
+uintptr_t: unsigned int
+version: clang version 15.0.7
+wchar_t: int
+weof: (0xffffffffu)
+wint_t: int
+wordsize: '32'
diff --git a/share/machdeps/machdep_x86_16.yaml b/share/machdeps/machdep_x86_16.yaml
index 3d6cd2109e191045a9d6c250e00a1e320cb8976b..a4584719f214eb3c6e1b3ba700e7a1ca6a429bbd 100644
--- a/share/machdeps/machdep_x86_16.yaml
+++ b/share/machdeps/machdep_x86_16.yaml
@@ -13,7 +13,750 @@ char_is_unsigned: false
 compiler: generic
 cpp_arch_flags:
 - -m16
-custom_defs: ''
+
+# 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
+
 errno:
     e2big: '7'
     eacces: '13'
diff --git a/share/machdeps/make_machdep/make_machdep.py b/share/machdeps/make_machdep/make_machdep.py
index 05648e95b351589fffb78bee4aeb2b0ca89076a5..1b47793b2272156bda9683ec0748479331b5c00c 100755
--- a/share/machdeps/make_machdep/make_machdep.py
+++ b/share/machdeps/make_machdep/make_machdep.py
@@ -222,35 +222,42 @@ def find_value(name, typ, output):
         def conversion(x):
             return x == "True"
 
+        default = False
+
     elif typ == "number":
         expected = "([0-9]+)"
 
         def conversion(x):
             return int(x)
 
+        default = -1
+
     elif typ == "type":
         expected = "`([^`]+)`"
 
         def conversion(x):
             return x
 
+        default = ''
+
     else:
         warnings.warn(f"unexpected type '{typ}' for field '{name}', skipping")
         return
-    msg = re.compile(name + " is " + expected)
-    res = re.search(msg, output)
-    if res:
-        if name in machdep:
+    if name in machdep:
+        msg = re.compile(name + " is " + expected)
+        res = re.search(msg, output)
+        if res:
             value = conversion(res.group(1))
             if args.verbose:
                 print(f"[INFO] setting {name} to {value}")
             machdep[name] = value
         else:
-            warnings.warn(f"unexpected symbol '{name}', ignoring")
+            warnings.warn(f"cannot find value of field '{name}', using default value: '{default}'")
+            machdep[name] = default
+            if args.verbose:
+                print(f"compiler output is:{output}")
     else:
-        warnings.warn(f"cannot find value of field '{name}', skipping")
-        if args.verbose:
-            print(f"compiler output is:{output}")
+        warnings.warn(f"unexpected symbol '{name}', ignoring")
 
 
 def cleanup_cpp(output):
diff --git a/share/machdeps/make_machdep/posix_version.c b/share/machdeps/make_machdep/posix_version.c
index 080e2ced861d9a6839d34f6958701e6a1d91a8ab..6bc85993a4604ec219e945f4d08da6f662fd391a 100644
--- a/share/machdeps/make_machdep/posix_version.c
+++ b/share/machdeps/make_machdep/posix_version.c
@@ -22,4 +22,8 @@
 
 #include <unistd.h>
 
+#ifdef _POSIX_VERSION
 long posix_version_is = _POSIX_VERSION;
+#else
+#error "not a posix arch"
+#endif
diff --git a/share/machdeps/make_machdep/sig_atomic_t.c b/share/machdeps/make_machdep/sig_atomic_t.c
index f06be916baf72551844b51a0d288f651ee828c42..9141b3d9a7c0261d419d9260bfb449c9a2b7bb78 100644
--- a/share/machdeps/make_machdep/sig_atomic_t.c
+++ b/share/machdeps/make_machdep/sig_atomic_t.c
@@ -25,6 +25,11 @@
 
 #define TEST_TYPE sig_atomic_t
 
+TEST_TYPE_IS(char)
+TEST_TYPE_IS(unsigned char)
+TEST_TYPE_IS(signed char)
+TEST_TYPE_IS(unsigned short)
+TEST_TYPE_IS(short)
 TEST_TYPE_IS(unsigned int)
 TEST_TYPE_IS(int)
 TEST_TYPE_IS(unsigned long)
diff --git a/share/machdeps/make_machdep/ssize_t.c b/share/machdeps/make_machdep/ssize_t.c
index 95260cbfc104dff21dff8ee2209828879fa532cf..3f8de4170d217c8a600929955bd79e2dc712602b 100644
--- a/share/machdeps/make_machdep/ssize_t.c
+++ b/share/machdeps/make_machdep/ssize_t.c
@@ -25,6 +25,8 @@
 
 #define TEST_TYPE ssize_t
 
+TEST_TYPE_IS(char)
+TEST_TYPE_IS(short)
 TEST_TYPE_IS(int)
 TEST_TYPE_IS(long)
 TEST_TYPE_IS(long long)
diff --git a/src/kernel_internals/runtime/machdep.ml b/src/kernel_internals/runtime/machdep.ml
index a4cf0ee72404b53d0264bb80fd886d5c53c19865..f7742080fd4244c13968c10435f45ffc2a3ce7b8 100644
--- a/src/kernel_internals/runtime/machdep.ml
+++ b/src/kernel_internals/runtime/machdep.ml
@@ -184,15 +184,19 @@ let gen_sizeof_std fmt mach =
   gen_sizeof fmt "LONGLONG" mach.sizeof_longlong
 
 let gen_intlike_min fmt name repr mach =
-  let macro = name ^ "_MIN" in
-  let repr_name, is_signed = List.assoc repr (std_type_name mach) in
-  if is_signed then gen_define_string fmt macro ("__FC_" ^ repr_name ^ "_MIN")
-  else gen_define_int fmt macro 0
+  if repr <> "" then begin
+    let macro = name ^ "_MIN" in
+    let repr_name, is_signed = List.assoc repr (std_type_name mach) in
+    if is_signed then gen_define_string fmt macro ("__FC_" ^ repr_name ^ "_MIN")
+    else gen_define_int fmt macro 0
+  end
 
 let gen_intlike_max fmt name repr mach =
-  let macro = name ^ "_MAX" in
-  let repr_name, _ = List.assoc repr (std_type_name mach) in
-  gen_define_string fmt macro ("__FC_" ^ repr_name ^ "_MAX")
+  if repr <> "" then begin
+    let macro = name ^ "_MAX" in
+    let repr_name, _ = List.assoc repr (std_type_name mach) in
+    gen_define_string fmt macro ("__FC_" ^ repr_name ^ "_MAX")
+  end
 
 let gen_fast_int fmt bitsize signed repr mach =
   let name = Format.sprintf "_FAST%d" bitsize in
diff --git a/tests/libc/limits_h.c b/tests/libc/limits_h.c
index 2c663b2c5645c1ac80856c0c08a53b438939debf..54c08b971f7eb3f03fbe707e6634b41e55940517 100644
--- a/tests/libc/limits_h.c
+++ b/tests/libc/limits_h.c
@@ -7,6 +7,8 @@
   STDOPT: +"-machdep gcc_x86_64"
   STDOPT: +"-machdep ppc_32"
   STDOPT: +"-machdep msvc_x86_64"
+  STDOPT: +"-machdep avr_8"
+  STDOPT: +"-machdep avr_16"
 */
 #include <sys/types.h>
 #include <stdint.h>
diff --git a/tests/libc/oracle/limits_h.0.res.oracle b/tests/libc/oracle/limits_h.0.res.oracle
index 4d600cd2ba9a445ec6597e43b70a817216471bd2..d42e459085a4be11eaabb8306061dd7af7309f38 100644
--- a/tests/libc/oracle/limits_h.0.res.oracle
+++ b/tests/libc/oracle/limits_h.0.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 6 assertion(s)
diff --git a/tests/libc/oracle/limits_h.1.res.oracle b/tests/libc/oracle/limits_h.1.res.oracle
index 3affdff5cd178c4aaf8f9d2e55e081a1d36a3e60..d78a8936659922e423a02379a1a422f772c7bc8a 100644
--- a/tests/libc/oracle/limits_h.1.res.oracle
+++ b/tests/libc/oracle/limits_h.1.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/libc/oracle/limits_h.2.res.oracle b/tests/libc/oracle/limits_h.2.res.oracle
index f58b4f6de22cafe5371119260e1a015ec9f0f04d..f319e18684ca720670392c267aa897263718e6d4 100644
--- a/tests/libc/oracle/limits_h.2.res.oracle
+++ b/tests/libc/oracle/limits_h.2.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/libc/oracle/limits_h.3.res.oracle b/tests/libc/oracle/limits_h.3.res.oracle
index 4d600cd2ba9a445ec6597e43b70a817216471bd2..d42e459085a4be11eaabb8306061dd7af7309f38 100644
--- a/tests/libc/oracle/limits_h.3.res.oracle
+++ b/tests/libc/oracle/limits_h.3.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 6 assertion(s)
diff --git a/tests/libc/oracle/limits_h.4.res.oracle b/tests/libc/oracle/limits_h.4.res.oracle
index 3affdff5cd178c4aaf8f9d2e55e081a1d36a3e60..d78a8936659922e423a02379a1a422f772c7bc8a 100644
--- a/tests/libc/oracle/limits_h.4.res.oracle
+++ b/tests/libc/oracle/limits_h.4.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/libc/oracle/limits_h.5.res.oracle b/tests/libc/oracle/limits_h.5.res.oracle
index f58b4f6de22cafe5371119260e1a015ec9f0f04d..f319e18684ca720670392c267aa897263718e6d4 100644
--- a/tests/libc/oracle/limits_h.5.res.oracle
+++ b/tests/libc/oracle/limits_h.5.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/libc/oracle/limits_h.6.res.oracle b/tests/libc/oracle/limits_h.6.res.oracle
index 3affdff5cd178c4aaf8f9d2e55e081a1d36a3e60..d78a8936659922e423a02379a1a422f772c7bc8a 100644
--- a/tests/libc/oracle/limits_h.6.res.oracle
+++ b/tests/libc/oracle/limits_h.6.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/libc/oracle/limits_h.7.res.oracle b/tests/libc/oracle/limits_h.7.res.oracle
index c5ca9b76a1d60e30ad18a2156d760d0487b2628c..5cd6ee11b6548aa5c94a7d21ff596a60ece19dbc 100644
--- a/tests/libc/oracle/limits_h.7.res.oracle
+++ b/tests/libc/oracle/limits_h.7.res.oracle
@@ -4,9 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] limits_h.c:16: assertion got status valid.
 [eva] limits_h.c:18: assertion got status valid.
-[eva] limits_h.c:19: assertion got status valid.
 [eva] limits_h.c:20: assertion got status valid.
 [eva] limits_h.c:21: assertion got status valid.
 [eva] limits_h.c:22: assertion got status valid.
@@ -26,6 +24,8 @@
 [eva] limits_h.c:36: assertion got status valid.
 [eva] limits_h.c:37: assertion got status valid.
 [eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
 [eva] Recording results for main
 [eva] done for function main
 [scope:rm_asserts] removing 7 assertion(s)
diff --git a/tests/libc/oracle/limits_h.8.res.oracle b/tests/libc/oracle/limits_h.8.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..01d45df1542894c909d0b1598daad6f65f3e79f0
--- /dev/null
+++ b/tests/libc/oracle/limits_h.8.res.oracle
@@ -0,0 +1,38 @@
+[kernel] Parsing limits_h.c (with preprocessing)
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
+  
+[eva] limits_h.c:18: assertion got status valid.
+[eva] limits_h.c:20: assertion got status valid.
+[eva] limits_h.c:21: assertion got status valid.
+[eva] limits_h.c:22: assertion got status valid.
+[eva] limits_h.c:23: assertion got status valid.
+[eva] limits_h.c:24: assertion got status valid.
+[eva] limits_h.c:25: assertion got status valid.
+[eva] limits_h.c:26: assertion got status valid.
+[eva] limits_h.c:27: assertion got status valid.
+[eva] limits_h.c:28: assertion got status valid.
+[eva] limits_h.c:29: assertion got status valid.
+[eva] limits_h.c:30: assertion got status valid.
+[eva] limits_h.c:31: assertion got status valid.
+[eva] limits_h.c:32: assertion got status valid.
+[eva] limits_h.c:33: assertion got status valid.
+[eva] limits_h.c:34: assertion got status valid.
+[eva] limits_h.c:35: assertion got status valid.
+[eva] limits_h.c:36: assertion got status valid.
+[eva] limits_h.c:37: assertion got status valid.
+[eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
+[eva] Recording results for main
+[eva] done for function main
+[scope:rm_asserts] removing 6 assertion(s)
+[eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function main:
+  size_max ∈ {65535}
+  intptr_max ∈ {32767}
+  intptr_min ∈ {-32768}
+  uintptr_max ∈ {65535}
+  uintmax_max ∈ {18446744073709551615}
diff --git a/tests/libc/oracle/limits_h.9.res.oracle b/tests/libc/oracle/limits_h.9.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..01d45df1542894c909d0b1598daad6f65f3e79f0
--- /dev/null
+++ b/tests/libc/oracle/limits_h.9.res.oracle
@@ -0,0 +1,38 @@
+[kernel] Parsing limits_h.c (with preprocessing)
+[eva] Analyzing a complete application starting at main
+[eva] Computing initial state
+[eva] Initial state computed
+[eva:initial-state] Values of globals at initialization
+  
+[eva] limits_h.c:18: assertion got status valid.
+[eva] limits_h.c:20: assertion got status valid.
+[eva] limits_h.c:21: assertion got status valid.
+[eva] limits_h.c:22: assertion got status valid.
+[eva] limits_h.c:23: assertion got status valid.
+[eva] limits_h.c:24: assertion got status valid.
+[eva] limits_h.c:25: assertion got status valid.
+[eva] limits_h.c:26: assertion got status valid.
+[eva] limits_h.c:27: assertion got status valid.
+[eva] limits_h.c:28: assertion got status valid.
+[eva] limits_h.c:29: assertion got status valid.
+[eva] limits_h.c:30: assertion got status valid.
+[eva] limits_h.c:31: assertion got status valid.
+[eva] limits_h.c:32: assertion got status valid.
+[eva] limits_h.c:33: assertion got status valid.
+[eva] limits_h.c:34: assertion got status valid.
+[eva] limits_h.c:35: assertion got status valid.
+[eva] limits_h.c:36: assertion got status valid.
+[eva] limits_h.c:37: assertion got status valid.
+[eva] limits_h.c:38: assertion got status valid.
+[eva] limits_h.c:39: assertion got status valid.
+[eva] limits_h.c:40: assertion got status valid.
+[eva] Recording results for main
+[eva] done for function main
+[scope:rm_asserts] removing 6 assertion(s)
+[eva] ====== VALUES COMPUTED ======
+[eva:final-states] Values at end of function main:
+  size_max ∈ {65535}
+  intptr_max ∈ {32767}
+  intptr_min ∈ {-32768}
+  uintptr_max ∈ {65535}
+  uintmax_max ∈ {18446744073709551615}