diff --git a/doc/userman/user-analysis-scripts.tex b/doc/userman/user-analysis-scripts.tex
index 451811966051eb65be4325ff23b9b1ce532a021a..e3d1ee5fab5002537d0747de3adebee6d99bed83 100644
--- a/doc/userman/user-analysis-scripts.tex
+++ b/doc/userman/user-analysis-scripts.tex
@@ -162,7 +162,7 @@ such as when multiple test files define a \texttt{main} function.
 \end{itemize}
 
 \subsection{Using a JSON Compilation Database (JCDB)}
-
+\label{sec:using-json-comp}
 Independently of the chosen workflow, some partial information can be retrieved
 when CMake or Makefile scripts are available for compiling the sources.
 They allow the production of a JSON Compilation Database
diff --git a/doc/userman/user-changes.tex b/doc/userman/user-changes.tex
index 51604605640e95544f498f6a89a7a37dd2944533..6d9b6206baeca6c765b323144b0c2956fe614e89 100644
--- a/doc/userman/user-changes.tex
+++ b/doc/userman/user-changes.tex
@@ -5,13 +5,15 @@ release. First we list changes of the last release.
 
 \section*{Frama-C+dev}
 \begin{itemize}
+\item \textbf{Normalizing the Source Code:} document the possibility of
+  undefining builtin macros from the chosen \texttt{-machdep}.
 \item \textbf{Preparing the Sources:} add subsection on standard library about
   portability considerations.
 \end{itemize}
 
 \section*{27.0 (Cobalt)}
 \begin{itemize}
-\item \textbf{Normalizing the Source Code:} new usage of \texttt{-machdep}
+\item \textbf{Normalizing the Source Code:} new usage of \texttt{-machdep}.
 \item \textbf{Normalizing the Source Code:} deprecated option \texttt{-c11}
   (enabled by default).
 \end{itemize}
@@ -26,7 +28,7 @@ release. First we list changes of the last release.
 
 \section*{24.0 (Chromium)}
 \begin{itemize}
-\item \textbf{Standard library (libc):} Section added
+\item \textbf{Standard library (libc):} Section added.
 \end{itemize}
 
 \section*{23.0 (Vanadium)}
@@ -56,7 +58,7 @@ release. First we list changes of the last release.
 \item \textbf{Preparing the Sources:} added option
   \texttt{-cpp-extra-args-per-file}.
 \item \textbf{Customizing Analyzers:} added options
-  \texttt{-warn-invalid-pointer} and \texttt{-warn-pointer-downcast}
+  \texttt{-warn-invalid-pointer} and \texttt{-warn-pointer-downcast}.
 \end{itemize}
 
 \section*{20.0 (Calcium)}
@@ -70,7 +72,7 @@ release. First we list changes of the last release.
 \section*{18.0 (Argon)}
 
 \begin{itemize}
-\item \textbf{Feedback Options:} change options governing status of warning categories
+\item \textbf{Feedback Options:} changed options governing status of warning categories.
 \item \textbf{Normalizing the Source Code:} added category \texttt{@inline} to
 option \texttt{-inline-calls}, and added option \texttt{-remove-inlined}.
 \item \textbf{Customizing Analyzers:} added options
@@ -124,8 +126,8 @@ option \texttt{-inline-calls}, and added option \texttt{-remove-inlined}.
 \section*{Silicon-20161101}
 
 \begin{itemize}
-\item \textbf{Getting Started:} OCaml version greater or equal than 4.05.0 is required
-\item \textbf{Normalizing the Source Code:} New option \texttt{-c11}
+\item \textbf{Getting Started:} OCaml version greater or equal than 4.05.0 is required.
+\item \textbf{Normalizing the Source Code:} New option \texttt{-c11}.
 \end{itemize}
 
 \section*{Aluminium-20160501}
@@ -138,7 +140,7 @@ option \texttt{-inline-calls}, and added option \texttt{-remove-inlined}.
 \item \textbf{Getting Started:} document new option
   \texttt{-<plug-in shortname>-log}.
 \item \textbf{Normalizing the Source Code:} document new options
-  \texttt{-asm-contracts} and\\ \texttt{-asm-contracts-auto-validate}
+  \texttt{-asm-contracts} and\\ \texttt{-asm-contracts-auto-validate}.
 \item \textbf{Graphical User Interface:} Option \texttt{-collect-messages} is
   active by default, and cannot be deactivated.
 \end{itemize}
diff --git a/doc/userman/user-sources.tex b/doc/userman/user-sources.tex
index a30490e6448385e21fea8046bf6589a8cb0e8479..fcda6da07c06a1f52a110e650ec11a1469b82ce2 100644
--- a/doc/userman/user-sources.tex
+++ b/doc/userman/user-sources.tex
@@ -287,7 +287,14 @@ Apart from these default platforms, it is possible to give as argument
 to \texttt{-machdep} option the path of a YAML file containing the information
 needed by \FramaC. The Plug-in Development Guide~\cite{plugin-dev-guide} describes
 this format in more detail, as well as the use of the \texttt{make\_machdep.py}
-script to automatically generate it.
+script to automatically generate it. The YAML schema contains a list of builtin
+macros with their values. However, any such \texttt{MACRO} can be undefined by passing
+\texttt{-UMACRO} in the preprocessor arguments
+(using \texttt{-cpp-extra-args} or its per-file counterpart as in Sect.~\ref{sec:preprocessing},
+or a compilation database as in Sect.~\ref{sec:using-json-comp}). In addition,
+since compilers tend to define builtin macros with a varying number of
+underscores as prefix and suffix, \texttt{-UMACRO} will also undefine
+\texttt{\_MACRO}, \texttt{\_\_MACRO}, \texttt{\_\_MACRO\_\_}, etc.
 
 \item \optiondef{-}{simplify-cfg} allows \FramaC to remove break, continue and
   switch statements. This option is automatically set by some plug-ins that
diff --git a/nix/kernel-tests.nix b/nix/kernel-tests.nix
index f243ca6a08c4858c429a634b04997663c1145329..91451c9310cfb8e9a187abf8c422d2f2954308e2 100644
--- a/nix/kernel-tests.nix
+++ b/nix/kernel-tests.nix
@@ -20,5 +20,6 @@ mk_tests {
       src/plugins/server/tests/batch \
       tests/fc_script \
       tests/syntax
+    make -C share/machdeps check-schema
   '';
 }
diff --git a/nix/mk_tests.nix b/nix/mk_tests.nix
index 9d71cbf776d6cb7f4c005b4d14be62c03abce397..ceab5c12649c87c2822ba1fc6faa433ac6658654 100644
--- a/nix/mk_tests.nix
+++ b/nix/mk_tests.nix
@@ -30,6 +30,7 @@
 , clang
 , frama-c
 , perl
+, python3Packages
 , stdenvNoCC
 , time
 , unixtools
@@ -56,6 +57,7 @@ stdenvNoCC.mkDerivation {
     clang
     frama-c
     perl
+    python3Packages.jsonschema
     time
     unixtools.getopt
     yq
diff --git a/share/machdeps/Makefile b/share/machdeps/Makefile
index f2fc15fd2e11603d2a235e5e64f4aa128eed77e8..5ab36af3da03d87f3de10f582b3c03c2660409de 100644
--- a/share/machdeps/Makefile
+++ b/share/machdeps/Makefile
@@ -39,10 +39,17 @@ machdep_%.yaml: machdep_gcc_%.yaml Makefile
              -e 's/alignof_fun: .*/alignof_fun: -1/' \
              -e 's/compiler: .*/compiler: generic/' \
              -e 's/machdep_name: *machdep_gcc_\([[:alnum:]]*\)/machdep_name: machdep_\1/' \
-             -e '/ *#undef __GCC.*/d' -e '/ *#define __GCC.*/d' \
+             -e '/ *__GCC.*/d' -e '/ *__GNU/d' -e '/ *__gnu/d' -e '/ *GXX/d' \
              $< > $@
 
 .%.validated: % machdep-schema.yaml
 	@echo "Checking $*"
 	@./make_machdep/make_machdep.py --from-file $* --check-only
 	@touch $@
+
+.PHONY: check-schema
+
+check-schema:
+	@$(foreach machdep, $(wildcard machdep_*.yaml), \
+           ./make_machdep/make_machdep.py --from-file $(machdep) --check-only \
+           || echo "$(machdep) does not conform to machdep schema";)
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_avr_16.yaml b/share/machdeps/machdep_avr_16.yaml
index 055d78e85c3d33563175e3c2c5f2e8d3c2508b8a..6e6121b52b905ddc4804d631d5b9c864abfceb01 100644
--- a/share/machdeps/machdep_avr_16.yaml
+++ b/share/machdeps/machdep_avr_16.yaml
@@ -17,643 +17,345 @@ cpp_arch_flags:
 - avr
 - -m16
 - -mmcu=atmega16
-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_ATmega16__
-    #define __AVR_ATmega16__ 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 __flash
-    #define __flash __attribute__((address_space(1)))
-    #undef __llvm__
-    #define __llvm__ 1
+custom_defs:
+    AVR: '1'
+    __ATOMIC_ACQUIRE: '2'
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_CONSUME: '1'
+    __ATOMIC_RELAXED: '0'
+    __ATOMIC_RELEASE: '3'
+    __ATOMIC_SEQ_CST: '5'
+    __AVR: '1'
+    __AVR_2_BYTE_PC__: '1'
+    __AVR_ARCH__: '5'
+    __AVR_ATmega16__: '1'
+    __AVR_HAVE_JMP_CALL__: '1'
+    __AVR_HAVE_LPMX__: '1'
+    __AVR_HAVE_MOVW__: '1'
+    __AVR_HAVE_MUL__: '1'
+    __AVR__: '1'
+    __BIGGEST_ALIGNMENT__: '1'
+    __BITINT_MAXWIDTH__: '128'
+    __BOOL_WIDTH__: '8'
+    __BYTE_ORDER__: __ORDER_LITTLE_ENDIAN__
+    __CHAR16_TYPE__: unsigned int
+    __CHAR32_TYPE__: long unsigned int
+    __CHAR_BIT__: '8'
+    __CLANG_ATOMIC_BOOL_LOCK_FREE: '1'
+    __CLANG_ATOMIC_CHAR16_T_LOCK_FREE: '1'
+    __CLANG_ATOMIC_CHAR32_T_LOCK_FREE: '1'
+    __CLANG_ATOMIC_CHAR_LOCK_FREE: '1'
+    __CLANG_ATOMIC_INT_LOCK_FREE: '1'
+    __CLANG_ATOMIC_LLONG_LOCK_FREE: '1'
+    __CLANG_ATOMIC_LONG_LOCK_FREE: '1'
+    __CLANG_ATOMIC_POINTER_LOCK_FREE: '1'
+    __CLANG_ATOMIC_SHORT_LOCK_FREE: '1'
+    __CLANG_ATOMIC_WCHAR_T_LOCK_FREE: '1'
+    __CONSTANT_CFSTRINGS__: '1'
+    __DBL_DECIMAL_DIG__: '9'
+    __DBL_DENORM_MIN__: '1.40129846e-45'
+    __DBL_DIG__: '6'
+    __DBL_EPSILON__: '1.19209290e-7'
+    __DBL_HAS_DENORM__: '1'
+    __DBL_HAS_INFINITY__: '1'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __DBL_MANT_DIG__: '24'
+    __DBL_MAX_10_EXP__: '38'
+    __DBL_MAX_EXP__: '128'
+    __DBL_MAX__: '3.40282347e+38'
+    __DBL_MIN_10_EXP__: (-37)
+    __DBL_MIN_EXP__: (-125)
+    __DBL_MIN__: '1.17549435e-38'
+    __DECIMAL_DIG__: __LDBL_DECIMAL_DIG__
+    __ELF__: '1'
+    __FINITE_MATH_ONLY__: '0'
+    __FLT_DECIMAL_DIG__: '9'
+    __FLT_DENORM_MIN__: 1.40129846e-45F
+    __FLT_DIG__: '6'
+    __FLT_EPSILON__: 1.19209290e-7F
+    __FLT_HAS_DENORM__: '1'
+    __FLT_HAS_INFINITY__: '1'
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MANT_DIG__: '24'
+    __FLT_MAX_10_EXP__: '38'
+    __FLT_MAX_EXP__: '128'
+    __FLT_MAX__: 3.40282347e+38F
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT_MIN_EXP__: (-125)
+    __FLT_MIN__: 1.17549435e-38F
+    __FLT_RADIX__: '2'
+    __FPCLASS_NEGINF: '0x0004'
+    __FPCLASS_NEGNORMAL: '0x0008'
+    __FPCLASS_NEGSUBNORMAL: '0x0010'
+    __FPCLASS_NEGZERO: '0x0020'
+    __FPCLASS_POSINF: '0x0200'
+    __FPCLASS_POSNORMAL: '0x0100'
+    __FPCLASS_POSSUBNORMAL: '0x0080'
+    __FPCLASS_POSZERO: '0x0040'
+    __FPCLASS_QNAN: '0x0002'
+    __FPCLASS_SNAN: '0x0001'
+    __GCC_ATOMIC_BOOL_LOCK_FREE: '1'
+    __GCC_ATOMIC_CHAR16_T_LOCK_FREE: '1'
+    __GCC_ATOMIC_CHAR32_T_LOCK_FREE: '1'
+    __GCC_ATOMIC_CHAR_LOCK_FREE: '1'
+    __GCC_ATOMIC_INT_LOCK_FREE: '1'
+    __GCC_ATOMIC_LLONG_LOCK_FREE: '1'
+    __GCC_ATOMIC_LONG_LOCK_FREE: '1'
+    __GCC_ATOMIC_POINTER_LOCK_FREE: '1'
+    __GCC_ATOMIC_SHORT_LOCK_FREE: '1'
+    __GCC_ATOMIC_TEST_AND_SET_TRUEVAL: '1'
+    __GCC_ATOMIC_WCHAR_T_LOCK_FREE: '1'
+    __GNUC_MINOR__: '2'
+    __GNUC_PATCHLEVEL__: '1'
+    __GNUC_STDC_INLINE__: '1'
+    __GNUC__: '4'
+    __GXX_ABI_VERSION: '1002'
+    __INT16_C_SUFFIX__: ''
+    __INT16_FMTd__: '"d"'
+    __INT16_FMTi__: '"i"'
+    __INT16_MAX__: '32767'
+    __INT16_TYPE__: int
+    __INT32_C_SUFFIX__: L
+    __INT32_FMTd__: '"ld"'
+    __INT32_FMTi__: '"li"'
+    __INT32_MAX__: 2147483647L
+    __INT32_TYPE__: long int
+    __INT64_C_SUFFIX__: LL
+    __INT64_FMTd__: '"lld"'
+    __INT64_FMTi__: '"lli"'
+    __INT64_MAX__: 9223372036854775807LL
+    __INT64_TYPE__: long long int
+    __INT8_C_SUFFIX__: ''
+    __INT8_FMTd__: '"hhd"'
+    __INT8_FMTi__: '"hhi"'
+    __INT8_MAX__: '127'
+    __INT8_TYPE__: signed char
+    __INTMAX_C_SUFFIX__: LL
+    __INTMAX_FMTd__: '"lld"'
+    __INTMAX_FMTi__: '"lli"'
+    __INTMAX_MAX__: 9223372036854775807LL
+    __INTMAX_TYPE__: long long int
+    __INTMAX_WIDTH__: '64'
+    __INTPTR_FMTd__: '"d"'
+    __INTPTR_FMTi__: '"i"'
+    __INTPTR_MAX__: '32767'
+    __INTPTR_TYPE__: int
+    __INTPTR_WIDTH__: '16'
+    __INT_FAST16_FMTd__: '"d"'
+    __INT_FAST16_FMTi__: '"i"'
+    __INT_FAST16_MAX__: '32767'
+    __INT_FAST16_TYPE__: int
+    __INT_FAST16_WIDTH__: '16'
+    __INT_FAST32_FMTd__: '"ld"'
+    __INT_FAST32_FMTi__: '"li"'
+    __INT_FAST32_MAX__: 2147483647L
+    __INT_FAST32_TYPE__: long int
+    __INT_FAST32_WIDTH__: '32'
+    __INT_FAST64_FMTd__: '"lld"'
+    __INT_FAST64_FMTi__: '"lli"'
+    __INT_FAST64_MAX__: 9223372036854775807LL
+    __INT_FAST64_TYPE__: long long int
+    __INT_FAST64_WIDTH__: '64'
+    __INT_FAST8_FMTd__: '"hhd"'
+    __INT_FAST8_FMTi__: '"hhi"'
+    __INT_FAST8_MAX__: '127'
+    __INT_FAST8_TYPE__: signed char
+    __INT_FAST8_WIDTH__: '8'
+    __INT_LEAST16_FMTd__: '"d"'
+    __INT_LEAST16_FMTi__: '"i"'
+    __INT_LEAST16_MAX__: '32767'
+    __INT_LEAST16_TYPE__: int
+    __INT_LEAST16_WIDTH__: '16'
+    __INT_LEAST32_FMTd__: '"ld"'
+    __INT_LEAST32_FMTi__: '"li"'
+    __INT_LEAST32_MAX__: 2147483647L
+    __INT_LEAST32_TYPE__: long int
+    __INT_LEAST32_WIDTH__: '32'
+    __INT_LEAST64_FMTd__: '"lld"'
+    __INT_LEAST64_FMTi__: '"lli"'
+    __INT_LEAST64_MAX__: 9223372036854775807LL
+    __INT_LEAST64_TYPE__: long long int
+    __INT_LEAST64_WIDTH__: '64'
+    __INT_LEAST8_FMTd__: '"hhd"'
+    __INT_LEAST8_FMTi__: '"hhi"'
+    __INT_LEAST8_MAX__: '127'
+    __INT_LEAST8_TYPE__: signed char
+    __INT_LEAST8_WIDTH__: '8'
+    __INT_MAX__: '32767'
+    __INT_WIDTH__: '16'
+    __LDBL_DECIMAL_DIG__: '9'
+    __LDBL_DENORM_MIN__: 1.40129846e-45L
+    __LDBL_DIG__: '6'
+    __LDBL_EPSILON__: 1.19209290e-7L
+    __LDBL_HAS_DENORM__: '1'
+    __LDBL_HAS_INFINITY__: '1'
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __LDBL_MANT_DIG__: '24'
+    __LDBL_MAX_10_EXP__: '38'
+    __LDBL_MAX_EXP__: '128'
+    __LDBL_MAX__: 3.40282347e+38L
+    __LDBL_MIN_10_EXP__: (-37)
+    __LDBL_MIN_EXP__: (-125)
+    __LDBL_MIN__: 1.17549435e-38L
+    __LITTLE_ENDIAN__: '1'
+    __LLONG_WIDTH__: '64'
+    __LONG_LONG_MAX__: 9223372036854775807LL
+    __LONG_MAX__: 2147483647L
+    __LONG_WIDTH__: '32'
+    __NO_INLINE__: '1'
+    __OBJC_BOOL_IS_BOOL: '0'
+    __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES: '3'
+    __OPENCL_MEMORY_SCOPE_DEVICE: '2'
+    __OPENCL_MEMORY_SCOPE_SUB_GROUP: '4'
+    __OPENCL_MEMORY_SCOPE_WORK_GROUP: '1'
+    __OPENCL_MEMORY_SCOPE_WORK_ITEM: '0'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __ORDER_PDP_ENDIAN__: '3412'
+    __POINTER_WIDTH__: '16'
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __PTRDIFF_FMTd__: '"d"'
+    __PTRDIFF_FMTi__: '"i"'
+    __PTRDIFF_MAX__: '32767'
+    __PTRDIFF_TYPE__: int
+    __PTRDIFF_WIDTH__: '16'
+    __SCHAR_MAX__: '127'
+    __SHRT_MAX__: '32767'
+    __SHRT_WIDTH__: '16'
+    __SIG_ATOMIC_MAX__: '127'
+    __SIG_ATOMIC_WIDTH__: '8'
+    __SIZEOF_DOUBLE__: '4'
+    __SIZEOF_FLOAT__: '4'
+    __SIZEOF_INT__: '2'
+    __SIZEOF_LONG_DOUBLE__: '4'
+    __SIZEOF_LONG_LONG__: '8'
+    __SIZEOF_LONG__: '4'
+    __SIZEOF_POINTER__: '2'
+    __SIZEOF_PTRDIFF_T__: '2'
+    __SIZEOF_SHORT__: '2'
+    __SIZEOF_SIZE_T__: '2'
+    __SIZEOF_WCHAR_T__: '2'
+    __SIZEOF_WINT_T__: '2'
+    __SIZE_FMTX__: '"X"'
+    __SIZE_FMTo__: '"o"'
+    __SIZE_FMTu__: '"u"'
+    __SIZE_FMTx__: '"x"'
+    __SIZE_MAX__: 65535U
+    __SIZE_TYPE__: unsigned int
+    __SIZE_WIDTH__: '16'
+    __UINT16_C_SUFFIX__: U
+    __UINT16_FMTX__: '"X"'
+    __UINT16_FMTo__: '"o"'
+    __UINT16_FMTu__: '"u"'
+    __UINT16_FMTx__: '"x"'
+    __UINT16_MAX__: 65535U
+    __UINT16_TYPE__: unsigned int
+    __UINT32_C_SUFFIX__: UL
+    __UINT32_FMTX__: '"lX"'
+    __UINT32_FMTo__: '"lo"'
+    __UINT32_FMTu__: '"lu"'
+    __UINT32_FMTx__: '"lx"'
+    __UINT32_MAX__: 4294967295UL
+    __UINT32_TYPE__: long unsigned int
+    __UINT64_C_SUFFIX__: ULL
+    __UINT64_FMTX__: '"llX"'
+    __UINT64_FMTo__: '"llo"'
+    __UINT64_FMTu__: '"llu"'
+    __UINT64_FMTx__: '"llx"'
+    __UINT64_MAX__: 18446744073709551615ULL
+    __UINT64_TYPE__: long long unsigned int
+    __UINT8_C_SUFFIX__: ''
+    __UINT8_FMTX__: '"hhX"'
+    __UINT8_FMTo__: '"hho"'
+    __UINT8_FMTu__: '"hhu"'
+    __UINT8_FMTx__: '"hhx"'
+    __UINT8_MAX__: '255'
+    __UINT8_TYPE__: unsigned char
+    __UINTMAX_C_SUFFIX__: ULL
+    __UINTMAX_FMTX__: '"llX"'
+    __UINTMAX_FMTo__: '"llo"'
+    __UINTMAX_FMTu__: '"llu"'
+    __UINTMAX_FMTx__: '"llx"'
+    __UINTMAX_MAX__: 18446744073709551615ULL
+    __UINTMAX_TYPE__: long long unsigned int
+    __UINTMAX_WIDTH__: '64'
+    __UINTPTR_FMTX__: '"X"'
+    __UINTPTR_FMTo__: '"o"'
+    __UINTPTR_FMTu__: '"u"'
+    __UINTPTR_FMTx__: '"x"'
+    __UINTPTR_MAX__: 65535U
+    __UINTPTR_TYPE__: unsigned int
+    __UINTPTR_WIDTH__: '16'
+    __UINT_FAST16_FMTX__: '"X"'
+    __UINT_FAST16_FMTo__: '"o"'
+    __UINT_FAST16_FMTu__: '"u"'
+    __UINT_FAST16_FMTx__: '"x"'
+    __UINT_FAST16_MAX__: 65535U
+    __UINT_FAST16_TYPE__: unsigned int
+    __UINT_FAST32_FMTX__: '"lX"'
+    __UINT_FAST32_FMTo__: '"lo"'
+    __UINT_FAST32_FMTu__: '"lu"'
+    __UINT_FAST32_FMTx__: '"lx"'
+    __UINT_FAST32_MAX__: 4294967295UL
+    __UINT_FAST32_TYPE__: long unsigned int
+    __UINT_FAST64_FMTX__: '"llX"'
+    __UINT_FAST64_FMTo__: '"llo"'
+    __UINT_FAST64_FMTu__: '"llu"'
+    __UINT_FAST64_FMTx__: '"llx"'
+    __UINT_FAST64_MAX__: 18446744073709551615ULL
+    __UINT_FAST64_TYPE__: long long unsigned int
+    __UINT_FAST8_FMTX__: '"hhX"'
+    __UINT_FAST8_FMTo__: '"hho"'
+    __UINT_FAST8_FMTu__: '"hhu"'
+    __UINT_FAST8_FMTx__: '"hhx"'
+    __UINT_FAST8_MAX__: '255'
+    __UINT_FAST8_TYPE__: unsigned char
+    __UINT_LEAST16_FMTX__: '"X"'
+    __UINT_LEAST16_FMTo__: '"o"'
+    __UINT_LEAST16_FMTu__: '"u"'
+    __UINT_LEAST16_FMTx__: '"x"'
+    __UINT_LEAST16_MAX__: 65535U
+    __UINT_LEAST16_TYPE__: unsigned int
+    __UINT_LEAST32_FMTX__: '"lX"'
+    __UINT_LEAST32_FMTo__: '"lo"'
+    __UINT_LEAST32_FMTu__: '"lu"'
+    __UINT_LEAST32_FMTx__: '"lx"'
+    __UINT_LEAST32_MAX__: 4294967295UL
+    __UINT_LEAST32_TYPE__: long unsigned int
+    __UINT_LEAST64_FMTX__: '"llX"'
+    __UINT_LEAST64_FMTo__: '"llo"'
+    __UINT_LEAST64_FMTu__: '"llu"'
+    __UINT_LEAST64_FMTx__: '"llx"'
+    __UINT_LEAST64_MAX__: 18446744073709551615ULL
+    __UINT_LEAST64_TYPE__: long long unsigned int
+    __UINT_LEAST8_FMTX__: '"hhX"'
+    __UINT_LEAST8_FMTo__: '"hho"'
+    __UINT_LEAST8_FMTu__: '"hhu"'
+    __UINT_LEAST8_FMTx__: '"hhx"'
+    __UINT_LEAST8_MAX__: '255'
+    __UINT_LEAST8_TYPE__: unsigned char
+    __USER_LABEL_PREFIX__: ''
+    __VERSION__: '"Clang 17.0.6"'
+    __WCHAR_MAX__: '32767'
+    __WCHAR_TYPE__: int
+    __WCHAR_WIDTH__: '16'
+    __WINT_MAX__: '32767'
+    __WINT_TYPE__: int
+    __WINT_WIDTH__: '16'
+    __clang__: '1'
+    __clang_literal_encoding__: '"UTF-8"'
+    __clang_major__: '17'
+    __clang_minor__: '0'
+    __clang_patchlevel__: '6'
+    __clang_version__: '"17.0.6 "'
+    __clang_wide_literal_encoding__: '"UTF-16"'
+    __flash: __attribute__((__address_space__(1)))
+    __llvm__: '1'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: ((int)(66072050 & 0xffff))
+    erange: '34'
     e2big: ((int)(66072050 & 0xffff))
     eacces: ((int)(66072050 & 0xffff))
     eaddrinuse: ((int)(66072050 & 0xffff))
@@ -669,12 +371,10 @@ errno:
     econnreset: ((int)(66072050 & 0xffff))
     edeadlk: ((int)(66072050 & 0xffff))
     edestaddrreq: ((int)(66072050 & 0xffff))
-    edom: '33'
     eexist: ((int)(66072050 & 0xffff))
     efault: ((int)(66072050 & 0xffff))
     efbig: ((int)(66072050 & 0xffff))
     ehostunreach: ((int)(66072050 & 0xffff))
-    eilseq: ((int)(66072050 & 0xffff))
     einprogress: ((int)(66072050 & 0xffff))
     eintr: ((int)(2453066 & 0x7fff))
     einval: ((int)(66072050 & 0xffff))
@@ -711,7 +411,6 @@ errno:
     epipe: ((int)(66072050 & 0xffff))
     eprotonosupport: ((int)(66072050 & 0xffff))
     eprototype: ((int)(66072050 & 0xffff))
-    erange: '34'
     erofs: ((int)(66072050 & 0xffff))
     espipe: ((int)(66072050 & 0xffff))
     esrch: ((int)(66072050 & 0xffff))
@@ -722,10 +421,10 @@ filename_max: ''
 fopen_max: ''
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: int
 int_fast32_t: long
 int_fast64_t: long long
-int_fast8_t: signed char
 intptr_t: int
 l_tmpnam: ''
 little_endian: true
@@ -752,12 +451,12 @@ ssize_t: ''
 time_t: unsigned long
 tmp_max: ''
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 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
+version: clang version 17.0.6
 wchar_t: int
 weof: (0xffffffffu)
 wint_t: int
diff --git a/share/machdeps/machdep_avr_8.yaml b/share/machdeps/machdep_avr_8.yaml
index cbaeb67bbd3b9626e1cba28f416efded67c9cd79..293033e56742e1da5fe2c4d9e3262108a86d75bc 100644
--- a/share/machdeps/machdep_avr_8.yaml
+++ b/share/machdeps/machdep_avr_8.yaml
@@ -16,643 +16,344 @@ cpp_arch_flags:
 - -target
 - avr
 - -mmcu=atmega8
-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_ATmega8__
-    #define __AVR_ATmega8__ 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 __flash
-    #define __flash __attribute__((address_space(1)))
-    #undef __llvm__
-    #define __llvm__ 1
+custom_defs:
+    AVR: '1'
+    __ATOMIC_ACQUIRE: '2'
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_CONSUME: '1'
+    __ATOMIC_RELAXED: '0'
+    __ATOMIC_RELEASE: '3'
+    __ATOMIC_SEQ_CST: '5'
+    __AVR: '1'
+    __AVR_2_BYTE_PC__: '1'
+    __AVR_ARCH__: '4'
+    __AVR_ATmega8__: '1'
+    __AVR_HAVE_LPMX__: '1'
+    __AVR_HAVE_MOVW__: '1'
+    __AVR_HAVE_MUL__: '1'
+    __AVR__: '1'
+    __BIGGEST_ALIGNMENT__: '1'
+    __BITINT_MAXWIDTH__: '128'
+    __BOOL_WIDTH__: '8'
+    __BYTE_ORDER__: __ORDER_LITTLE_ENDIAN__
+    __CHAR16_TYPE__: unsigned int
+    __CHAR32_TYPE__: long unsigned int
+    __CHAR_BIT__: '8'
+    __CLANG_ATOMIC_BOOL_LOCK_FREE: '1'
+    __CLANG_ATOMIC_CHAR16_T_LOCK_FREE: '1'
+    __CLANG_ATOMIC_CHAR32_T_LOCK_FREE: '1'
+    __CLANG_ATOMIC_CHAR_LOCK_FREE: '1'
+    __CLANG_ATOMIC_INT_LOCK_FREE: '1'
+    __CLANG_ATOMIC_LLONG_LOCK_FREE: '1'
+    __CLANG_ATOMIC_LONG_LOCK_FREE: '1'
+    __CLANG_ATOMIC_POINTER_LOCK_FREE: '1'
+    __CLANG_ATOMIC_SHORT_LOCK_FREE: '1'
+    __CLANG_ATOMIC_WCHAR_T_LOCK_FREE: '1'
+    __CONSTANT_CFSTRINGS__: '1'
+    __DBL_DECIMAL_DIG__: '9'
+    __DBL_DENORM_MIN__: '1.40129846e-45'
+    __DBL_DIG__: '6'
+    __DBL_EPSILON__: '1.19209290e-7'
+    __DBL_HAS_DENORM__: '1'
+    __DBL_HAS_INFINITY__: '1'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __DBL_MANT_DIG__: '24'
+    __DBL_MAX_10_EXP__: '38'
+    __DBL_MAX_EXP__: '128'
+    __DBL_MAX__: '3.40282347e+38'
+    __DBL_MIN_10_EXP__: (-37)
+    __DBL_MIN_EXP__: (-125)
+    __DBL_MIN__: '1.17549435e-38'
+    __DECIMAL_DIG__: __LDBL_DECIMAL_DIG__
+    __ELF__: '1'
+    __FINITE_MATH_ONLY__: '0'
+    __FLT_DECIMAL_DIG__: '9'
+    __FLT_DENORM_MIN__: 1.40129846e-45F
+    __FLT_DIG__: '6'
+    __FLT_EPSILON__: 1.19209290e-7F
+    __FLT_HAS_DENORM__: '1'
+    __FLT_HAS_INFINITY__: '1'
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MANT_DIG__: '24'
+    __FLT_MAX_10_EXP__: '38'
+    __FLT_MAX_EXP__: '128'
+    __FLT_MAX__: 3.40282347e+38F
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT_MIN_EXP__: (-125)
+    __FLT_MIN__: 1.17549435e-38F
+    __FLT_RADIX__: '2'
+    __FPCLASS_NEGINF: '0x0004'
+    __FPCLASS_NEGNORMAL: '0x0008'
+    __FPCLASS_NEGSUBNORMAL: '0x0010'
+    __FPCLASS_NEGZERO: '0x0020'
+    __FPCLASS_POSINF: '0x0200'
+    __FPCLASS_POSNORMAL: '0x0100'
+    __FPCLASS_POSSUBNORMAL: '0x0080'
+    __FPCLASS_POSZERO: '0x0040'
+    __FPCLASS_QNAN: '0x0002'
+    __FPCLASS_SNAN: '0x0001'
+    __GCC_ATOMIC_BOOL_LOCK_FREE: '1'
+    __GCC_ATOMIC_CHAR16_T_LOCK_FREE: '1'
+    __GCC_ATOMIC_CHAR32_T_LOCK_FREE: '1'
+    __GCC_ATOMIC_CHAR_LOCK_FREE: '1'
+    __GCC_ATOMIC_INT_LOCK_FREE: '1'
+    __GCC_ATOMIC_LLONG_LOCK_FREE: '1'
+    __GCC_ATOMIC_LONG_LOCK_FREE: '1'
+    __GCC_ATOMIC_POINTER_LOCK_FREE: '1'
+    __GCC_ATOMIC_SHORT_LOCK_FREE: '1'
+    __GCC_ATOMIC_TEST_AND_SET_TRUEVAL: '1'
+    __GCC_ATOMIC_WCHAR_T_LOCK_FREE: '1'
+    __GNUC_MINOR__: '2'
+    __GNUC_PATCHLEVEL__: '1'
+    __GNUC_STDC_INLINE__: '1'
+    __GNUC__: '4'
+    __GXX_ABI_VERSION: '1002'
+    __INT16_C_SUFFIX__: ''
+    __INT16_FMTd__: '"d"'
+    __INT16_FMTi__: '"i"'
+    __INT16_MAX__: '32767'
+    __INT16_TYPE__: int
+    __INT32_C_SUFFIX__: L
+    __INT32_FMTd__: '"ld"'
+    __INT32_FMTi__: '"li"'
+    __INT32_MAX__: 2147483647L
+    __INT32_TYPE__: long int
+    __INT64_C_SUFFIX__: LL
+    __INT64_FMTd__: '"lld"'
+    __INT64_FMTi__: '"lli"'
+    __INT64_MAX__: 9223372036854775807LL
+    __INT64_TYPE__: long long int
+    __INT8_C_SUFFIX__: ''
+    __INT8_FMTd__: '"hhd"'
+    __INT8_FMTi__: '"hhi"'
+    __INT8_MAX__: '127'
+    __INT8_TYPE__: signed char
+    __INTMAX_C_SUFFIX__: LL
+    __INTMAX_FMTd__: '"lld"'
+    __INTMAX_FMTi__: '"lli"'
+    __INTMAX_MAX__: 9223372036854775807LL
+    __INTMAX_TYPE__: long long int
+    __INTMAX_WIDTH__: '64'
+    __INTPTR_FMTd__: '"d"'
+    __INTPTR_FMTi__: '"i"'
+    __INTPTR_MAX__: '32767'
+    __INTPTR_TYPE__: int
+    __INTPTR_WIDTH__: '16'
+    __INT_FAST16_FMTd__: '"d"'
+    __INT_FAST16_FMTi__: '"i"'
+    __INT_FAST16_MAX__: '32767'
+    __INT_FAST16_TYPE__: int
+    __INT_FAST16_WIDTH__: '16'
+    __INT_FAST32_FMTd__: '"ld"'
+    __INT_FAST32_FMTi__: '"li"'
+    __INT_FAST32_MAX__: 2147483647L
+    __INT_FAST32_TYPE__: long int
+    __INT_FAST32_WIDTH__: '32'
+    __INT_FAST64_FMTd__: '"lld"'
+    __INT_FAST64_FMTi__: '"lli"'
+    __INT_FAST64_MAX__: 9223372036854775807LL
+    __INT_FAST64_TYPE__: long long int
+    __INT_FAST64_WIDTH__: '64'
+    __INT_FAST8_FMTd__: '"hhd"'
+    __INT_FAST8_FMTi__: '"hhi"'
+    __INT_FAST8_MAX__: '127'
+    __INT_FAST8_TYPE__: signed char
+    __INT_FAST8_WIDTH__: '8'
+    __INT_LEAST16_FMTd__: '"d"'
+    __INT_LEAST16_FMTi__: '"i"'
+    __INT_LEAST16_MAX__: '32767'
+    __INT_LEAST16_TYPE__: int
+    __INT_LEAST16_WIDTH__: '16'
+    __INT_LEAST32_FMTd__: '"ld"'
+    __INT_LEAST32_FMTi__: '"li"'
+    __INT_LEAST32_MAX__: 2147483647L
+    __INT_LEAST32_TYPE__: long int
+    __INT_LEAST32_WIDTH__: '32'
+    __INT_LEAST64_FMTd__: '"lld"'
+    __INT_LEAST64_FMTi__: '"lli"'
+    __INT_LEAST64_MAX__: 9223372036854775807LL
+    __INT_LEAST64_TYPE__: long long int
+    __INT_LEAST64_WIDTH__: '64'
+    __INT_LEAST8_FMTd__: '"hhd"'
+    __INT_LEAST8_FMTi__: '"hhi"'
+    __INT_LEAST8_MAX__: '127'
+    __INT_LEAST8_TYPE__: signed char
+    __INT_LEAST8_WIDTH__: '8'
+    __INT_MAX__: '32767'
+    __INT_WIDTH__: '16'
+    __LDBL_DECIMAL_DIG__: '9'
+    __LDBL_DENORM_MIN__: 1.40129846e-45L
+    __LDBL_DIG__: '6'
+    __LDBL_EPSILON__: 1.19209290e-7L
+    __LDBL_HAS_DENORM__: '1'
+    __LDBL_HAS_INFINITY__: '1'
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __LDBL_MANT_DIG__: '24'
+    __LDBL_MAX_10_EXP__: '38'
+    __LDBL_MAX_EXP__: '128'
+    __LDBL_MAX__: 3.40282347e+38L
+    __LDBL_MIN_10_EXP__: (-37)
+    __LDBL_MIN_EXP__: (-125)
+    __LDBL_MIN__: 1.17549435e-38L
+    __LITTLE_ENDIAN__: '1'
+    __LLONG_WIDTH__: '64'
+    __LONG_LONG_MAX__: 9223372036854775807LL
+    __LONG_MAX__: 2147483647L
+    __LONG_WIDTH__: '32'
+    __NO_INLINE__: '1'
+    __OBJC_BOOL_IS_BOOL: '0'
+    __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES: '3'
+    __OPENCL_MEMORY_SCOPE_DEVICE: '2'
+    __OPENCL_MEMORY_SCOPE_SUB_GROUP: '4'
+    __OPENCL_MEMORY_SCOPE_WORK_GROUP: '1'
+    __OPENCL_MEMORY_SCOPE_WORK_ITEM: '0'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __ORDER_PDP_ENDIAN__: '3412'
+    __POINTER_WIDTH__: '16'
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __PTRDIFF_FMTd__: '"d"'
+    __PTRDIFF_FMTi__: '"i"'
+    __PTRDIFF_MAX__: '32767'
+    __PTRDIFF_TYPE__: int
+    __PTRDIFF_WIDTH__: '16'
+    __SCHAR_MAX__: '127'
+    __SHRT_MAX__: '32767'
+    __SHRT_WIDTH__: '16'
+    __SIG_ATOMIC_MAX__: '127'
+    __SIG_ATOMIC_WIDTH__: '8'
+    __SIZEOF_DOUBLE__: '4'
+    __SIZEOF_FLOAT__: '4'
+    __SIZEOF_INT__: '2'
+    __SIZEOF_LONG_DOUBLE__: '4'
+    __SIZEOF_LONG_LONG__: '8'
+    __SIZEOF_LONG__: '4'
+    __SIZEOF_POINTER__: '2'
+    __SIZEOF_PTRDIFF_T__: '2'
+    __SIZEOF_SHORT__: '2'
+    __SIZEOF_SIZE_T__: '2'
+    __SIZEOF_WCHAR_T__: '2'
+    __SIZEOF_WINT_T__: '2'
+    __SIZE_FMTX__: '"X"'
+    __SIZE_FMTo__: '"o"'
+    __SIZE_FMTu__: '"u"'
+    __SIZE_FMTx__: '"x"'
+    __SIZE_MAX__: 65535U
+    __SIZE_TYPE__: unsigned int
+    __SIZE_WIDTH__: '16'
+    __UINT16_C_SUFFIX__: U
+    __UINT16_FMTX__: '"X"'
+    __UINT16_FMTo__: '"o"'
+    __UINT16_FMTu__: '"u"'
+    __UINT16_FMTx__: '"x"'
+    __UINT16_MAX__: 65535U
+    __UINT16_TYPE__: unsigned int
+    __UINT32_C_SUFFIX__: UL
+    __UINT32_FMTX__: '"lX"'
+    __UINT32_FMTo__: '"lo"'
+    __UINT32_FMTu__: '"lu"'
+    __UINT32_FMTx__: '"lx"'
+    __UINT32_MAX__: 4294967295UL
+    __UINT32_TYPE__: long unsigned int
+    __UINT64_C_SUFFIX__: ULL
+    __UINT64_FMTX__: '"llX"'
+    __UINT64_FMTo__: '"llo"'
+    __UINT64_FMTu__: '"llu"'
+    __UINT64_FMTx__: '"llx"'
+    __UINT64_MAX__: 18446744073709551615ULL
+    __UINT64_TYPE__: long long unsigned int
+    __UINT8_C_SUFFIX__: ''
+    __UINT8_FMTX__: '"hhX"'
+    __UINT8_FMTo__: '"hho"'
+    __UINT8_FMTu__: '"hhu"'
+    __UINT8_FMTx__: '"hhx"'
+    __UINT8_MAX__: '255'
+    __UINT8_TYPE__: unsigned char
+    __UINTMAX_C_SUFFIX__: ULL
+    __UINTMAX_FMTX__: '"llX"'
+    __UINTMAX_FMTo__: '"llo"'
+    __UINTMAX_FMTu__: '"llu"'
+    __UINTMAX_FMTx__: '"llx"'
+    __UINTMAX_MAX__: 18446744073709551615ULL
+    __UINTMAX_TYPE__: long long unsigned int
+    __UINTMAX_WIDTH__: '64'
+    __UINTPTR_FMTX__: '"X"'
+    __UINTPTR_FMTo__: '"o"'
+    __UINTPTR_FMTu__: '"u"'
+    __UINTPTR_FMTx__: '"x"'
+    __UINTPTR_MAX__: 65535U
+    __UINTPTR_TYPE__: unsigned int
+    __UINTPTR_WIDTH__: '16'
+    __UINT_FAST16_FMTX__: '"X"'
+    __UINT_FAST16_FMTo__: '"o"'
+    __UINT_FAST16_FMTu__: '"u"'
+    __UINT_FAST16_FMTx__: '"x"'
+    __UINT_FAST16_MAX__: 65535U
+    __UINT_FAST16_TYPE__: unsigned int
+    __UINT_FAST32_FMTX__: '"lX"'
+    __UINT_FAST32_FMTo__: '"lo"'
+    __UINT_FAST32_FMTu__: '"lu"'
+    __UINT_FAST32_FMTx__: '"lx"'
+    __UINT_FAST32_MAX__: 4294967295UL
+    __UINT_FAST32_TYPE__: long unsigned int
+    __UINT_FAST64_FMTX__: '"llX"'
+    __UINT_FAST64_FMTo__: '"llo"'
+    __UINT_FAST64_FMTu__: '"llu"'
+    __UINT_FAST64_FMTx__: '"llx"'
+    __UINT_FAST64_MAX__: 18446744073709551615ULL
+    __UINT_FAST64_TYPE__: long long unsigned int
+    __UINT_FAST8_FMTX__: '"hhX"'
+    __UINT_FAST8_FMTo__: '"hho"'
+    __UINT_FAST8_FMTu__: '"hhu"'
+    __UINT_FAST8_FMTx__: '"hhx"'
+    __UINT_FAST8_MAX__: '255'
+    __UINT_FAST8_TYPE__: unsigned char
+    __UINT_LEAST16_FMTX__: '"X"'
+    __UINT_LEAST16_FMTo__: '"o"'
+    __UINT_LEAST16_FMTu__: '"u"'
+    __UINT_LEAST16_FMTx__: '"x"'
+    __UINT_LEAST16_MAX__: 65535U
+    __UINT_LEAST16_TYPE__: unsigned int
+    __UINT_LEAST32_FMTX__: '"lX"'
+    __UINT_LEAST32_FMTo__: '"lo"'
+    __UINT_LEAST32_FMTu__: '"lu"'
+    __UINT_LEAST32_FMTx__: '"lx"'
+    __UINT_LEAST32_MAX__: 4294967295UL
+    __UINT_LEAST32_TYPE__: long unsigned int
+    __UINT_LEAST64_FMTX__: '"llX"'
+    __UINT_LEAST64_FMTo__: '"llo"'
+    __UINT_LEAST64_FMTu__: '"llu"'
+    __UINT_LEAST64_FMTx__: '"llx"'
+    __UINT_LEAST64_MAX__: 18446744073709551615ULL
+    __UINT_LEAST64_TYPE__: long long unsigned int
+    __UINT_LEAST8_FMTX__: '"hhX"'
+    __UINT_LEAST8_FMTo__: '"hho"'
+    __UINT_LEAST8_FMTu__: '"hhu"'
+    __UINT_LEAST8_FMTx__: '"hhx"'
+    __UINT_LEAST8_MAX__: '255'
+    __UINT_LEAST8_TYPE__: unsigned char
+    __USER_LABEL_PREFIX__: ''
+    __VERSION__: '"Clang 17.0.6"'
+    __WCHAR_MAX__: '32767'
+    __WCHAR_TYPE__: int
+    __WCHAR_WIDTH__: '16'
+    __WINT_MAX__: '32767'
+    __WINT_TYPE__: int
+    __WINT_WIDTH__: '16'
+    __clang__: '1'
+    __clang_literal_encoding__: '"UTF-8"'
+    __clang_major__: '17'
+    __clang_minor__: '0'
+    __clang_patchlevel__: '6'
+    __clang_version__: '"17.0.6 "'
+    __clang_wide_literal_encoding__: '"UTF-16"'
+    __flash: __attribute__((__address_space__(1)))
+    __llvm__: '1'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: ((int)(66072050 & 0xffff))
+    erange: '34'
     e2big: ((int)(66072050 & 0xffff))
     eacces: ((int)(66072050 & 0xffff))
     eaddrinuse: ((int)(66072050 & 0xffff))
@@ -668,12 +369,10 @@ errno:
     econnreset: ((int)(66072050 & 0xffff))
     edeadlk: ((int)(66072050 & 0xffff))
     edestaddrreq: ((int)(66072050 & 0xffff))
-    edom: '33'
     eexist: ((int)(66072050 & 0xffff))
     efault: ((int)(66072050 & 0xffff))
     efbig: ((int)(66072050 & 0xffff))
     ehostunreach: ((int)(66072050 & 0xffff))
-    eilseq: ((int)(66072050 & 0xffff))
     einprogress: ((int)(66072050 & 0xffff))
     eintr: ((int)(2453066 & 0x7fff))
     einval: ((int)(66072050 & 0xffff))
@@ -710,7 +409,6 @@ errno:
     epipe: ((int)(66072050 & 0xffff))
     eprotonosupport: ((int)(66072050 & 0xffff))
     eprototype: ((int)(66072050 & 0xffff))
-    erange: '34'
     erofs: ((int)(66072050 & 0xffff))
     espipe: ((int)(66072050 & 0xffff))
     esrch: ((int)(66072050 & 0xffff))
@@ -721,10 +419,10 @@ filename_max: ''
 fopen_max: ''
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: int
 int_fast32_t: long
 int_fast64_t: long long
-int_fast8_t: signed char
 intptr_t: int
 l_tmpnam: ''
 little_endian: true
@@ -751,12 +449,12 @@ ssize_t: ''
 time_t: unsigned long
 tmp_max: ''
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 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
+version: clang version 17.0.6
 wchar_t: int
 weof: (0xffffffffu)
 wint_t: int
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_gcc_x86_32.yaml b/share/machdeps/machdep_gcc_x86_32.yaml
index 09ad500596d56e7f598c51c524221615a08a9a67..b7500c4f131853eec26a909629e00159b0d5994e 100644
--- a/share/machdeps/machdep_gcc_x86_32.yaml
+++ b/share/machdeps/machdep_gcc_x86_32.yaml
@@ -14,781 +14,398 @@ char_is_unsigned: false
 compiler: gcc
 cpp_arch_flags:
 - -m32
-custom_defs: |
-    #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 __BFLT16_DENORM_MIN__
-    #define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16
-    #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 __BFLT16_NORM_MAX__
-    #define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_MIN_10_EXP__
-    #define __BFLT16_MIN_10_EXP__ (-37)
-    #undef __ORDER_LITTLE_ENDIAN__
-    #define __ORDER_LITTLE_ENDIAN__ 1234
-    #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 __BFLT16_MAX_10_EXP__
-    #define __BFLT16_MAX_10_EXP__ 38
-    #undef __BFLT16_MAX_EXP__
-    #define __BFLT16_MAX_EXP__ 128
-    #undef __LDBL_IS_IEC_60559__
-    #define __LDBL_IS_IEC_60559__ 1
-    #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 __BFLT16_DECIMAL_DIG__
-    #define __BFLT16_DECIMAL_DIG__ 4
-    #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 __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__ 1
-    #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 __SSP_STRONG__
-    #define __SSP_STRONG__ 3
-    #undef __GCC_ATOMIC_POINTER_LOCK_FREE
-    #define __GCC_ATOMIC_POINTER_LOCK_FREE 2
-    #undef __ATOMIC_SEQ_CST
-    #define __ATOMIC_SEQ_CST 5
-    #undef __unix
-    #define __unix 1
-    #undef __INT_LEAST64_MAX__
-    #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
-    #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 __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__ 1
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
-    #undef __DBL_IS_IEC_60559__
-    #define __DBL_IS_IEC_60559__ 1
-    #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 __unix__
-    #define __unix__ 1
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 32
-    #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__ 1
-    #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 __BFLT16_DIG__
-    #define __BFLT16_DIG__ 2
-    #undef __GNUC__
-    #define __GNUC__ 13
-    #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 __BFLT16_IS_IEC_60559__
-    #define __BFLT16_IS_IEC_60559__ 0
-    #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 __INT64_MAX__
-    #define __INT64_MAX__ 0x7fffffffffffffffLL
-    #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 __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 __BFLT16_EPSILON__
-    #define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16
-    #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__ 32
-    #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__ 4
-    #undef __BFLT16_HAS_INFINITY__
-    #define __BFLT16_HAS_INFINITY__ 1
-    #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 1018
-    #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 __BFLT16_MAX__
-    #define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_HAS_DENORM__
-    #define __BFLT16_HAS_DENORM__ 1
-    #undef __FLT64_DENORM_MIN__
-    #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
-    #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 __SIZE_TYPE__
-    #define __SIZE_TYPE__ unsigned int
-    #undef __DBL_HAS_QUIET_NAN__
-    #define __DBL_HAS_QUIET_NAN__ 1
-    #undef __FLT32X_EPSILON__
-    #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 16384
-    #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 __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 __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__ "13.1.1 20230429"
-    #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 __BFLT16_MIN__
-    #define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16
-    #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
-    #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 __DEC128_MAX__
-    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ int
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ short unsigned int
-    #undef __DEC128_MAX_EXP__
-    #define __DEC128_MAX_EXP__ 6145
-    #undef unix
-    #define unix 1
-    #undef __i386__
-    #define __i386__ 1
-    #undef __UINT64_MAX__
-    #define __UINT64_MAX__ 0xffffffffffffffffULL
-    #undef __FLT_IS_IEC_60559__
-    #define __FLT_IS_IEC_60559__ 1
-    #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 int
-    #undef __BFLT16_HAS_QUIET_NAN__
-    #define __BFLT16_HAS_QUIET_NAN__ 1
-    #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 __FLT16_DIG__
-    #define __FLT16_DIG__ 3
-    #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 __FLT64X_HAS_INFINITY__
-    #define __FLT64X_HAS_INFINITY__ 1
-    #undef __FLT32_HAS_INFINITY__
-    #define __FLT32_HAS_INFINITY__ 1
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 4
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 18
-    #undef __FLT64_IS_IEC_60559__
-    #define __FLT64_IS_IEC_60559__ 1
-    #undef __FLT16_IS_IEC_60559__
-    #define __FLT16_IS_IEC_60559__ 1
-    #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 __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 __FLT128_MIN__
-    #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
-    #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 __UINT16_C
-    #define __UINT16_C(c) c
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 32
-    #undef __LDBL_MANT_DIG__
-    #define __LDBL_MANT_DIG__ 64
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 32
-    #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__ int
-    #undef __UINT16_TYPE__
-    #define __UINT16_TYPE__ short unsigned int
-    #undef __WCHAR_TYPE__
-    #define __WCHAR_TYPE__ long int
-    #undef __pic__
-    #define __pic__ 2
-    #undef __UINTPTR_MAX__
-    #define __UINTPTR_MAX__ 0xffffffffU
-    #undef __INT_FAST64_WIDTH__
-    #define __INT_FAST64_WIDTH__ 64
-    #undef __LDBL_HAS_INFINITY__
-    #define __LDBL_HAS_INFINITY__ 1
-    #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 __FLT64X_MAX_EXP__
-    #define __FLT64X_MAX_EXP__ 16384
-    #undef __UINT_FAST64_TYPE__
-    #define __UINT_FAST64_TYPE__ long long unsigned int
-    #undef __BFLT16_MIN_EXP__
-    #define __BFLT16_MIN_EXP__ (-125)
-    #undef __INT_MAX__
-    #define __INT_MAX__ 0x7fffffff
-    #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 __BFLT16_MANT_DIG__
-    #define __BFLT16_MANT_DIG__ 8
-    #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 int
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ unsigned int
-    #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 __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__ 1
-    #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 __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ int
-    #undef __UINT8_C
-    #define __UINT8_C(c) c
-    #undef __FLT64_MAX_EXP__
-    #define __FLT64_MAX_EXP__ 1024
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 4
-    #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 __FLT32_DIG__
-    #define __FLT32_DIG__ 6
-    #undef __UINT32_C
-    #define __UINT32_C(c) c ## U
-    #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 __DBL_MIN__
-    #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
-    #undef __PIC__
-    #define __PIC__ 2
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 0x7fffffff
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ unsigned int
-    #undef __FLT32X_NORM_MAX__
-    #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned int
-    #undef __FLT_MAX__
-    #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __SSE2__
-    #define __SSE2__ 1
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ int
-    #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 __FLT32X_HAS_QUIET_NAN__
-    #define __FLT32X_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_CONSUME
-    #define __ATOMIC_CONSUME 1
-    #undef __GNUC_MINOR__
-    #define __GNUC_MINOR__ 1
-    #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 __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__ 0xffffffffU
-    #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 __SIZE_MAX__
-    #define __SIZE_MAX__ 0xffffffffU
-    #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:
+    __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
+    __GCC_IEC_559_COMPLEX: '2'
+    __UINT_LEAST8_TYPE__: unsigned char
+    __SIZEOF_FLOAT80__: '12'
+    __BFLT16_DENORM_MIN__: 9.18354961579912115600575419704879436e-41BF16
+    __INTMAX_C(c): 'c ## LL'
+    __CHAR_BIT__: '8'
+    __UINT8_MAX__: '0xff'
+    __SCHAR_WIDTH__: '8'
+    __WINT_MAX__: 0xffffffffU
+    __FLT32_MIN_EXP__: (-125)
+    __BFLT16_NORM_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_MIN_10_EXP__: (-37)
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __WCHAR_MAX__: 0x7fffffffL
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8: '1'
+    __GCC_ATOMIC_CHAR_LOCK_FREE: '2'
+    __GCC_IEC_559: '2'
+    __FLT32X_DECIMAL_DIG__: '17'
+    __FLT_EVAL_METHOD__: '2'
+    __FLT64_DECIMAL_DIG__: '17'
+    __GCC_ATOMIC_CHAR32_T_LOCK_FREE: '2'
+    __UINT_FAST64_MAX__: 0xffffffffffffffffULL
+    __SIG_ATOMIC_TYPE__: int
+    __DBL_MIN_10_EXP__: (-307)
+    __FINITE_MATH_ONLY__: '0'
+    __FLT32X_MAX_EXP__: '1024'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1: '1'
+    __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'
+    __BFLT16_MAX_10_EXP__: '38'
+    __BFLT16_MAX_EXP__: '128'
+    __LDBL_IS_IEC_60559__: '1'
+    __FLT64X_HAS_QUIET_NAN__: '1'
+    __UINT_LEAST8_MAX__: '0xff'
+    __GCC_ATOMIC_BOOL_LOCK_FREE: '2'
+    __LAHF_SAHF__: '1'
+    __FLT128_DENORM_MIN__: 6.47517511943802511092443895822764655e-4966F128
+    __UINTMAX_TYPE__: long long unsigned int
+    __BFLT16_DECIMAL_DIG__: '4'
+    __linux: '1'
+    __DEC32_EPSILON__: 1E-6DF
+    __FLT_EVAL_METHOD_TS_18661_3__: '2'
+    __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__: '1'
+    __INT_LEAST16_WIDTH__: '16'
+    __SCHAR_MAX__: '0x7f'
+    __FLT128_MANT_DIG__: '113'
+    __WCHAR_MIN__: (-__WCHAR_MAX__ - 1)
+    __INT64_C(c): 'c ## LL'
+    __SSP_STRONG__: '3'
+    __GCC_ATOMIC_POINTER_LOCK_FREE: '2'
+    __ATOMIC_SEQ_CST: '5'
+    __unix: '1'
+    __INT_LEAST64_MAX__: 0x7fffffffffffffffLL
+    __FLT32X_MANT_DIG__: '53'
+    __FLT64X_EPSILON__: 1.08420217248550443400745280086994171e-19F64x
+    __DEC64_MIN_EXP__: (-382)
+    __DBL_DIG__: '15'
+    __FLT_EPSILON__: 1.19209289550781250000000000000000000e-7F
+    __SHRT_WIDTH__: '16'
+    __FLT32_IS_IEC_60559__: '1'
+    __LDBL_MIN__: 3.36210314311209350626267781732175260e-4932L
+    __DBL_IS_IEC_60559__: '1'
+    __DEC32_MAX__: 9.999999E96DF
+    __FLT64X_DENORM_MIN__: 3.64519953188247460252840593361941982e-4951F64x
+    __FLT32X_HAS_INFINITY__: '1'
+    __unix__: '1'
+    __INT_WIDTH__: '32'
+    __DECIMAL_DIG__: '21'
+    __FLT64_EPSILON__: 2.22044604925031308084726333618164062e-16F64
+    __gnu_linux__: '1'
+    __FLT128_IS_IEC_60559__: '1'
+    __FLT64X_MIN_10_EXP__: (-4931)
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __FLT16_MIN_EXP__: (-13)
+    __FLT64_MANT_DIG__: '53'
+    __FLT64X_MANT_DIG__: '64'
+    __BFLT16_DIG__: '2'
+    __GNUC__: '13'
+    __pie__: '2'
+    __MMX__: '1'
+    __FLT_HAS_DENORM__: '1'
+    __SIZEOF_LONG_DOUBLE__: '12'
+    __BIGGEST_ALIGNMENT__: '16'
+    __FLT64_MAX_10_EXP__: '308'
+    __BFLT16_IS_IEC_60559__: '0'
+    __FLT16_MAX_10_EXP__: '4'
+    __DBL_MAX__: ((double)1.79769313486231570814527423731704357e+308L)
+    __INT_FAST32_MAX__: '0x7fffffff'
+    __DBL_HAS_INFINITY__: '1'
+    __INT64_MAX__: 0x7fffffffffffffffLL
+    __SIZEOF_FLOAT__: '4'
+    __HAVE_SPECULATION_SAFE_VALUE: '1'
+    __DEC32_MIN_EXP__: (-94)
+    __INTPTR_WIDTH__: '32'
+    __UINT_LEAST32_MAX__: 0xffffffffU
+    __FLT32X_HAS_DENORM__: '1'
+    __INT_FAST16_TYPE__: int
+    __LDBL_HAS_DENORM__: '1'
+    __SEG_GS: '1'
+    __BFLT16_EPSILON__: 7.81250000000000000000000000000000000e-3BF16
+    __FLT128_HAS_INFINITY__: '1'
+    __DEC32_MIN__: 1E-95DF
+    __DBL_MAX_EXP__: '1024'
+    __WCHAR_WIDTH__: '32'
+    __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__: '4'
+    __BFLT16_HAS_INFINITY__: '1'
+    __FLT64X_MIN_EXP__: (-16381)
+    __SIZEOF_WINT_T__: '4'
+    __LONG_LONG_WIDTH__: '64'
+    __FLT32_MAX_EXP__: '128'
+    __GXX_ABI_VERSION: '1018'
+    __FLT_MIN_EXP__: (-125)
+    __GCC_HAVE_DWARF2_CFI_ASM: '1'
+    __INT16_MAX__: '0x7fff'
+    __INT_FAST64_TYPE__: long long int
+    __BFLT16_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_HAS_DENORM__: '1'
+    __FLT64_DENORM_MIN__: 4.94065645841246544176568792868221372e-324F64
+    __FLT16_DENORM_MIN__: 5.96046447753906250000000000000000000e-8F16
+    __FLT128_EPSILON__: 1.92592994438723585305597794258492732e-34F128
+    __FLT64X_NORM_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __SIZEOF_POINTER__: '4'
+    __SIZE_TYPE__: unsigned int
+    __DBL_HAS_QUIET_NAN__: '1'
+    __FLT32X_EPSILON__: 2.22044604925031308084726333618164062e-16F32x
+    __LDBL_MAX_EXP__: '16384'
+    __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'
+    __FLT32_MIN__: 1.17549435082228750796873653722224568e-38F32
+    __UINT8_TYPE__: unsigned char
+    __FLT_DIG__: '6'
+    __NO_INLINE__: '1'
+    __DEC_EVAL_METHOD__: '2'
+    __i386: '1'
+    __FLT_MANT_DIG__: '24'
+    __LDBL_DECIMAL_DIG__: '21'
+    __VERSION__: '"13.2.1 20230801"'
+    __UINT64_C(c): 'c ## ULL'
+    _STDC_PREDEF_H: '1'
+    __INT_LEAST32_MAX__: '0x7fffffff'
+    __GCC_ATOMIC_INT_LOCK_FREE: '2'
+    __FLT128_MAX_EXP__: '16384'
+    __FLT32_MANT_DIG__: '24'
+    __FLOAT_WORD_ORDER__: __ORDER_LITTLE_ENDIAN__
+    __FLT32X_MIN_EXP__: (-1021)
+    i386: '1'
+    __BFLT16_MIN__: 1.17549435082228750796873653722224568e-38BF16
+    __FLT128_HAS_DENORM__: '1'
+    __FLT32_DECIMAL_DIG__: '9'
+    __FLT128_DIG__: '33'
+    __INT32_C(c): c
+    __DEC64_EPSILON__: 1E-15DD
+    __ORDER_PDP_ENDIAN__: '3412'
+    __DEC128_MIN_EXP__: (-6142)
+    __code_model_32__: '1'
+    __DEC128_MAX__: 9.999999999999999999999999999999999E6144DL
+    __INT_FAST32_TYPE__: int
+    __UINT_LEAST16_TYPE__: short unsigned int
+    __DEC128_MAX_EXP__: '6145'
+    unix: '1'
+    __i386__: '1'
+    __UINT64_MAX__: 0xffffffffffffffffULL
+    __FLT_IS_IEC_60559__: '1'
+    __GNUC_WIDE_EXECUTION_CHARSET_NAME: '"UTF-32LE"'
+    __FLT64X_DIG__: '18'
+    __INT8_TYPE__: signed char
+    __ELF__: '1'
+    __GCC_ASM_FLAG_OUTPUTS__: '1'
+    __UINT32_TYPE__: unsigned int
+    __BFLT16_HAS_QUIET_NAN__: '1'
+    __FLT_RADIX__: '2'
+    __INT_LEAST16_TYPE__: short int
+    __LDBL_EPSILON__: 1.08420217248550443400745280086994171e-19L
+    __UINTMAX_C(c): 'c ## ULL'
+    __FLT16_DIG__: '3'
+    __k8: '1'
+    __FLT32X_MIN__: 2.22507385850720138309023271733240406e-308F32x
+    __SIG_ATOMIC_MAX__: '0x7fffffff'
+    __GCC_ATOMIC_WCHAR_T_LOCK_FREE: '2'
+    __USER_LABEL_PREFIX__: ''
+    __SIZEOF_PTRDIFF_T__: '4'
+    __FLT64X_HAS_INFINITY__: '1'
+    __FLT32_HAS_INFINITY__: '1'
+    __SIZEOF_LONG__: '4'
+    __LDBL_DIG__: '18'
+    __FLT64_IS_IEC_60559__: '1'
+    __FLT16_IS_IEC_60559__: '1'
+    __FLT16_MAX_EXP__: '16'
+    __DEC32_SUBNORMAL_MIN__: 0.000001E-95DF
+    __INT_FAST16_MAX__: '0x7fffffff'
+    __GCC_CONSTRUCTIVE_SIZE: '64'
+    __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'
+    __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
+    __FLT128_MIN__: 3.36210314311209350626267781732175260e-4932F128
+    __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'
+    __UINT16_C(c): c
+    __PTRDIFF_WIDTH__: '32'
+    __LDBL_MANT_DIG__: '64'
+    __INT_FAST16_WIDTH__: '32'
+    __FLT64_HAS_INFINITY__: '1'
+    __FLT64X_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __FLT16_HAS_INFINITY__: '1'
+    __SIG_ATOMIC_MIN__: (-__SIG_ATOMIC_MAX__ - 1)
+    __GCC_ATOMIC_LONG_LOCK_FREE: '2'
+    __DEC32_MANT_DIG__: '7'
+    __FLT16_MANT_DIG__: '11'
+    __k8__: '1'
+    __INTPTR_TYPE__: int
+    __UINT16_TYPE__: short unsigned int
+    __WCHAR_TYPE__: long int
+    __pic__: '2'
+    __UINTPTR_MAX__: 0xffffffffU
+    __INT_FAST64_WIDTH__: '64'
+    __LDBL_HAS_INFINITY__: '1'
+    __INT_FAST64_MAX__: 0x7fffffffffffffffLL
+    __GCC_ATOMIC_TEST_AND_SET_TRUEVAL: '1'
+    __FLT_NORM_MAX__: 3.40282346638528859811704183484516925e+38F
+    __FLT64X_MAX_EXP__: '16384'
+    __UINT_FAST64_TYPE__: long long unsigned int
+    __BFLT16_MIN_EXP__: (-125)
+    __INT_MAX__: '0x7fffffff'
+    __linux__: '1'
+    __INT64_TYPE__: long long int
+    __FLT_MAX_EXP__: '128'
+    __DBL_MANT_DIG__: '53'
+    __SIZEOF_FLOAT128__: '16'
+    __BFLT16_MANT_DIG__: '8'
+    __GCC_ATOMIC_CHAR16_T_LOCK_FREE: '2'
+    __DEC64_MIN__: 1E-383DD
+    __WINT_TYPE__: unsigned int
+    __UINT_LEAST32_TYPE__: unsigned int
+    __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'
+    __FLT32X_MAX_10_EXP__: '308'
+    __FLT16_MIN__: 6.10351562500000000000000000000000000e-5F16
+    __FLT64X_IS_IEC_60559__: '1'
+    __LDBL_MAX_10_EXP__: '4932'
+    __ATOMIC_RELAXED: '0'
+    __DBL_EPSILON__: ((double)2.22044604925031308084726333618164062e-16L)
+    __INT_LEAST32_TYPE__: int
+    __UINT8_C(c): c
+    __FLT64_MAX_EXP__: '1024'
+    __SIZEOF_WCHAR_T__: '4'
+    __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__
+    __GCC_DESTRUCTIVE_SIZE: '64'
+    __INTMAX_WIDTH__: '64'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __FLT32_DIG__: '6'
+    __UINT32_C(c): 'c ## U'
+    __FLT_DENORM_MIN__: 1.40129846432481707092372958328991613e-45F
+    __INT8_MAX__: '0x7f'
+    __LONG_WIDTH__: '32'
+    __DBL_MIN__: ((double)2.22507385850720138309023271733240406e-308L)
+    __PIC__: '2'
+    __INT32_MAX__: '0x7fffffff'
+    __UINT_FAST32_TYPE__: unsigned int
+    __FLT32X_NORM_MAX__: 1.79769313486231570814527423731704357e+308F32x
+    __CHAR32_TYPE__: unsigned int
+    __FLT_MAX__: 3.40282346638528859811704183484516925e+38F
+    __SSE2__: '1'
+    __INT32_TYPE__: int
+    __SIZEOF_DOUBLE__: '8'
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT64_MIN__: 2.22507385850720138309023271733240406e-308F64
+    __INT_LEAST32_WIDTH__: '32'
+    __INTMAX_TYPE__: long long int
+    __FLT32X_HAS_QUIET_NAN__: '1'
+    __ATOMIC_CONSUME: '1'
+    __GNUC_MINOR__: '2'
+    __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
+    __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'
+    __GCC_ATOMIC_LLONG_LOCK_FREE: '2'
+    __FLT32_HAS_QUIET_NAN__: '1'
+    __FLT_DECIMAL_DIG__: '9'
+    __UINT_FAST16_MAX__: 0xffffffffU
+    __LDBL_NORM_MAX__: 1.18973149535723176502126385303097021e+4932L
+    __GCC_ATOMIC_SHORT_LOCK_FREE: '2'
+    __SIZE_MAX__: 0xffffffffU
+    __UINT_FAST8_TYPE__: unsigned char
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_RELEASE: '3'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: '84'
+    erange: '34'
     e2big: '7'
     eacces: '13'
     eaddrinuse: '98'
@@ -814,7 +431,6 @@ errno:
     edeadlk: '35'
     edeadlock: '35'
     edestaddrreq: '89'
-    edom: '33'
     edquot: '122'
     eexist: '17'
     efault: '14'
@@ -822,7 +438,6 @@ errno:
     ehostdown: '112'
     ehostunreach: '113'
     eidrm: '43'
-    eilseq: '84'
     einprogress: '115'
     eintr: '4'
     einval: '22'
@@ -839,9 +454,9 @@ errno:
     el3rst: '47'
     elibacc: '79'
     elibbad: '80'
-    elibexec: '83'
     elibmax: '82'
     elibscn: '81'
+    elibexec: '83'
     eloop: '40'
     emediumtype: '124'
     emfile: '24'
@@ -890,15 +505,14 @@ errno:
     eproto: '71'
     eprotonosupport: '93'
     eprototype: '91'
-    erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
     erofs: '30'
     eshutdown: '108'
-    esocktnosupport: '94'
     espipe: '29'
+    esocktnosupport: '94'
     esrch: '3'
     estale: '116'
     estrpipe: '86'
@@ -915,10 +529,10 @@ filename_max: '4096'
 fopen_max: '16'
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: int
 int_fast32_t: int
 int_fast64_t: long long
-int_fast8_t: signed char
 intptr_t: int
 l_tmpnam: '20'
 little_endian: true
@@ -945,12 +559,12 @@ ssize_t: int
 time_t: long
 tmp_max: '238328'
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 uint_fast16_t: unsigned int
 uint_fast32_t: unsigned int
 uint_fast64_t: unsigned long long
-uint_fast8_t: unsigned char
 uintptr_t: unsigned int
-version: gcc (GCC) 13.1.1 20230429
+version: gcc (GCC) 13.2.1 20230801
 wchar_t: long
 weof: (0xffffffffu)
 wint_t: unsigned int
diff --git a/share/machdeps/machdep_gcc_x86_64.yaml b/share/machdeps/machdep_gcc_x86_64.yaml
index 6c81caac58ab722684b40814e8d81381839cff2d..a5bf476f8b3f09a5894f66a89bda5fe2e8b07709 100644
--- a/share/machdeps/machdep_gcc_x86_64.yaml
+++ b/share/machdeps/machdep_gcc_x86_64.yaml
@@ -14,789 +14,402 @@ char_is_unsigned: false
 compiler: gcc
 cpp_arch_flags:
 - -m64
-custom_defs: |
-    #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__ 16
-    #undef __BFLT16_DENORM_MIN__
-    #define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16
-    #undef __INTMAX_C
-    #define __INTMAX_C(c) c ## L
-    #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 __BFLT16_NORM_MAX__
-    #define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_MIN_10_EXP__
-    #define __BFLT16_MIN_10_EXP__ (-37)
-    #undef __ORDER_LITTLE_ENDIAN__
-    #define __ORDER_LITTLE_ENDIAN__ 1234
-    #undef __WCHAR_MAX__
-    #define __WCHAR_MAX__ 0x7fffffff
-    #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__ 0
-    #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__ 0xffffffffffffffffUL
-    #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__ 0xffffffffffffffffUL
-    #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 __BFLT16_MAX_10_EXP__
-    #define __BFLT16_MAX_10_EXP__ 38
-    #undef __BFLT16_MAX_EXP__
-    #define __BFLT16_MAX_EXP__ 128
-    #undef __LDBL_IS_IEC_60559__
-    #define __LDBL_IS_IEC_60559__ 1
-    #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 __FLT128_DENORM_MIN__
-    #define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
-    #undef __UINTMAX_TYPE__
-    #define __UINTMAX_TYPE__ long unsigned int
-    #undef __BFLT16_DECIMAL_DIG__
-    #define __BFLT16_DECIMAL_DIG__ 4
-    #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__ 0
-    #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__ 1
-    #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 ## L
-    #undef __SSP_STRONG__
-    #define __SSP_STRONG__ 3
-    #undef __GCC_ATOMIC_POINTER_LOCK_FREE
-    #define __GCC_ATOMIC_POINTER_LOCK_FREE 2
-    #undef __ATOMIC_SEQ_CST
-    #define __ATOMIC_SEQ_CST 5
-    #undef __unix
-    #define __unix 1
-    #undef __INT_LEAST64_MAX__
-    #define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
-    #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 __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__ 1
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
-    #undef __DBL_IS_IEC_60559__
-    #define __DBL_IS_IEC_60559__ 1
-    #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 __unix__
-    #define __unix__ 1
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 32
-    #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__ 1
-    #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 __BFLT16_DIG__
-    #define __BFLT16_DIG__ 2
-    #undef __GNUC__
-    #define __GNUC__ 13
-    #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__ 16
-    #undef __BIGGEST_ALIGNMENT__
-    #define __BIGGEST_ALIGNMENT__ 16
-    #undef __FLT64_MAX_10_EXP__
-    #define __FLT64_MAX_10_EXP__ 308
-    #undef __BFLT16_IS_IEC_60559__
-    #define __BFLT16_IS_IEC_60559__ 0
-    #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__ 0x7fffffffffffffffL
-    #undef __DBL_HAS_INFINITY__
-    #define __DBL_HAS_INFINITY__ 1
-    #undef __INT64_MAX__
-    #define __INT64_MAX__ 0x7fffffffffffffffL
-    #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__ 64
-    #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__ long int
-    #undef __MMX_WITH_SSE__
-    #define __MMX_WITH_SSE__ 1
-    #undef __LDBL_HAS_DENORM__
-    #define __LDBL_HAS_DENORM__ 1
-    #undef __SEG_GS
-    #define __SEG_GS 1
-    #undef __BFLT16_EPSILON__
-    #define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16
-    #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__ 32
-    #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 __SSE2_MATH__
-    #define __SSE2_MATH__ 1
-    #undef __ATOMIC_HLE_RELEASE
-    #define __ATOMIC_HLE_RELEASE 131072
-    #undef __PTRDIFF_MAX__
-    #define __PTRDIFF_MAX__ 0x7fffffffffffffffL
-    #undef __amd64
-    #define __amd64 1
-    #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__ 8
-    #undef __BFLT16_HAS_INFINITY__
-    #define __BFLT16_HAS_INFINITY__ 1
-    #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 1018
-    #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 __x86_64
-    #define __x86_64 1
-    #undef __INT_FAST64_TYPE__
-    #define __INT_FAST64_TYPE__ long int
-    #undef __BFLT16_MAX__
-    #define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_HAS_DENORM__
-    #define __BFLT16_HAS_DENORM__ 1
-    #undef __FLT64_DENORM_MIN__
-    #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
-    #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__ 8
-    #undef __SIZE_TYPE__
-    #define __SIZE_TYPE__ long unsigned int
-    #undef __LP64__
-    #define __LP64__ 1
-    #undef __DBL_HAS_QUIET_NAN__
-    #define __DBL_HAS_QUIET_NAN__ 1
-    #undef __FLT32X_EPSILON__
-    #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 16384
-    #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 __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 __FLT_MANT_DIG__
-    #define __FLT_MANT_DIG__ 24
-    #undef __LDBL_DECIMAL_DIG__
-    #define __LDBL_DECIMAL_DIG__ 21
-    #undef __VERSION__
-    #define __VERSION__ "13.1.1 20230429"
-    #undef __UINT64_C
-    #define __UINT64_C(c) c ## UL
-    #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 __BFLT16_MIN__
-    #define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16
-    #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
-    #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 __DEC128_MAX__
-    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ long int
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ short unsigned int
-    #undef __DEC128_MAX_EXP__
-    #define __DEC128_MAX_EXP__ 6145
-    #undef unix
-    #define unix 1
-    #undef __UINT64_MAX__
-    #define __UINT64_MAX__ 0xffffffffffffffffUL
-    #undef __FLT_IS_IEC_60559__
-    #define __FLT_IS_IEC_60559__ 1
-    #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 int
-    #undef __BFLT16_HAS_QUIET_NAN__
-    #define __BFLT16_HAS_QUIET_NAN__ 1
-    #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 ## UL
-    #undef __FLT16_DIG__
-    #define __FLT16_DIG__ 3
-    #undef __SSE_MATH__
-    #define __SSE_MATH__ 1
-    #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__ 8
-    #undef __FLT64X_HAS_INFINITY__
-    #define __FLT64X_HAS_INFINITY__ 1
-    #undef __FLT32_HAS_INFINITY__
-    #define __FLT32_HAS_INFINITY__ 1
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 8
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 18
-    #undef __FLT64_IS_IEC_60559__
-    #define __FLT64_IS_IEC_60559__ 1
-    #undef __x86_64__
-    #define __x86_64__ 1
-    #undef __FLT16_IS_IEC_60559__
-    #define __FLT16_IS_IEC_60559__ 1
-    #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__ 0x7fffffffffffffffL
-    #undef __GCC_CONSTRUCTIVE_SIZE
-    #define __GCC_CONSTRUCTIVE_SIZE 64
-    #undef __FLT64_DIG__
-    #define __FLT64_DIG__ 15
-    #undef __UINT_FAST32_MAX__
-    #define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
-    #undef __UINT_LEAST64_TYPE__
-    #define __UINT_LEAST64_TYPE__ long unsigned int
-    #undef __FLT16_EPSILON__
-    #define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16
-    #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__ 0x7fffffffffffffffL
-    #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 __UINT_FAST16_TYPE__
-    #define __UINT_FAST16_TYPE__ long unsigned int
-    #undef __DEC64_MAX__
-    #define __DEC64_MAX__ 9.999999999999999E384DD
-    #undef __INT_FAST32_WIDTH__
-    #define __INT_FAST32_WIDTH__ 64
-    #undef __CHAR16_TYPE__
-    #define __CHAR16_TYPE__ short unsigned int
-    #undef __PRAGMA_REDEFINE_EXTNAME
-    #define __PRAGMA_REDEFINE_EXTNAME 1
-    #undef __SIZE_WIDTH__
-    #define __SIZE_WIDTH__ 64
-    #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 __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 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 __FLT128_MIN__
-    #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
-    #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__ 0x7fffffffffffffffL
-    #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 __UINT16_C
-    #define __UINT16_C(c) c
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 64
-    #undef __LDBL_MANT_DIG__
-    #define __LDBL_MANT_DIG__ 64
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 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 __code_model_small__
-    #define __code_model_small__ 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 int
-    #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__ 0xffffffffffffffffUL
-    #undef __INT_FAST64_WIDTH__
-    #define __INT_FAST64_WIDTH__ 64
-    #undef __LDBL_HAS_INFINITY__
-    #define __LDBL_HAS_INFINITY__ 1
-    #undef __INT_FAST64_MAX__
-    #define __INT_FAST64_MAX__ 0x7fffffffffffffffL
-    #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 __FLT64X_MAX_EXP__
-    #define __FLT64X_MAX_EXP__ 16384
-    #undef __UINT_FAST64_TYPE__
-    #define __UINT_FAST64_TYPE__ long unsigned int
-    #undef __BFLT16_MIN_EXP__
-    #define __BFLT16_MIN_EXP__ (-125)
-    #undef __INT_MAX__
-    #define __INT_MAX__ 0x7fffffff
-    #undef __linux__
-    #define __linux__ 1
-    #undef __INT64_TYPE__
-    #define __INT64_TYPE__ long int
-    #undef __FLT_MAX_EXP__
-    #define __FLT_MAX_EXP__ 128
-    #undef __ORDER_BIG_ENDIAN__
-    #define __ORDER_BIG_ENDIAN__ 4321
-    #undef __DBL_MANT_DIG__
-    #define __DBL_MANT_DIG__ 53
-    #undef __SIZEOF_FLOAT128__
-    #define __SIZEOF_FLOAT128__ 16
-    #undef __BFLT16_MANT_DIG__
-    #define __BFLT16_MANT_DIG__ 8
-    #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 int
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ unsigned int
-    #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 __amd64__
-    #define __amd64__ 1
-    #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 __FLT32X_MAX_10_EXP__
-    #define __FLT32X_MAX_10_EXP__ 308
-    #undef __SIZEOF_INT128__
-    #define __SIZEOF_INT128__ 16
-    #undef __FLT16_MIN__
-    #define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16
-    #undef __FLT64X_IS_IEC_60559__
-    #define __FLT64X_IS_IEC_60559__ 1
-    #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 __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ int
-    #undef _LP64
-    #define _LP64 1
-    #undef __UINT8_C
-    #define __UINT8_C(c) c
-    #undef __FLT64_MAX_EXP__
-    #define __FLT64_MAX_EXP__ 1024
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 4
-    #undef __UINT64_TYPE__
-    #define __UINT64_TYPE__ 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__ 0x7fffffffffffffffL
-    #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 __FLT32_DIG__
-    #define __FLT32_DIG__ 6
-    #undef __UINT32_C
-    #define __UINT32_C(c) c ## U
-    #undef __FLT_DENORM_MIN__
-    #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
-    #undef __INT8_MAX__
-    #define __INT8_MAX__ 0x7f
-    #undef __LONG_WIDTH__
-    #define __LONG_WIDTH__ 64
-    #undef __DBL_MIN__
-    #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
-    #undef __PIC__
-    #define __PIC__ 2
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 0x7fffffff
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ long unsigned int
-    #undef __FLT32X_NORM_MAX__
-    #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned int
-    #undef __FLT_MAX__
-    #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __SSE2__
-    #define __SSE2__ 1
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ int
-    #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 int
-    #undef __FLT32X_HAS_QUIET_NAN__
-    #define __FLT32X_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_CONSUME
-    #define __ATOMIC_CONSUME 1
-    #undef __GNUC_MINOR__
-    #define __GNUC_MINOR__ 1
-    #undef __UINTMAX_MAX__
-    #define __UINTMAX_MAX__ 0xffffffffffffffffUL
-    #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__ long int
-    #undef __FLT32X_MIN_10_EXP__
-    #define __FLT32X_MIN_10_EXP__ (-307)
-    #undef __UINTPTR_TYPE__
-    #define __UINTPTR_TYPE__ long 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__ 0xffffffffffffffffUL
-    #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 __SIZE_MAX__
-    #define __SIZE_MAX__ 0xffffffffffffffffUL
-    #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:
+    __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
+    __GCC_IEC_559_COMPLEX: '2'
+    __UINT_LEAST8_TYPE__: unsigned char
+    __SIZEOF_FLOAT80__: '16'
+    __BFLT16_DENORM_MIN__: 9.18354961579912115600575419704879436e-41BF16
+    __INTMAX_C(c): 'c ## L'
+    __CHAR_BIT__: '8'
+    __UINT8_MAX__: '0xff'
+    __SCHAR_WIDTH__: '8'
+    __WINT_MAX__: 0xffffffffU
+    __FLT32_MIN_EXP__: (-125)
+    __BFLT16_NORM_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_MIN_10_EXP__: (-37)
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __WCHAR_MAX__: '0x7fffffff'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8: '1'
+    __GCC_ATOMIC_CHAR_LOCK_FREE: '2'
+    __GCC_IEC_559: '2'
+    __FLT32X_DECIMAL_DIG__: '17'
+    __FLT_EVAL_METHOD__: '0'
+    __FLT64_DECIMAL_DIG__: '17'
+    __GCC_ATOMIC_CHAR32_T_LOCK_FREE: '2'
+    __UINT_FAST64_MAX__: 0xffffffffffffffffUL
+    __SIG_ATOMIC_TYPE__: int
+    __DBL_MIN_10_EXP__: (-307)
+    __FINITE_MATH_ONLY__: '0'
+    __FLT32X_MAX_EXP__: '1024'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1: '1'
+    __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__: 0xffffffffffffffffUL
+    __SHRT_MAX__: '0x7fff'
+    __LDBL_MAX__: 1.18973149535723176502126385303097021e+4932L
+    __FLT64X_MAX_10_EXP__: '4932'
+    __BFLT16_MAX_10_EXP__: '38'
+    __BFLT16_MAX_EXP__: '128'
+    __LDBL_IS_IEC_60559__: '1'
+    __FLT64X_HAS_QUIET_NAN__: '1'
+    __UINT_LEAST8_MAX__: '0xff'
+    __GCC_ATOMIC_BOOL_LOCK_FREE: '2'
+    __FLT128_DENORM_MIN__: 6.47517511943802511092443895822764655e-4966F128
+    __UINTMAX_TYPE__: long unsigned int
+    __BFLT16_DECIMAL_DIG__: '4'
+    __linux: '1'
+    __DEC32_EPSILON__: 1E-6DF
+    __FLT_EVAL_METHOD_TS_18661_3__: '0'
+    __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__: '1'
+    __INT_LEAST16_WIDTH__: '16'
+    __SCHAR_MAX__: '0x7f'
+    __FLT128_MANT_DIG__: '113'
+    __WCHAR_MIN__: (-__WCHAR_MAX__ - 1)
+    __INT64_C(c): 'c ## L'
+    __SSP_STRONG__: '3'
+    __GCC_ATOMIC_POINTER_LOCK_FREE: '2'
+    __ATOMIC_SEQ_CST: '5'
+    __unix: '1'
+    __INT_LEAST64_MAX__: 0x7fffffffffffffffL
+    __FLT32X_MANT_DIG__: '53'
+    __FLT64X_EPSILON__: 1.08420217248550443400745280086994171e-19F64x
+    __DEC64_MIN_EXP__: (-382)
+    __DBL_DIG__: '15'
+    __FLT_EPSILON__: 1.19209289550781250000000000000000000e-7F
+    __SHRT_WIDTH__: '16'
+    __FLT32_IS_IEC_60559__: '1'
+    __LDBL_MIN__: 3.36210314311209350626267781732175260e-4932L
+    __DBL_IS_IEC_60559__: '1'
+    __DEC32_MAX__: 9.999999E96DF
+    __FLT64X_DENORM_MIN__: 3.64519953188247460252840593361941982e-4951F64x
+    __FLT32X_HAS_INFINITY__: '1'
+    __unix__: '1'
+    __INT_WIDTH__: '32'
+    __DECIMAL_DIG__: '21'
+    __FLT64_EPSILON__: 2.22044604925031308084726333618164062e-16F64
+    __gnu_linux__: '1'
+    __FLT128_IS_IEC_60559__: '1'
+    __FLT64X_MIN_10_EXP__: (-4931)
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __FLT16_MIN_EXP__: (-13)
+    __FLT64_MANT_DIG__: '53'
+    __FLT64X_MANT_DIG__: '64'
+    __BFLT16_DIG__: '2'
+    __GNUC__: '13'
+    __pie__: '2'
+    __MMX__: '1'
+    __FLT_HAS_DENORM__: '1'
+    __SIZEOF_LONG_DOUBLE__: '16'
+    __BIGGEST_ALIGNMENT__: '16'
+    __FLT64_MAX_10_EXP__: '308'
+    __BFLT16_IS_IEC_60559__: '0'
+    __FLT16_MAX_10_EXP__: '4'
+    __DBL_MAX__: ((double)1.79769313486231570814527423731704357e+308L)
+    __INT_FAST32_MAX__: 0x7fffffffffffffffL
+    __DBL_HAS_INFINITY__: '1'
+    __INT64_MAX__: 0x7fffffffffffffffL
+    __SIZEOF_FLOAT__: '4'
+    __HAVE_SPECULATION_SAFE_VALUE: '1'
+    __DEC32_MIN_EXP__: (-94)
+    __INTPTR_WIDTH__: '64'
+    __UINT_LEAST32_MAX__: 0xffffffffU
+    __FLT32X_HAS_DENORM__: '1'
+    __INT_FAST16_TYPE__: long int
+    __MMX_WITH_SSE__: '1'
+    __LDBL_HAS_DENORM__: '1'
+    __SEG_GS: '1'
+    __BFLT16_EPSILON__: 7.81250000000000000000000000000000000e-3BF16
+    __FLT128_HAS_INFINITY__: '1'
+    __DEC32_MIN__: 1E-95DF
+    __DBL_MAX_EXP__: '1024'
+    __WCHAR_WIDTH__: '32'
+    __FLT32_MAX__: 3.40282346638528859811704183484516925e+38F32
+    __DEC128_EPSILON__: 1E-33DL
+    __FLT16_DECIMAL_DIG__: '5'
+    __SSE2_MATH__: '1'
+    __ATOMIC_HLE_RELEASE: '131072'
+    __PTRDIFF_MAX__: 0x7fffffffffffffffL
+    __amd64: '1'
+    __ATOMIC_HLE_ACQUIRE: '65536'
+    __LONG_LONG_MAX__: 0x7fffffffffffffffLL
+    __SIZEOF_SIZE_T__: '8'
+    __BFLT16_HAS_INFINITY__: '1'
+    __FLT64X_MIN_EXP__: (-16381)
+    __SIZEOF_WINT_T__: '4'
+    __LONG_LONG_WIDTH__: '64'
+    __FLT32_MAX_EXP__: '128'
+    __GXX_ABI_VERSION: '1018'
+    __FLT_MIN_EXP__: (-125)
+    __GCC_HAVE_DWARF2_CFI_ASM: '1'
+    __INT16_MAX__: '0x7fff'
+    __x86_64: '1'
+    __INT_FAST64_TYPE__: long int
+    __BFLT16_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_HAS_DENORM__: '1'
+    __FLT64_DENORM_MIN__: 4.94065645841246544176568792868221372e-324F64
+    __FLT16_DENORM_MIN__: 5.96046447753906250000000000000000000e-8F16
+    __FLT128_EPSILON__: 1.92592994438723585305597794258492732e-34F128
+    __FLT64X_NORM_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __SIZEOF_POINTER__: '8'
+    __SIZE_TYPE__: long unsigned int
+    __LP64__: '1'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __FLT32X_EPSILON__: 2.22044604925031308084726333618164062e-16F32x
+    __LDBL_MAX_EXP__: '16384'
+    __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'
+    __FLT32_MIN__: 1.17549435082228750796873653722224568e-38F32
+    __UINT8_TYPE__: unsigned char
+    __FLT_DIG__: '6'
+    __NO_INLINE__: '1'
+    __DEC_EVAL_METHOD__: '2'
+    __FLT_MANT_DIG__: '24'
+    __LDBL_DECIMAL_DIG__: '21'
+    __VERSION__: '"13.2.1 20230801"'
+    __UINT64_C(c): 'c ## UL'
+    _STDC_PREDEF_H: '1'
+    __INT_LEAST32_MAX__: '0x7fffffff'
+    __GCC_ATOMIC_INT_LOCK_FREE: '2'
+    __FLT128_MAX_EXP__: '16384'
+    __FLT32_MANT_DIG__: '24'
+    __FLOAT_WORD_ORDER__: __ORDER_LITTLE_ENDIAN__
+    __FLT32X_MIN_EXP__: (-1021)
+    __BFLT16_MIN__: 1.17549435082228750796873653722224568e-38BF16
+    __FLT128_HAS_DENORM__: '1'
+    __FLT32_DECIMAL_DIG__: '9'
+    __FLT128_DIG__: '33'
+    __INT32_C(c): c
+    __DEC64_EPSILON__: 1E-15DD
+    __ORDER_PDP_ENDIAN__: '3412'
+    __DEC128_MIN_EXP__: (-6142)
+    __DEC128_MAX__: 9.999999999999999999999999999999999E6144DL
+    __INT_FAST32_TYPE__: long int
+    __UINT_LEAST16_TYPE__: short unsigned int
+    __DEC128_MAX_EXP__: '6145'
+    unix: '1'
+    __UINT64_MAX__: 0xffffffffffffffffUL
+    __FLT_IS_IEC_60559__: '1'
+    __GNUC_WIDE_EXECUTION_CHARSET_NAME: '"UTF-32LE"'
+    __FLT64X_DIG__: '18'
+    __INT8_TYPE__: signed char
+    __ELF__: '1'
+    __GCC_ASM_FLAG_OUTPUTS__: '1'
+    __UINT32_TYPE__: unsigned int
+    __BFLT16_HAS_QUIET_NAN__: '1'
+    __FLT_RADIX__: '2'
+    __INT_LEAST16_TYPE__: short int
+    __LDBL_EPSILON__: 1.08420217248550443400745280086994171e-19L
+    __UINTMAX_C(c): 'c ## UL'
+    __FLT16_DIG__: '3'
+    __SSE_MATH__: '1'
+    __k8: '1'
+    __FLT32X_MIN__: 2.22507385850720138309023271733240406e-308F32x
+    __SIG_ATOMIC_MAX__: '0x7fffffff'
+    __GCC_ATOMIC_WCHAR_T_LOCK_FREE: '2'
+    __USER_LABEL_PREFIX__: ''
+    __SIZEOF_PTRDIFF_T__: '8'
+    __FLT64X_HAS_INFINITY__: '1'
+    __FLT32_HAS_INFINITY__: '1'
+    __SIZEOF_LONG__: '8'
+    __LDBL_DIG__: '18'
+    __FLT64_IS_IEC_60559__: '1'
+    __x86_64__: '1'
+    __FLT16_IS_IEC_60559__: '1'
+    __FLT16_MAX_EXP__: '16'
+    __DEC32_SUBNORMAL_MIN__: 0.000001E-95DF
+    __INT_FAST16_MAX__: 0x7fffffffffffffffL
+    __GCC_CONSTRUCTIVE_SIZE: '64'
+    __FLT64_DIG__: '15'
+    __UINT_FAST32_MAX__: 0xffffffffffffffffUL
+    __UINT_LEAST64_TYPE__: long unsigned int
+    __FLT16_EPSILON__: 9.76562500000000000000000000000000000e-4F16
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MAX_10_EXP__: '38'
+    __LONG_MAX__: 0x7fffffffffffffffL
+    __FLT64X_HAS_DENORM__: '1'
+    __DEC128_SUBNORMAL_MIN__: 0.000000000000000000000000000000001E-6143DL
+    __FLT_HAS_INFINITY__: '1'
+    __GNUC_EXECUTION_CHARSET_NAME: '"UTF-8"'
+    __UINT_FAST16_TYPE__: long unsigned int
+    __DEC64_MAX__: 9.999999999999999E384DD
+    __INT_FAST32_WIDTH__: '64'
+    __CHAR16_TYPE__: short unsigned int
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __SIZE_WIDTH__: '64'
+    __SEG_FS: '1'
+    __INT_LEAST16_MAX__: '0x7fff'
+    __FLT16_NORM_MAX__: 6.55040000000000000000000000000000000e+4F16
+    __DEC64_MANT_DIG__: '16'
+    __FLT32_DENORM_MIN__: 1.40129846432481707092372958328991613e-45F32
+    __SIG_ATOMIC_WIDTH__: '32'
+    __INT_LEAST64_TYPE__: long int
+    __INT16_TYPE__: short int
+    __INT_LEAST8_TYPE__: signed char
+    __FLT16_MAX__: 6.55040000000000000000000000000000000e+4F16
+    __FLT128_MIN__: 3.36210314311209350626267781732175260e-4932F128
+    __SIZEOF_INT__: '4'
+    __DEC32_MAX_EXP__: '97'
+    __INT_FAST8_MAX__: '0x7f'
+    __FLT128_MAX__: 1.18973149535723176508575932662800702e+4932F128
+    __INTPTR_MAX__: 0x7fffffffffffffffL
+    linux: '1'
+    __FLT64_HAS_QUIET_NAN__: '1'
+    __FLT32_MIN_10_EXP__: (-37)
+    __FLT32X_DIG__: '15'
+    __UINT16_C(c): c
+    __PTRDIFF_WIDTH__: '64'
+    __LDBL_MANT_DIG__: '64'
+    __INT_FAST16_WIDTH__: '64'
+    __FLT64_HAS_INFINITY__: '1'
+    __FLT64X_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __FLT16_HAS_INFINITY__: '1'
+    __SIG_ATOMIC_MIN__: (-__SIG_ATOMIC_MAX__ - 1)
+    __code_model_small__: '1'
+    __GCC_ATOMIC_LONG_LOCK_FREE: '2'
+    __DEC32_MANT_DIG__: '7'
+    __FLT16_MANT_DIG__: '11'
+    __k8__: '1'
+    __INTPTR_TYPE__: long int
+    __UINT16_TYPE__: short unsigned int
+    __WCHAR_TYPE__: int
+    __pic__: '2'
+    __UINTPTR_MAX__: 0xffffffffffffffffUL
+    __INT_FAST64_WIDTH__: '64'
+    __LDBL_HAS_INFINITY__: '1'
+    __INT_FAST64_MAX__: 0x7fffffffffffffffL
+    __GCC_ATOMIC_TEST_AND_SET_TRUEVAL: '1'
+    __FLT_NORM_MAX__: 3.40282346638528859811704183484516925e+38F
+    __FLT64X_MAX_EXP__: '16384'
+    __UINT_FAST64_TYPE__: long unsigned int
+    __BFLT16_MIN_EXP__: (-125)
+    __INT_MAX__: '0x7fffffff'
+    __linux__: '1'
+    __INT64_TYPE__: long int
+    __FLT_MAX_EXP__: '128'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __DBL_MANT_DIG__: '53'
+    __SIZEOF_FLOAT128__: '16'
+    __BFLT16_MANT_DIG__: '8'
+    __GCC_ATOMIC_CHAR16_T_LOCK_FREE: '2'
+    __DEC64_MIN__: 1E-383DD
+    __WINT_TYPE__: unsigned int
+    __UINT_LEAST32_TYPE__: unsigned int
+    __SIZEOF_SHORT__: '2'
+    __FLT32_NORM_MAX__: 3.40282346638528859811704183484516925e+38F32
+    __SSE__: '1'
+    __LDBL_MIN_EXP__: (-16381)
+    __FLT64_MAX__: 1.79769313486231570814527423731704357e+308F64
+    __amd64__: '1'
+    __WINT_WIDTH__: '32'
+    __INT_LEAST8_MAX__: '0x7f'
+    __INT_LEAST64_WIDTH__: '64'
+    __FLT32X_MAX_10_EXP__: '308'
+    __SIZEOF_INT128__: '16'
+    __FLT16_MIN__: 6.10351562500000000000000000000000000e-5F16
+    __FLT64X_IS_IEC_60559__: '1'
+    __LDBL_MAX_10_EXP__: '4932'
+    __ATOMIC_RELAXED: '0'
+    __DBL_EPSILON__: ((double)2.22044604925031308084726333618164062e-16L)
+    __INT_LEAST32_TYPE__: int
+    _LP64: '1'
+    __UINT8_C(c): c
+    __FLT64_MAX_EXP__: '1024'
+    __SIZEOF_WCHAR_T__: '4'
+    __UINT64_TYPE__: 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__: 0x7fffffffffffffffL
+    __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__
+    __GCC_DESTRUCTIVE_SIZE: '64'
+    __INTMAX_WIDTH__: '64'
+    __FLT32_DIG__: '6'
+    __UINT32_C(c): 'c ## U'
+    __FLT_DENORM_MIN__: 1.40129846432481707092372958328991613e-45F
+    __INT8_MAX__: '0x7f'
+    __LONG_WIDTH__: '64'
+    __DBL_MIN__: ((double)2.22507385850720138309023271733240406e-308L)
+    __PIC__: '2'
+    __INT32_MAX__: '0x7fffffff'
+    __UINT_FAST32_TYPE__: long unsigned int
+    __FLT32X_NORM_MAX__: 1.79769313486231570814527423731704357e+308F32x
+    __CHAR32_TYPE__: unsigned int
+    __FLT_MAX__: 3.40282346638528859811704183484516925e+38F
+    __SSE2__: '1'
+    __INT32_TYPE__: int
+    __SIZEOF_DOUBLE__: '8'
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT64_MIN__: 2.22507385850720138309023271733240406e-308F64
+    __INT_LEAST32_WIDTH__: '32'
+    __INTMAX_TYPE__: long int
+    __FLT32X_HAS_QUIET_NAN__: '1'
+    __ATOMIC_CONSUME: '1'
+    __GNUC_MINOR__: '2'
+    __UINTMAX_MAX__: 0xffffffffffffffffUL
+    __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__: long int
+    __FLT32X_MIN_10_EXP__: (-307)
+    __UINTPTR_TYPE__: long 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'
+    __GCC_ATOMIC_LLONG_LOCK_FREE: '2'
+    __FLT32_HAS_QUIET_NAN__: '1'
+    __FLT_DECIMAL_DIG__: '9'
+    __UINT_FAST16_MAX__: 0xffffffffffffffffUL
+    __LDBL_NORM_MAX__: 1.18973149535723176502126385303097021e+4932L
+    __GCC_ATOMIC_SHORT_LOCK_FREE: '2'
+    __SIZE_MAX__: 0xffffffffffffffffUL
+    __UINT_FAST8_TYPE__: unsigned char
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_RELEASE: '3'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: '84'
+    erange: '34'
     e2big: '7'
     eacces: '13'
     eaddrinuse: '98'
@@ -822,7 +435,6 @@ errno:
     edeadlk: '35'
     edeadlock: '35'
     edestaddrreq: '89'
-    edom: '33'
     edquot: '122'
     eexist: '17'
     efault: '14'
@@ -830,7 +442,6 @@ errno:
     ehostdown: '112'
     ehostunreach: '113'
     eidrm: '43'
-    eilseq: '84'
     einprogress: '115'
     eintr: '4'
     einval: '22'
@@ -847,9 +458,9 @@ errno:
     el3rst: '47'
     elibacc: '79'
     elibbad: '80'
-    elibexec: '83'
     elibmax: '82'
     elibscn: '81'
+    elibexec: '83'
     eloop: '40'
     emediumtype: '124'
     emfile: '24'
@@ -898,15 +509,14 @@ errno:
     eproto: '71'
     eprotonosupport: '93'
     eprototype: '91'
-    erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
     erofs: '30'
     eshutdown: '108'
-    esocktnosupport: '94'
     espipe: '29'
+    esocktnosupport: '94'
     esrch: '3'
     estale: '116'
     estrpipe: '86'
@@ -923,10 +533,10 @@ filename_max: '4096'
 fopen_max: '16'
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: long
 int_fast32_t: long
 int_fast64_t: long
-int_fast8_t: signed char
 intptr_t: long
 l_tmpnam: '20'
 little_endian: true
@@ -953,12 +563,12 @@ ssize_t: long
 time_t: long
 tmp_max: '238328'
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 uint_fast16_t: unsigned long
 uint_fast32_t: unsigned long
 uint_fast64_t: unsigned long
-uint_fast8_t: unsigned char
 uintptr_t: unsigned long
-version: gcc (GCC) 13.1.1 20230429
+version: gcc (GCC) 13.2.1 20230801
 wchar_t: int
 weof: (0xffffffffu)
 wint_t: unsigned int
diff --git a/share/machdeps/machdep_msvc_x86_64.yaml b/share/machdeps/machdep_msvc_x86_64.yaml
index 59f2f5d98f1d29548c658c44e8c2403e5dda32a4..1902cd81a32ed1ee8c75dd7fd2d1eef1e78250ca 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 macros 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_ppc_32.yaml b/share/machdeps/machdep_ppc_32.yaml
index 58d1be5602866bb9938417137cb94df3ff5ed8f4..1a8df182bb67b0e5cef4ea76b74af5b6c5adb324 100644
--- a/share/machdeps/machdep_ppc_32.yaml
+++ b/share/machdeps/machdep_ppc_32.yaml
@@ -16,1029 +16,532 @@ cpp_arch_flags:
 - -target
 - powerpc-apple-linux
 - -mcpu=603
-custom_defs: |
-    #undef _ARCH_603
-    #define _ARCH_603 1
-    #undef _ARCH_PPC
-    #define _ARCH_PPC 1
-    #undef _ARCH_PPCGR
-    #define _ARCH_PPCGR 1
-    #undef _BIG_ENDIAN
-    #define _BIG_ENDIAN 1
-    #undef _ILP32
-    #define _ILP32 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 __BIGGEST_ALIGNMENT__
-    #define __BIGGEST_ALIGNMENT__ 16
-    #undef __BIG_ENDIAN__
-    #define __BIG_ENDIAN__ 1
-    #undef __BITINT_MAXWIDTH__
-    #define __BITINT_MAXWIDTH__ 128
-    #undef __BOOL_WIDTH__
-    #define __BOOL_WIDTH__ 8
-    #undef __BYTE_ORDER__
-    #define __BYTE_ORDER__ __ORDER_BIG_ENDIAN__
-    #undef __CHAR16_TYPE__
-    #define __CHAR16_TYPE__ unsigned short
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned int
-    #undef __CHAR_BIT__
-    #define __CHAR_BIT__ 8
-    #undef __CHAR_UNSIGNED__
-    #define __CHAR_UNSIGNED__ 1
-    #undef __CLANG_ATOMIC_BOOL_LOCK_FREE
-    #define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
-    #undef __CLANG_ATOMIC_CHAR16_T_LOCK_FREE
-    #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
-    #undef __CLANG_ATOMIC_CHAR32_T_LOCK_FREE
-    #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
-    #undef __CLANG_ATOMIC_CHAR_LOCK_FREE
-    #define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
-    #undef __CLANG_ATOMIC_INT_LOCK_FREE
-    #define __CLANG_ATOMIC_INT_LOCK_FREE 2
-    #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 2
-    #undef __CLANG_ATOMIC_POINTER_LOCK_FREE
-    #define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
-    #undef __CLANG_ATOMIC_SHORT_LOCK_FREE
-    #define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
-    #undef __CLANG_ATOMIC_WCHAR_T_LOCK_FREE
-    #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2
-    #undef __CONSTANT_CFSTRINGS__
-    #define __CONSTANT_CFSTRINGS__ 1
-    #undef __DBL_DECIMAL_DIG__
-    #define __DBL_DECIMAL_DIG__ 17
-    #undef __DBL_DENORM_MIN__
-    #define __DBL_DENORM_MIN__ 4.9406564584124654e-324
-    #undef __DBL_DIG__
-    #define __DBL_DIG__ 15
-    #undef __DBL_EPSILON__
-    #define __DBL_EPSILON__ 2.2204460492503131e-16
-    #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__ 53
-    #undef __DBL_MAX_10_EXP__
-    #define __DBL_MAX_10_EXP__ 308
-    #undef __DBL_MAX_EXP__
-    #define __DBL_MAX_EXP__ 1024
-    #undef __DBL_MAX__
-    #define __DBL_MAX__ 1.7976931348623157e+308
-    #undef __DBL_MIN_10_EXP__
-    #define __DBL_MIN_10_EXP__ (-307)
-    #undef __DBL_MIN_EXP__
-    #define __DBL_MIN_EXP__ (-1021)
-    #undef __DBL_MIN__
-    #define __DBL_MIN__ 2.2250738585072014e-308
-    #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 2
-    #undef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
-    #define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
-    #undef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
-    #define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
-    #undef __GCC_ATOMIC_CHAR_LOCK_FREE
-    #define __GCC_ATOMIC_CHAR_LOCK_FREE 2
-    #undef __GCC_ATOMIC_INT_LOCK_FREE
-    #define __GCC_ATOMIC_INT_LOCK_FREE 2
-    #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 2
-    #undef __GCC_ATOMIC_POINTER_LOCK_FREE
-    #define __GCC_ATOMIC_POINTER_LOCK_FREE 2
-    #undef __GCC_ATOMIC_SHORT_LOCK_FREE
-    #define __GCC_ATOMIC_SHORT_LOCK_FREE 2
-    #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 2
-    #undef __GCC_HAVE_DWARF2_CFI_ASM
-    #define __GCC_HAVE_DWARF2_CFI_ASM 1
-    #undef __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1
-    #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
-    #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 __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 __HAVE_BSWAP__
-    #define __HAVE_BSWAP__ 1
-    #undef __ILP32__
-    #define __ILP32__ 1
-    #undef __INT16_C_SUFFIX__
-    #define __INT16_C_SUFFIX__
-    #undef __INT16_FMTd__
-    #define __INT16_FMTd__ "hd"
-    #undef __INT16_FMTi__
-    #define __INT16_FMTi__ "hi"
-    #undef __INT16_MAX__
-    #define __INT16_MAX__ 32767
-    #undef __INT16_TYPE__
-    #define __INT16_TYPE__ short
-    #undef __INT32_C_SUFFIX__
-    #define __INT32_C_SUFFIX__
-    #undef __INT32_FMTd__
-    #define __INT32_FMTd__ "d"
-    #undef __INT32_FMTi__
-    #define __INT32_FMTi__ "i"
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 2147483647
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ 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__ 2147483647
-    #undef __INTPTR_TYPE__
-    #define __INTPTR_TYPE__ int
-    #undef __INTPTR_WIDTH__
-    #define __INTPTR_WIDTH__ 32
-    #undef __INT_FAST16_FMTd__
-    #define __INT_FAST16_FMTd__ "hd"
-    #undef __INT_FAST16_FMTi__
-    #define __INT_FAST16_FMTi__ "hi"
-    #undef __INT_FAST16_MAX__
-    #define __INT_FAST16_MAX__ 32767
-    #undef __INT_FAST16_TYPE__
-    #define __INT_FAST16_TYPE__ short
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 16
-    #undef __INT_FAST32_FMTd__
-    #define __INT_FAST32_FMTd__ "d"
-    #undef __INT_FAST32_FMTi__
-    #define __INT_FAST32_FMTi__ "i"
-    #undef __INT_FAST32_MAX__
-    #define __INT_FAST32_MAX__ 2147483647
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ 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__ "hd"
-    #undef __INT_LEAST16_FMTi__
-    #define __INT_LEAST16_FMTi__ "hi"
-    #undef __INT_LEAST16_MAX__
-    #define __INT_LEAST16_MAX__ 32767
-    #undef __INT_LEAST16_TYPE__
-    #define __INT_LEAST16_TYPE__ short
-    #undef __INT_LEAST16_WIDTH__
-    #define __INT_LEAST16_WIDTH__ 16
-    #undef __INT_LEAST32_FMTd__
-    #define __INT_LEAST32_FMTd__ "d"
-    #undef __INT_LEAST32_FMTi__
-    #define __INT_LEAST32_FMTi__ "i"
-    #undef __INT_LEAST32_MAX__
-    #define __INT_LEAST32_MAX__ 2147483647
-    #undef __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ 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__ 2147483647
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 32
-    #undef __LDBL_DECIMAL_DIG__
-    #define __LDBL_DECIMAL_DIG__ 33
-    #undef __LDBL_DENORM_MIN__
-    #define __LDBL_DENORM_MIN__ 4.94065645841246544176568792868221e-324L
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 31
-    #undef __LDBL_EPSILON__
-    #define __LDBL_EPSILON__ 4.94065645841246544176568792868221e-324L
-    #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__ 106
-    #undef __LDBL_MAX_10_EXP__
-    #define __LDBL_MAX_10_EXP__ 308
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 1024
-    #undef __LDBL_MAX__
-    #define __LDBL_MAX__ 1.79769313486231580793728971405301e+308L
-    #undef __LDBL_MIN_10_EXP__
-    #define __LDBL_MIN_10_EXP__ (-291)
-    #undef __LDBL_MIN_EXP__
-    #define __LDBL_MIN_EXP__ (-968)
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 2.00416836000897277799610805135016e-292L
-    #undef __LLONG_WIDTH__
-    #define __LLONG_WIDTH__ 64
-    #undef __LONGDOUBLE128
-    #define __LONGDOUBLE128 1
-    #undef __LONG_DOUBLE_128__
-    #define __LONG_DOUBLE_128__ 1
-    #undef __LONG_DOUBLE_IBM128__
-    #define __LONG_DOUBLE_IBM128__ 1
-    #undef __LONG_LONG_MAX__
-    #define __LONG_LONG_MAX__ 9223372036854775807LL
-    #undef __LONG_MAX__
-    #define __LONG_MAX__ 2147483647L
-    #undef __LONG_WIDTH__
-    #define __LONG_WIDTH__ 32
-    #undef __NATURAL_ALIGNMENT__
-    #define __NATURAL_ALIGNMENT__ 1
-    #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 __PIC__
-    #define __PIC__ 2
-    #undef __PIE__
-    #define __PIE__ 2
-    #undef __POINTER_WIDTH__
-    #define __POINTER_WIDTH__ 32
-    #undef __POWERPC__
-    #define __POWERPC__ 1
-    #undef __PPC__
-    #define __PPC__ 1
-    #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__ 2147483647
-    #undef __PTRDIFF_TYPE__
-    #define __PTRDIFF_TYPE__ int
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 32
-    #undef __REGISTER_PREFIX__
-    #define __REGISTER_PREFIX__
-    #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__ 2147483647
-    #undef __SIG_ATOMIC_WIDTH__
-    #define __SIG_ATOMIC_WIDTH__ 32
-    #undef __SIZEOF_DOUBLE__
-    #define __SIZEOF_DOUBLE__ 8
-    #undef __SIZEOF_FLOAT__
-    #define __SIZEOF_FLOAT__ 4
-    #undef __SIZEOF_INT__
-    #define __SIZEOF_INT__ 4
-    #undef __SIZEOF_LONG_DOUBLE__
-    #define __SIZEOF_LONG_DOUBLE__ 16
-    #undef __SIZEOF_LONG_LONG__
-    #define __SIZEOF_LONG_LONG__ 8
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 4
-    #undef __SIZEOF_POINTER__
-    #define __SIZEOF_POINTER__ 4
-    #undef __SIZEOF_PTRDIFF_T__
-    #define __SIZEOF_PTRDIFF_T__ 4
-    #undef __SIZEOF_SHORT__
-    #define __SIZEOF_SHORT__ 2
-    #undef __SIZEOF_SIZE_T__
-    #define __SIZEOF_SIZE_T__ 4
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 4
-    #undef __SIZEOF_WINT_T__
-    #define __SIZEOF_WINT_T__ 4
-    #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__ 4294967295U
-    #undef __SIZE_TYPE__
-    #define __SIZE_TYPE__ unsigned int
-    #undef __SIZE_WIDTH__
-    #define __SIZE_WIDTH__ 32
-    #undef __SSP_STRONG__
-    #define __SSP_STRONG__ 2
-    #undef __UINT16_C_SUFFIX__
-    #define __UINT16_C_SUFFIX__
-    #undef __UINT16_FMTX__
-    #define __UINT16_FMTX__ "hX"
-    #undef __UINT16_FMTo__
-    #define __UINT16_FMTo__ "ho"
-    #undef __UINT16_FMTu__
-    #define __UINT16_FMTu__ "hu"
-    #undef __UINT16_FMTx__
-    #define __UINT16_FMTx__ "hx"
-    #undef __UINT16_MAX__
-    #define __UINT16_MAX__ 65535
-    #undef __UINT16_TYPE__
-    #define __UINT16_TYPE__ unsigned short
-    #undef __UINT32_C_SUFFIX__
-    #define __UINT32_C_SUFFIX__ U
-    #undef __UINT32_FMTX__
-    #define __UINT32_FMTX__ "X"
-    #undef __UINT32_FMTo__
-    #define __UINT32_FMTo__ "o"
-    #undef __UINT32_FMTu__
-    #define __UINT32_FMTu__ "u"
-    #undef __UINT32_FMTx__
-    #define __UINT32_FMTx__ "x"
-    #undef __UINT32_MAX__
-    #define __UINT32_MAX__ 4294967295U
-    #undef __UINT32_TYPE__
-    #define __UINT32_TYPE__ 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__ 4294967295U
-    #undef __UINTPTR_TYPE__
-    #define __UINTPTR_TYPE__ unsigned int
-    #undef __UINTPTR_WIDTH__
-    #define __UINTPTR_WIDTH__ 32
-    #undef __UINT_FAST16_FMTX__
-    #define __UINT_FAST16_FMTX__ "hX"
-    #undef __UINT_FAST16_FMTo__
-    #define __UINT_FAST16_FMTo__ "ho"
-    #undef __UINT_FAST16_FMTu__
-    #define __UINT_FAST16_FMTu__ "hu"
-    #undef __UINT_FAST16_FMTx__
-    #define __UINT_FAST16_FMTx__ "hx"
-    #undef __UINT_FAST16_MAX__
-    #define __UINT_FAST16_MAX__ 65535
-    #undef __UINT_FAST16_TYPE__
-    #define __UINT_FAST16_TYPE__ unsigned short
-    #undef __UINT_FAST32_FMTX__
-    #define __UINT_FAST32_FMTX__ "X"
-    #undef __UINT_FAST32_FMTo__
-    #define __UINT_FAST32_FMTo__ "o"
-    #undef __UINT_FAST32_FMTu__
-    #define __UINT_FAST32_FMTu__ "u"
-    #undef __UINT_FAST32_FMTx__
-    #define __UINT_FAST32_FMTx__ "x"
-    #undef __UINT_FAST32_MAX__
-    #define __UINT_FAST32_MAX__ 4294967295U
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ 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__ "hX"
-    #undef __UINT_LEAST16_FMTo__
-    #define __UINT_LEAST16_FMTo__ "ho"
-    #undef __UINT_LEAST16_FMTu__
-    #define __UINT_LEAST16_FMTu__ "hu"
-    #undef __UINT_LEAST16_FMTx__
-    #define __UINT_LEAST16_FMTx__ "hx"
-    #undef __UINT_LEAST16_MAX__
-    #define __UINT_LEAST16_MAX__ 65535
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ unsigned short
-    #undef __UINT_LEAST32_FMTX__
-    #define __UINT_LEAST32_FMTX__ "X"
-    #undef __UINT_LEAST32_FMTo__
-    #define __UINT_LEAST32_FMTo__ "o"
-    #undef __UINT_LEAST32_FMTu__
-    #define __UINT_LEAST32_FMTu__ "u"
-    #undef __UINT_LEAST32_FMTx__
-    #define __UINT_LEAST32_FMTx__ "x"
-    #undef __UINT_LEAST32_MAX__
-    #define __UINT_LEAST32_MAX__ 4294967295U
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ 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__ 2147483647
-    #undef __WCHAR_TYPE__
-    #define __WCHAR_TYPE__ int
-    #undef __WCHAR_WIDTH__
-    #define __WCHAR_WIDTH__ 32
-    #undef __WINT_MAX__
-    #define __WINT_MAX__ 4294967295U
-    #undef __WINT_TYPE__
-    #define __WINT_TYPE__ unsigned int
-    #undef __WINT_UNSIGNED__
-    #define __WINT_UNSIGNED__ 1
-    #undef __WINT_WIDTH__
-    #define __WINT_WIDTH__ 32
-    #undef __abs
-    #define __abs __builtin_abs
-    #undef __addex
-    #define __addex __builtin_ppc_addex
-    #undef __alignx
-    #define __alignx __builtin_ppc_alignx
-    #undef __alloca
-    #define __alloca __builtin_alloca
-    #undef __bcopy
-    #define __bcopy bcopy
-    #undef __bpermd
-    #define __bpermd __builtin_bpermd
-    #undef __builtin_maxfe
-    #define __builtin_maxfe __builtin_ppc_maxfe
-    #undef __builtin_maxfl
-    #define __builtin_maxfl __builtin_ppc_maxfl
-    #undef __builtin_maxfs
-    #define __builtin_maxfs __builtin_ppc_maxfs
-    #undef __builtin_minfe
-    #define __builtin_minfe __builtin_ppc_minfe
-    #undef __builtin_minfl
-    #define __builtin_minfl __builtin_ppc_minfl
-    #undef __builtin_minfs
-    #define __builtin_minfs __builtin_ppc_minfs
-    #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-32"
-    #undef __cmpb
-    #define __cmpb __builtin_ppc_cmpb
-    #undef __cmpeqb
-    #define __cmpeqb __builtin_ppc_cmpeqb
-    #undef __cmplx
-    #define __cmplx __builtin_complex
-    #undef __cmplxf
-    #define __cmplxf __builtin_complex
-    #undef __cmplxl
-    #define __cmplxl __builtin_complex
-    #undef __cmprb
-    #define __cmprb __builtin_ppc_cmprb
-    #undef __cntlz4
-    #define __cntlz4 __builtin_clz
-    #undef __cntlz8
-    #define __cntlz8 __builtin_clzll
-    #undef __cnttz4
-    #define __cnttz4 __builtin_ctz
-    #undef __cnttz8
-    #define __cnttz8 __builtin_ctzll
-    #undef __compare_and_swap
-    #define __compare_and_swap __builtin_ppc_compare_and_swap
-    #undef __compare_and_swaplp
-    #define __compare_and_swaplp __builtin_ppc_compare_and_swaplp
-    #undef __compare_exp_eq
-    #define __compare_exp_eq __builtin_ppc_compare_exp_eq
-    #undef __compare_exp_gt
-    #define __compare_exp_gt __builtin_ppc_compare_exp_gt
-    #undef __compare_exp_lt
-    #define __compare_exp_lt __builtin_ppc_compare_exp_lt
-    #undef __compare_exp_uo
-    #define __compare_exp_uo __builtin_ppc_compare_exp_uo
-    #undef __darn
-    #define __darn __builtin_darn
-    #undef __darn_32
-    #define __darn_32 __builtin_darn_32
-    #undef __darn_raw
-    #define __darn_raw __builtin_darn_raw
-    #undef __dcbf
-    #define __dcbf __builtin_dcbf
-    #undef __dcbfl
-    #define __dcbfl __builtin_ppc_dcbfl
-    #undef __dcbflp
-    #define __dcbflp __builtin_ppc_dcbflp
-    #undef __dcbst
-    #define __dcbst __builtin_ppc_dcbst
-    #undef __dcbt
-    #define __dcbt __builtin_ppc_dcbt
-    #undef __dcbtst
-    #define __dcbtst __builtin_ppc_dcbtst
-    #undef __dcbtstt
-    #define __dcbtstt __builtin_ppc_dcbtstt
-    #undef __dcbtt
-    #define __dcbtt __builtin_ppc_dcbtt
-    #undef __dcbz
-    #define __dcbz __builtin_ppc_dcbz
-    #undef __divde
-    #define __divde __builtin_divde
-    #undef __divdeu
-    #define __divdeu __builtin_divdeu
-    #undef __divwe
-    #define __divwe __builtin_divwe
-    #undef __divweu
-    #define __divweu __builtin_divweu
-    #undef __eieio
-    #define __eieio __builtin_ppc_eieio
-    #undef __extract_exp
-    #define __extract_exp __builtin_ppc_extract_exp
-    #undef __extract_sig
-    #define __extract_sig __builtin_ppc_extract_sig
-    #undef __fcfid
-    #define __fcfid __builtin_ppc_fcfid
-    #undef __fcfud
-    #define __fcfud __builtin_ppc_fcfud
-    #undef __fctid
-    #define __fctid __builtin_ppc_fctid
-    #undef __fctidz
-    #define __fctidz __builtin_ppc_fctidz
-    #undef __fctiw
-    #define __fctiw __builtin_ppc_fctiw
-    #undef __fctiwz
-    #define __fctiwz __builtin_ppc_fctiwz
-    #undef __fctudz
-    #define __fctudz __builtin_ppc_fctudz
-    #undef __fctuwz
-    #define __fctuwz __builtin_ppc_fctuwz
-    #undef __fetch_and_add
-    #define __fetch_and_add __builtin_ppc_fetch_and_add
-    #undef __fetch_and_addlp
-    #define __fetch_and_addlp __builtin_ppc_fetch_and_addlp
-    #undef __fetch_and_and
-    #define __fetch_and_and __builtin_ppc_fetch_and_and
-    #undef __fetch_and_andlp
-    #define __fetch_and_andlp __builtin_ppc_fetch_and_andlp
-    #undef __fetch_and_or
-    #define __fetch_and_or __builtin_ppc_fetch_and_or
-    #undef __fetch_and_orlp
-    #define __fetch_and_orlp __builtin_ppc_fetch_and_orlp
-    #undef __fetch_and_swap
-    #define __fetch_and_swap __builtin_ppc_fetch_and_swap
-    #undef __fetch_and_swaplp
-    #define __fetch_and_swaplp __builtin_ppc_fetch_and_swaplp
-    #undef __fmadd
-    #define __fmadd __builtin_fma
-    #undef __fmadds
-    #define __fmadds __builtin_fmaf
-    #undef __fmsub
-    #define __fmsub __builtin_ppc_fmsub
-    #undef __fmsubs
-    #define __fmsubs __builtin_ppc_fmsubs
-    #undef __fnabs
-    #define __fnabs __builtin_ppc_fnabs
-    #undef __fnabss
-    #define __fnabss __builtin_ppc_fnabss
-    #undef __fnmadd
-    #define __fnmadd __builtin_ppc_fnmadd
-    #undef __fnmadds
-    #define __fnmadds __builtin_ppc_fnmadds
-    #undef __fnmsub
-    #define __fnmsub __builtin_ppc_fnmsub
-    #undef __fnmsubs
-    #define __fnmsubs __builtin_ppc_fnmsubs
-    #undef __fre
-    #define __fre __builtin_ppc_fre
-    #undef __fres
-    #define __fres __builtin_ppc_fres
-    #undef __fric
-    #define __fric __builtin_ppc_fric
-    #undef __frim
-    #define __frim __builtin_ppc_frim
-    #undef __frims
-    #define __frims __builtin_ppc_frims
-    #undef __frin
-    #define __frin __builtin_ppc_frin
-    #undef __frins
-    #define __frins __builtin_ppc_frins
-    #undef __frip
-    #define __frip __builtin_ppc_frip
-    #undef __frips
-    #define __frips __builtin_ppc_frips
-    #undef __friz
-    #define __friz __builtin_ppc_friz
-    #undef __frizs
-    #define __frizs __builtin_ppc_frizs
-    #undef __frsqrte
-    #define __frsqrte __builtin_ppc_frsqrte
-    #undef __frsqrtes
-    #define __frsqrtes __builtin_ppc_frsqrtes
-    #undef __fsel
-    #define __fsel __builtin_ppc_fsel
-    #undef __fsels
-    #define __fsels __builtin_ppc_fsels
-    #undef __fsqrt
-    #define __fsqrt __builtin_ppc_fsqrt
-    #undef __fsqrts
-    #define __fsqrts __builtin_ppc_fsqrts
-    #undef __gnu_linux__
-    #define __gnu_linux__ 1
-    #undef __icbt
-    #define __icbt __builtin_ppc_icbt
-    #undef __insert_exp
-    #define __insert_exp __builtin_ppc_insert_exp
-    #undef __iospace_eieio
-    #define __iospace_eieio __builtin_ppc_iospace_eieio
-    #undef __iospace_lwsync
-    #define __iospace_lwsync __builtin_ppc_iospace_lwsync
-    #undef __iospace_sync
-    #define __iospace_sync __builtin_ppc_iospace_sync
-    #undef __isync
-    #define __isync __builtin_ppc_isync
-    #undef __labs
-    #define __labs __builtin_labs
-    #undef __lbarx
-    #define __lbarx __builtin_ppc_lbarx
-    #undef __ldarx
-    #define __ldarx __builtin_ppc_ldarx
-    #undef __lharx
-    #define __lharx __builtin_ppc_lharx
-    #undef __linux
-    #define __linux 1
-    #undef __linux__
-    #define __linux__ 1
-    #undef __llabs
-    #define __llabs __builtin_llabs
-    #undef __llvm__
-    #define __llvm__ 1
-    #undef __load2r
-    #define __load2r __builtin_ppc_load2r
-    #undef __load4r
-    #define __load4r __builtin_ppc_load4r
-    #undef __load8r
-    #define __load8r __builtin_ppc_load8r
-    #undef __lwarx
-    #define __lwarx __builtin_ppc_lwarx
-    #undef __lwsync
-    #define __lwsync __builtin_ppc_lwsync
-    #undef __maddhd
-    #define __maddhd __builtin_ppc_maddhd
-    #undef __maddhdu
-    #define __maddhdu __builtin_ppc_maddhdu
-    #undef __maddld
-    #define __maddld __builtin_ppc_maddld
-    #undef __mfmsr
-    #define __mfmsr __builtin_ppc_mfmsr
-    #undef __mfspr
-    #define __mfspr __builtin_ppc_mfspr
-    #undef __mftbu
-    #define __mftbu __builtin_ppc_mftbu
-    #undef __mtfsb0
-    #define __mtfsb0 __builtin_ppc_mtfsb0
-    #undef __mtfsb1
-    #define __mtfsb1 __builtin_ppc_mtfsb1
-    #undef __mtfsf
-    #define __mtfsf __builtin_ppc_mtfsf
-    #undef __mtfsfi
-    #define __mtfsfi __builtin_ppc_mtfsfi
-    #undef __mtmsr
-    #define __mtmsr __builtin_ppc_mtmsr
-    #undef __mtspr
-    #define __mtspr __builtin_ppc_mtspr
-    #undef __mulhd
-    #define __mulhd __builtin_ppc_mulhd
-    #undef __mulhdu
-    #define __mulhdu __builtin_ppc_mulhdu
-    #undef __mulhw
-    #define __mulhw __builtin_ppc_mulhw
-    #undef __mulhwu
-    #define __mulhwu __builtin_ppc_mulhwu
-    #undef __pic__
-    #define __pic__ 2
-    #undef __pie__
-    #define __pie__ 2
-    #undef __popcnt4
-    #define __popcnt4 __builtin_popcount
-    #undef __popcnt8
-    #define __popcnt8 __builtin_popcountll
-    #undef __popcntb
-    #define __popcntb __builtin_ppc_popcntb
-    #undef __poppar4
-    #define __poppar4 __builtin_ppc_poppar4
-    #undef __poppar8
-    #define __poppar8 __builtin_ppc_poppar8
-    #undef __powerpc__
-    #define __powerpc__ 1
-    #undef __ppc__
-    #define __ppc__ 1
-    #undef __rdlam
-    #define __rdlam __builtin_ppc_rdlam
-    #undef __readflm
-    #define __readflm __builtin_readflm
-    #undef __rldimi
-    #define __rldimi __builtin_ppc_rldimi
-    #undef __rlwimi
-    #define __rlwimi __builtin_ppc_rlwimi
-    #undef __rlwnm
-    #define __rlwnm __builtin_ppc_rlwnm
-    #undef __rotatel4
-    #define __rotatel4 __builtin_rotateleft32
-    #undef __rotatel8
-    #define __rotatel8 __builtin_rotateleft64
-    #undef __setb
-    #define __setb __builtin_ppc_setb
-    #undef __setflm
-    #define __setflm __builtin_setflm
-    #undef __setrnd
-    #define __setrnd __builtin_setrnd
-    #undef __stbcx
-    #define __stbcx __builtin_ppc_stbcx
-    #undef __stdcx
-    #define __stdcx __builtin_ppc_stdcx
-    #undef __stfiw
-    #define __stfiw __builtin_ppc_stfiw
-    #undef __sthcx
-    #define __sthcx __builtin_ppc_sthcx
-    #undef __store2r
-    #define __store2r __builtin_ppc_store2r
-    #undef __store4r
-    #define __store4r __builtin_ppc_store4r
-    #undef __store8r
-    #define __store8r __builtin_ppc_store8r
-    #undef __stwcx
-    #define __stwcx __builtin_ppc_stwcx
-    #undef __swdiv
-    #define __swdiv __builtin_ppc_swdiv
-    #undef __swdiv_nochk
-    #define __swdiv_nochk __builtin_ppc_swdiv_nochk
-    #undef __swdivs
-    #define __swdivs __builtin_ppc_swdivs
-    #undef __swdivs_nochk
-    #define __swdivs_nochk __builtin_ppc_swdivs_nochk
-    #undef __sync
-    #define __sync __builtin_ppc_sync
-    #undef __tdw
-    #define __tdw __builtin_ppc_tdw
-    #undef __test_data_class
-    #define __test_data_class __builtin_ppc_test_data_class
-    #undef __trap
-    #define __trap __builtin_ppc_trap
-    #undef __trapd
-    #define __trapd __builtin_ppc_trapd
-    #undef __tw
-    #define __tw __builtin_ppc_tw
-    #undef __unix
-    #define __unix 1
-    #undef __unix__
-    #define __unix__ 1
-    #undef __vcipher
-    #define __vcipher __builtin_altivec_crypto_vcipher
-    #undef __vcipherlast
-    #define __vcipherlast __builtin_altivec_crypto_vcipherlast
-    #undef __vncipher
-    #define __vncipher __builtin_altivec_crypto_vncipher
-    #undef __vncipherlast
-    #define __vncipherlast __builtin_altivec_crypto_vncipherlast
-    #undef __vpermxor
-    #define __vpermxor __builtin_altivec_crypto_vpermxor
-    #undef __vpmsumb
-    #define __vpmsumb __builtin_altivec_crypto_vpmsumb
-    #undef __vpmsumd
-    #define __vpmsumd __builtin_altivec_crypto_vpmsumd
-    #undef __vpmsumh
-    #define __vpmsumh __builtin_altivec_crypto_vpmsumh
-    #undef __vpmsumw
-    #define __vpmsumw __builtin_altivec_crypto_vpmsumw
-    #undef linux
-    #define linux 1
-    #undef unix
-    #define unix 1
+custom_defs:
+    _ARCH_603: '1'
+    _ARCH_PPC: '1'
+    _ARCH_PPCGR: '1'
+    _BIG_ENDIAN: '1'
+    _ILP32: '1'
+    __ATOMIC_ACQUIRE: '2'
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_CONSUME: '1'
+    __ATOMIC_RELAXED: '0'
+    __ATOMIC_RELEASE: '3'
+    __ATOMIC_SEQ_CST: '5'
+    __BIGGEST_ALIGNMENT__: '16'
+    __BIG_ENDIAN__: '1'
+    __BITINT_MAXWIDTH__: '128'
+    __BOOL_WIDTH__: '8'
+    __BYTE_ORDER__: __ORDER_BIG_ENDIAN__
+    __CHAR16_TYPE__: unsigned short
+    __CHAR32_TYPE__: unsigned int
+    __CHAR_BIT__: '8'
+    __CHAR_UNSIGNED__: '1'
+    __CLANG_ATOMIC_BOOL_LOCK_FREE: '2'
+    __CLANG_ATOMIC_CHAR16_T_LOCK_FREE: '2'
+    __CLANG_ATOMIC_CHAR32_T_LOCK_FREE: '2'
+    __CLANG_ATOMIC_CHAR_LOCK_FREE: '2'
+    __CLANG_ATOMIC_INT_LOCK_FREE: '2'
+    __CLANG_ATOMIC_LLONG_LOCK_FREE: '1'
+    __CLANG_ATOMIC_LONG_LOCK_FREE: '2'
+    __CLANG_ATOMIC_POINTER_LOCK_FREE: '2'
+    __CLANG_ATOMIC_SHORT_LOCK_FREE: '2'
+    __CLANG_ATOMIC_WCHAR_T_LOCK_FREE: '2'
+    __CONSTANT_CFSTRINGS__: '1'
+    __DBL_DECIMAL_DIG__: '17'
+    __DBL_DENORM_MIN__: '4.9406564584124654e-324'
+    __DBL_DIG__: '15'
+    __DBL_EPSILON__: '2.2204460492503131e-16'
+    __DBL_HAS_DENORM__: '1'
+    __DBL_HAS_INFINITY__: '1'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __DBL_MANT_DIG__: '53'
+    __DBL_MAX_10_EXP__: '308'
+    __DBL_MAX_EXP__: '1024'
+    __DBL_MAX__: '1.7976931348623157e+308'
+    __DBL_MIN_10_EXP__: (-307)
+    __DBL_MIN_EXP__: (-1021)
+    __DBL_MIN__: '2.2250738585072014e-308'
+    __DECIMAL_DIG__: __LDBL_DECIMAL_DIG__
+    __ELF__: '1'
+    __FINITE_MATH_ONLY__: '0'
+    __FLT_DECIMAL_DIG__: '9'
+    __FLT_DENORM_MIN__: 1.40129846e-45F
+    __FLT_DIG__: '6'
+    __FLT_EPSILON__: 1.19209290e-7F
+    __FLT_HAS_DENORM__: '1'
+    __FLT_HAS_INFINITY__: '1'
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MANT_DIG__: '24'
+    __FLT_MAX_10_EXP__: '38'
+    __FLT_MAX_EXP__: '128'
+    __FLT_MAX__: 3.40282347e+38F
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT_MIN_EXP__: (-125)
+    __FLT_MIN__: 1.17549435e-38F
+    __FLT_RADIX__: '2'
+    __FPCLASS_NEGINF: '0x0004'
+    __FPCLASS_NEGNORMAL: '0x0008'
+    __FPCLASS_NEGSUBNORMAL: '0x0010'
+    __FPCLASS_NEGZERO: '0x0020'
+    __FPCLASS_POSINF: '0x0200'
+    __FPCLASS_POSNORMAL: '0x0100'
+    __FPCLASS_POSSUBNORMAL: '0x0080'
+    __FPCLASS_POSZERO: '0x0040'
+    __FPCLASS_QNAN: '0x0002'
+    __FPCLASS_SNAN: '0x0001'
+    __GCC_ATOMIC_BOOL_LOCK_FREE: '2'
+    __GCC_ATOMIC_CHAR16_T_LOCK_FREE: '2'
+    __GCC_ATOMIC_CHAR32_T_LOCK_FREE: '2'
+    __GCC_ATOMIC_CHAR_LOCK_FREE: '2'
+    __GCC_ATOMIC_INT_LOCK_FREE: '2'
+    __GCC_ATOMIC_LLONG_LOCK_FREE: '1'
+    __GCC_ATOMIC_LONG_LOCK_FREE: '2'
+    __GCC_ATOMIC_POINTER_LOCK_FREE: '2'
+    __GCC_ATOMIC_SHORT_LOCK_FREE: '2'
+    __GCC_ATOMIC_TEST_AND_SET_TRUEVAL: '1'
+    __GCC_ATOMIC_WCHAR_T_LOCK_FREE: '2'
+    __GCC_HAVE_DWARF2_CFI_ASM: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2: '1'
+    __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4: '1'
+    __GNUC_MINOR__: '2'
+    __GNUC_PATCHLEVEL__: '1'
+    __GNUC_STDC_INLINE__: '1'
+    __GNUC__: '4'
+    __GXX_ABI_VERSION: '1002'
+    __HAVE_BSWAP__: '1'
+    __ILP32__: '1'
+    __INT16_C_SUFFIX__: ''
+    __INT16_FMTd__: '"hd"'
+    __INT16_FMTi__: '"hi"'
+    __INT16_MAX__: '32767'
+    __INT16_TYPE__: short
+    __INT32_C_SUFFIX__: ''
+    __INT32_FMTd__: '"d"'
+    __INT32_FMTi__: '"i"'
+    __INT32_MAX__: '2147483647'
+    __INT32_TYPE__: int
+    __INT64_C_SUFFIX__: LL
+    __INT64_FMTd__: '"lld"'
+    __INT64_FMTi__: '"lli"'
+    __INT64_MAX__: 9223372036854775807LL
+    __INT64_TYPE__: long long int
+    __INT8_C_SUFFIX__: ''
+    __INT8_FMTd__: '"hhd"'
+    __INT8_FMTi__: '"hhi"'
+    __INT8_MAX__: '127'
+    __INT8_TYPE__: signed char
+    __INTMAX_C_SUFFIX__: LL
+    __INTMAX_FMTd__: '"lld"'
+    __INTMAX_FMTi__: '"lli"'
+    __INTMAX_MAX__: 9223372036854775807LL
+    __INTMAX_TYPE__: long long int
+    __INTMAX_WIDTH__: '64'
+    __INTPTR_FMTd__: '"d"'
+    __INTPTR_FMTi__: '"i"'
+    __INTPTR_MAX__: '2147483647'
+    __INTPTR_TYPE__: int
+    __INTPTR_WIDTH__: '32'
+    __INT_FAST16_FMTd__: '"hd"'
+    __INT_FAST16_FMTi__: '"hi"'
+    __INT_FAST16_MAX__: '32767'
+    __INT_FAST16_TYPE__: short
+    __INT_FAST16_WIDTH__: '16'
+    __INT_FAST32_FMTd__: '"d"'
+    __INT_FAST32_FMTi__: '"i"'
+    __INT_FAST32_MAX__: '2147483647'
+    __INT_FAST32_TYPE__: int
+    __INT_FAST32_WIDTH__: '32'
+    __INT_FAST64_FMTd__: '"lld"'
+    __INT_FAST64_FMTi__: '"lli"'
+    __INT_FAST64_MAX__: 9223372036854775807LL
+    __INT_FAST64_TYPE__: long long int
+    __INT_FAST64_WIDTH__: '64'
+    __INT_FAST8_FMTd__: '"hhd"'
+    __INT_FAST8_FMTi__: '"hhi"'
+    __INT_FAST8_MAX__: '127'
+    __INT_FAST8_TYPE__: signed char
+    __INT_FAST8_WIDTH__: '8'
+    __INT_LEAST16_FMTd__: '"hd"'
+    __INT_LEAST16_FMTi__: '"hi"'
+    __INT_LEAST16_MAX__: '32767'
+    __INT_LEAST16_TYPE__: short
+    __INT_LEAST16_WIDTH__: '16'
+    __INT_LEAST32_FMTd__: '"d"'
+    __INT_LEAST32_FMTi__: '"i"'
+    __INT_LEAST32_MAX__: '2147483647'
+    __INT_LEAST32_TYPE__: int
+    __INT_LEAST32_WIDTH__: '32'
+    __INT_LEAST64_FMTd__: '"lld"'
+    __INT_LEAST64_FMTi__: '"lli"'
+    __INT_LEAST64_MAX__: 9223372036854775807LL
+    __INT_LEAST64_TYPE__: long long int
+    __INT_LEAST64_WIDTH__: '64'
+    __INT_LEAST8_FMTd__: '"hhd"'
+    __INT_LEAST8_FMTi__: '"hhi"'
+    __INT_LEAST8_MAX__: '127'
+    __INT_LEAST8_TYPE__: signed char
+    __INT_LEAST8_WIDTH__: '8'
+    __INT_MAX__: '2147483647'
+    __INT_WIDTH__: '32'
+    __LDBL_DECIMAL_DIG__: '33'
+    __LDBL_DENORM_MIN__: 4.94065645841246544176568792868221e-324L
+    __LDBL_DIG__: '31'
+    __LDBL_EPSILON__: 4.94065645841246544176568792868221e-324L
+    __LDBL_HAS_DENORM__: '1'
+    __LDBL_HAS_INFINITY__: '1'
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __LDBL_MANT_DIG__: '106'
+    __LDBL_MAX_10_EXP__: '308'
+    __LDBL_MAX_EXP__: '1024'
+    __LDBL_MAX__: 1.79769313486231580793728971405301e+308L
+    __LDBL_MIN_10_EXP__: (-291)
+    __LDBL_MIN_EXP__: (-968)
+    __LDBL_MIN__: 2.00416836000897277799610805135016e-292L
+    __LLONG_WIDTH__: '64'
+    __LONGDOUBLE128: '1'
+    __LONG_DOUBLE_128__: '1'
+    __LONG_DOUBLE_IBM128__: '1'
+    __LONG_LONG_MAX__: 9223372036854775807LL
+    __LONG_MAX__: 2147483647L
+    __LONG_WIDTH__: '32'
+    __NATURAL_ALIGNMENT__: '1'
+    __NO_INLINE__: '1'
+    __OBJC_BOOL_IS_BOOL: '0'
+    __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES: '3'
+    __OPENCL_MEMORY_SCOPE_DEVICE: '2'
+    __OPENCL_MEMORY_SCOPE_SUB_GROUP: '4'
+    __OPENCL_MEMORY_SCOPE_WORK_GROUP: '1'
+    __OPENCL_MEMORY_SCOPE_WORK_ITEM: '0'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __ORDER_PDP_ENDIAN__: '3412'
+    __PIC__: '2'
+    __PIE__: '2'
+    __POINTER_WIDTH__: '32'
+    __POWERPC__: '1'
+    __PPC__: '1'
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __PTRDIFF_FMTd__: '"d"'
+    __PTRDIFF_FMTi__: '"i"'
+    __PTRDIFF_MAX__: '2147483647'
+    __PTRDIFF_TYPE__: int
+    __PTRDIFF_WIDTH__: '32'
+    __REGISTER_PREFIX__: ''
+    __SCHAR_MAX__: '127'
+    __SHRT_MAX__: '32767'
+    __SHRT_WIDTH__: '16'
+    __SIG_ATOMIC_MAX__: '2147483647'
+    __SIG_ATOMIC_WIDTH__: '32'
+    __SIZEOF_DOUBLE__: '8'
+    __SIZEOF_FLOAT__: '4'
+    __SIZEOF_INT__: '4'
+    __SIZEOF_LONG_DOUBLE__: '16'
+    __SIZEOF_LONG_LONG__: '8'
+    __SIZEOF_LONG__: '4'
+    __SIZEOF_POINTER__: '4'
+    __SIZEOF_PTRDIFF_T__: '4'
+    __SIZEOF_SHORT__: '2'
+    __SIZEOF_SIZE_T__: '4'
+    __SIZEOF_WCHAR_T__: '4'
+    __SIZEOF_WINT_T__: '4'
+    __SIZE_FMTX__: '"X"'
+    __SIZE_FMTo__: '"o"'
+    __SIZE_FMTu__: '"u"'
+    __SIZE_FMTx__: '"x"'
+    __SIZE_MAX__: 4294967295U
+    __SIZE_TYPE__: unsigned int
+    __SIZE_WIDTH__: '32'
+    __SSP_STRONG__: '2'
+    __UINT16_C_SUFFIX__: ''
+    __UINT16_FMTX__: '"hX"'
+    __UINT16_FMTo__: '"ho"'
+    __UINT16_FMTu__: '"hu"'
+    __UINT16_FMTx__: '"hx"'
+    __UINT16_MAX__: '65535'
+    __UINT16_TYPE__: unsigned short
+    __UINT32_C_SUFFIX__: U
+    __UINT32_FMTX__: '"X"'
+    __UINT32_FMTo__: '"o"'
+    __UINT32_FMTu__: '"u"'
+    __UINT32_FMTx__: '"x"'
+    __UINT32_MAX__: 4294967295U
+    __UINT32_TYPE__: unsigned int
+    __UINT64_C_SUFFIX__: ULL
+    __UINT64_FMTX__: '"llX"'
+    __UINT64_FMTo__: '"llo"'
+    __UINT64_FMTu__: '"llu"'
+    __UINT64_FMTx__: '"llx"'
+    __UINT64_MAX__: 18446744073709551615ULL
+    __UINT64_TYPE__: long long unsigned int
+    __UINT8_C_SUFFIX__: ''
+    __UINT8_FMTX__: '"hhX"'
+    __UINT8_FMTo__: '"hho"'
+    __UINT8_FMTu__: '"hhu"'
+    __UINT8_FMTx__: '"hhx"'
+    __UINT8_MAX__: '255'
+    __UINT8_TYPE__: unsigned char
+    __UINTMAX_C_SUFFIX__: ULL
+    __UINTMAX_FMTX__: '"llX"'
+    __UINTMAX_FMTo__: '"llo"'
+    __UINTMAX_FMTu__: '"llu"'
+    __UINTMAX_FMTx__: '"llx"'
+    __UINTMAX_MAX__: 18446744073709551615ULL
+    __UINTMAX_TYPE__: long long unsigned int
+    __UINTMAX_WIDTH__: '64'
+    __UINTPTR_FMTX__: '"X"'
+    __UINTPTR_FMTo__: '"o"'
+    __UINTPTR_FMTu__: '"u"'
+    __UINTPTR_FMTx__: '"x"'
+    __UINTPTR_MAX__: 4294967295U
+    __UINTPTR_TYPE__: unsigned int
+    __UINTPTR_WIDTH__: '32'
+    __UINT_FAST16_FMTX__: '"hX"'
+    __UINT_FAST16_FMTo__: '"ho"'
+    __UINT_FAST16_FMTu__: '"hu"'
+    __UINT_FAST16_FMTx__: '"hx"'
+    __UINT_FAST16_MAX__: '65535'
+    __UINT_FAST16_TYPE__: unsigned short
+    __UINT_FAST32_FMTX__: '"X"'
+    __UINT_FAST32_FMTo__: '"o"'
+    __UINT_FAST32_FMTu__: '"u"'
+    __UINT_FAST32_FMTx__: '"x"'
+    __UINT_FAST32_MAX__: 4294967295U
+    __UINT_FAST32_TYPE__: unsigned int
+    __UINT_FAST64_FMTX__: '"llX"'
+    __UINT_FAST64_FMTo__: '"llo"'
+    __UINT_FAST64_FMTu__: '"llu"'
+    __UINT_FAST64_FMTx__: '"llx"'
+    __UINT_FAST64_MAX__: 18446744073709551615ULL
+    __UINT_FAST64_TYPE__: long long unsigned int
+    __UINT_FAST8_FMTX__: '"hhX"'
+    __UINT_FAST8_FMTo__: '"hho"'
+    __UINT_FAST8_FMTu__: '"hhu"'
+    __UINT_FAST8_FMTx__: '"hhx"'
+    __UINT_FAST8_MAX__: '255'
+    __UINT_FAST8_TYPE__: unsigned char
+    __UINT_LEAST16_FMTX__: '"hX"'
+    __UINT_LEAST16_FMTo__: '"ho"'
+    __UINT_LEAST16_FMTu__: '"hu"'
+    __UINT_LEAST16_FMTx__: '"hx"'
+    __UINT_LEAST16_MAX__: '65535'
+    __UINT_LEAST16_TYPE__: unsigned short
+    __UINT_LEAST32_FMTX__: '"X"'
+    __UINT_LEAST32_FMTo__: '"o"'
+    __UINT_LEAST32_FMTu__: '"u"'
+    __UINT_LEAST32_FMTx__: '"x"'
+    __UINT_LEAST32_MAX__: 4294967295U
+    __UINT_LEAST32_TYPE__: unsigned int
+    __UINT_LEAST64_FMTX__: '"llX"'
+    __UINT_LEAST64_FMTo__: '"llo"'
+    __UINT_LEAST64_FMTu__: '"llu"'
+    __UINT_LEAST64_FMTx__: '"llx"'
+    __UINT_LEAST64_MAX__: 18446744073709551615ULL
+    __UINT_LEAST64_TYPE__: long long unsigned int
+    __UINT_LEAST8_FMTX__: '"hhX"'
+    __UINT_LEAST8_FMTo__: '"hho"'
+    __UINT_LEAST8_FMTu__: '"hhu"'
+    __UINT_LEAST8_FMTx__: '"hhx"'
+    __UINT_LEAST8_MAX__: '255'
+    __UINT_LEAST8_TYPE__: unsigned char
+    __USER_LABEL_PREFIX__: ''
+    __VERSION__: '"Clang 17.0.6"'
+    __WCHAR_MAX__: '2147483647'
+    __WCHAR_TYPE__: int
+    __WCHAR_WIDTH__: '32'
+    __WINT_MAX__: 4294967295U
+    __WINT_TYPE__: unsigned int
+    __WINT_UNSIGNED__: '1'
+    __WINT_WIDTH__: '32'
+    __abs: __builtin_abs
+    __addex: __builtin_ppc_addex
+    __alignx: __builtin_ppc_alignx
+    __alloca: __builtin_alloca
+    __bcopy: bcopy
+    __bpermd: __builtin_bpermd
+    __builtin_maxfe: __builtin_ppc_maxfe
+    __builtin_maxfl: __builtin_ppc_maxfl
+    __builtin_maxfs: __builtin_ppc_maxfs
+    __builtin_minfe: __builtin_ppc_minfe
+    __builtin_minfl: __builtin_ppc_minfl
+    __builtin_minfs: __builtin_ppc_minfs
+    __clang__: '1'
+    __clang_literal_encoding__: '"UTF-8"'
+    __clang_major__: '17'
+    __clang_minor__: '0'
+    __clang_patchlevel__: '6'
+    __clang_version__: '"17.0.6 "'
+    __clang_wide_literal_encoding__: '"UTF-32"'
+    __cmpb: __builtin_ppc_cmpb
+    __cmpeqb: __builtin_ppc_cmpeqb
+    __cmplx: __builtin_complex
+    __cmplxf: __builtin_complex
+    __cmplxl: __builtin_complex
+    __cmprb: __builtin_ppc_cmprb
+    __cntlz4: __builtin_clz
+    __cntlz8: __builtin_clzll
+    __cnttz4: __builtin_ctz
+    __cnttz8: __builtin_ctzll
+    __compare_and_swap: __builtin_ppc_compare_and_swap
+    __compare_and_swaplp: __builtin_ppc_compare_and_swaplp
+    __compare_exp_eq: __builtin_ppc_compare_exp_eq
+    __compare_exp_gt: __builtin_ppc_compare_exp_gt
+    __compare_exp_lt: __builtin_ppc_compare_exp_lt
+    __compare_exp_uo: __builtin_ppc_compare_exp_uo
+    __darn: __builtin_darn
+    __darn_32: __builtin_darn_32
+    __darn_raw: __builtin_darn_raw
+    __dcbf: __builtin_dcbf
+    __dcbfl: __builtin_ppc_dcbfl
+    __dcbflp: __builtin_ppc_dcbflp
+    __dcbst: __builtin_ppc_dcbst
+    __dcbt: __builtin_ppc_dcbt
+    __dcbtst: __builtin_ppc_dcbtst
+    __dcbtstt: __builtin_ppc_dcbtstt
+    __dcbtt: __builtin_ppc_dcbtt
+    __dcbz: __builtin_ppc_dcbz
+    __divde: __builtin_divde
+    __divdeu: __builtin_divdeu
+    __divwe: __builtin_divwe
+    __divweu: __builtin_divweu
+    __eieio: __builtin_ppc_eieio
+    __extract_exp: __builtin_ppc_extract_exp
+    __extract_sig: __builtin_ppc_extract_sig
+    __fcfid: __builtin_ppc_fcfid
+    __fcfud: __builtin_ppc_fcfud
+    __fctid: __builtin_ppc_fctid
+    __fctidz: __builtin_ppc_fctidz
+    __fctiw: __builtin_ppc_fctiw
+    __fctiwz: __builtin_ppc_fctiwz
+    __fctudz: __builtin_ppc_fctudz
+    __fctuwz: __builtin_ppc_fctuwz
+    __fetch_and_add: __builtin_ppc_fetch_and_add
+    __fetch_and_addlp: __builtin_ppc_fetch_and_addlp
+    __fetch_and_and: __builtin_ppc_fetch_and_and
+    __fetch_and_andlp: __builtin_ppc_fetch_and_andlp
+    __fetch_and_or: __builtin_ppc_fetch_and_or
+    __fetch_and_orlp: __builtin_ppc_fetch_and_orlp
+    __fetch_and_swap: __builtin_ppc_fetch_and_swap
+    __fetch_and_swaplp: __builtin_ppc_fetch_and_swaplp
+    __fmadd: __builtin_fma
+    __fmadds: __builtin_fmaf
+    __fmsub: __builtin_ppc_fmsub
+    __fmsubs: __builtin_ppc_fmsubs
+    __fnabs: __builtin_ppc_fnabs
+    __fnabss: __builtin_ppc_fnabss
+    __fnmadd: __builtin_ppc_fnmadd
+    __fnmadds: __builtin_ppc_fnmadds
+    __fnmsub: __builtin_ppc_fnmsub
+    __fnmsubs: __builtin_ppc_fnmsubs
+    __fre: __builtin_ppc_fre
+    __fres: __builtin_ppc_fres
+    __fric: __builtin_ppc_fric
+    __frim: __builtin_ppc_frim
+    __frims: __builtin_ppc_frims
+    __frin: __builtin_ppc_frin
+    __frins: __builtin_ppc_frins
+    __frip: __builtin_ppc_frip
+    __frips: __builtin_ppc_frips
+    __friz: __builtin_ppc_friz
+    __frizs: __builtin_ppc_frizs
+    __frsqrte: __builtin_ppc_frsqrte
+    __frsqrtes: __builtin_ppc_frsqrtes
+    __fsel: __builtin_ppc_fsel
+    __fsels: __builtin_ppc_fsels
+    __fsqrt: __builtin_ppc_fsqrt
+    __fsqrts: __builtin_ppc_fsqrts
+    __gnu_linux__: '1'
+    __icbt: __builtin_ppc_icbt
+    __insert_exp: __builtin_ppc_insert_exp
+    __iospace_eieio: __builtin_ppc_iospace_eieio
+    __iospace_lwsync: __builtin_ppc_iospace_lwsync
+    __iospace_sync: __builtin_ppc_iospace_sync
+    __isync: __builtin_ppc_isync
+    __labs: __builtin_labs
+    __lbarx: __builtin_ppc_lbarx
+    __ldarx: __builtin_ppc_ldarx
+    __lharx: __builtin_ppc_lharx
+    __linux: '1'
+    __linux__: '1'
+    __llabs: __builtin_llabs
+    __llvm__: '1'
+    __load2r: __builtin_ppc_load2r
+    __load4r: __builtin_ppc_load4r
+    __load8r: __builtin_ppc_load8r
+    __lwarx: __builtin_ppc_lwarx
+    __lwsync: __builtin_ppc_lwsync
+    __maddhd: __builtin_ppc_maddhd
+    __maddhdu: __builtin_ppc_maddhdu
+    __maddld: __builtin_ppc_maddld
+    __mfmsr: __builtin_ppc_mfmsr
+    __mfspr: __builtin_ppc_mfspr
+    __mftbu: __builtin_ppc_mftbu
+    __mtfsb0: __builtin_ppc_mtfsb0
+    __mtfsb1: __builtin_ppc_mtfsb1
+    __mtfsf: __builtin_ppc_mtfsf
+    __mtfsfi: __builtin_ppc_mtfsfi
+    __mtmsr: __builtin_ppc_mtmsr
+    __mtspr: __builtin_ppc_mtspr
+    __mulhd: __builtin_ppc_mulhd
+    __mulhdu: __builtin_ppc_mulhdu
+    __mulhw: __builtin_ppc_mulhw
+    __mulhwu: __builtin_ppc_mulhwu
+    __pic__: '2'
+    __pie__: '2'
+    __popcnt4: __builtin_popcount
+    __popcnt8: __builtin_popcountll
+    __popcntb: __builtin_ppc_popcntb
+    __poppar4: __builtin_ppc_poppar4
+    __poppar8: __builtin_ppc_poppar8
+    __powerpc__: '1'
+    __ppc__: '1'
+    __rdlam: __builtin_ppc_rdlam
+    __readflm: __builtin_readflm
+    __rldimi: __builtin_ppc_rldimi
+    __rlwimi: __builtin_ppc_rlwimi
+    __rlwnm: __builtin_ppc_rlwnm
+    __rotatel4: __builtin_rotateleft32
+    __rotatel8: __builtin_rotateleft64
+    __setb: __builtin_ppc_setb
+    __setflm: __builtin_setflm
+    __setrnd: __builtin_setrnd
+    __stbcx: __builtin_ppc_stbcx
+    __stdcx: __builtin_ppc_stdcx
+    __stfiw: __builtin_ppc_stfiw
+    __sthcx: __builtin_ppc_sthcx
+    __store2r: __builtin_ppc_store2r
+    __store4r: __builtin_ppc_store4r
+    __store8r: __builtin_ppc_store8r
+    __stwcx: __builtin_ppc_stwcx
+    __swdiv: __builtin_ppc_swdiv
+    __swdiv_nochk: __builtin_ppc_swdiv_nochk
+    __swdivs: __builtin_ppc_swdivs
+    __swdivs_nochk: __builtin_ppc_swdivs_nochk
+    __sync: __builtin_ppc_sync
+    __tdw: __builtin_ppc_tdw
+    __test_data_class: __builtin_ppc_test_data_class
+    __trap: __builtin_ppc_trap
+    __trapd: __builtin_ppc_trapd
+    __tw: __builtin_ppc_tw
+    __unix: '1'
+    __unix__: '1'
+    __vcipher: __builtin_altivec_crypto_vcipher
+    __vcipherlast: __builtin_altivec_crypto_vcipherlast
+    __vncipher: __builtin_altivec_crypto_vncipher
+    __vncipherlast: __builtin_altivec_crypto_vncipherlast
+    __vpermxor: __builtin_altivec_crypto_vpermxor
+    __vpmsumb: __builtin_altivec_crypto_vpmsumb
+    __vpmsumd: __builtin_altivec_crypto_vpmsumd
+    __vpmsumh: __builtin_altivec_crypto_vpmsumh
+    __vpmsumw: __builtin_altivec_crypto_vpmsumw
+    linux: '1'
+    unix: '1'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: '84'
+    erange: '34'
     e2big: '7'
     eacces: '13'
     eaddrinuse: '98'
@@ -1064,7 +567,6 @@ errno:
     edeadlk: '35'
     edeadlock: '35'
     edestaddrreq: '89'
-    edom: '33'
     edquot: '122'
     eexist: '17'
     efault: '14'
@@ -1072,7 +574,6 @@ errno:
     ehostdown: '112'
     ehostunreach: '113'
     eidrm: '43'
-    eilseq: '84'
     einprogress: '115'
     eintr: '4'
     einval: '22'
@@ -1089,9 +590,9 @@ errno:
     el3rst: '47'
     elibacc: '79'
     elibbad: '80'
-    elibexec: '83'
     elibmax: '82'
     elibscn: '81'
+    elibexec: '83'
     eloop: '40'
     emediumtype: '124'
     emfile: '24'
@@ -1140,15 +641,14 @@ errno:
     eproto: '71'
     eprotonosupport: '93'
     eprototype: '91'
-    erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
     erofs: '30'
     eshutdown: '108'
-    esocktnosupport: '94'
     espipe: '29'
+    esocktnosupport: '94'
     esrch: '3'
     estale: '116'
     estrpipe: '86'
@@ -1165,10 +665,10 @@ filename_max: '4096'
 fopen_max: '16'
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: int
 int_fast32_t: int
 int_fast64_t: long long
-int_fast8_t: signed char
 intptr_t: int
 l_tmpnam: '20'
 little_endian: false
@@ -1195,12 +695,12 @@ ssize_t: int
 time_t: long
 tmp_max: '238328'
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 uint_fast16_t: unsigned int
 uint_fast32_t: unsigned int
 uint_fast64_t: unsigned long long
-uint_fast8_t: unsigned char
 uintptr_t: unsigned int
-version: clang version 15.0.7
+version: clang version 17.0.6
 wchar_t: int
 weof: (0xffffffffu)
 wint_t: unsigned int
diff --git a/share/machdeps/machdep_x86_16.yaml b/share/machdeps/machdep_x86_16.yaml
index 70f9b4bae3ca3d9ef817a5e5b66821de0120e44a..f9342e85fc47f03ffddad05de3480003f9042b6e 100644
--- a/share/machdeps/machdep_x86_16.yaml
+++ b/share/machdeps/machdep_x86_16.yaml
@@ -13,707 +13,396 @@ 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'
+    __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'
+    __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'
+    __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'
+    __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'
+    _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'
+    __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'
+    __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'
+    __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 +527,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/share/machdeps/machdep_x86_32.yaml b/share/machdeps/machdep_x86_32.yaml
index 255029b4cc32a97a4d801fde4c0d7bb7c897b70b..6d43154a5bfc00f6c89dece9f091d8107c31bbac 100644
--- a/share/machdeps/machdep_x86_32.yaml
+++ b/share/machdeps/machdep_x86_32.yaml
@@ -14,739 +14,369 @@ char_is_unsigned: false
 compiler: generic
 cpp_arch_flags:
 - -m32
-custom_defs: |
-    #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 __BFLT16_DENORM_MIN__
-    #define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16
-    #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 __BFLT16_NORM_MAX__
-    #define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_MIN_10_EXP__
-    #define __BFLT16_MIN_10_EXP__ (-37)
-    #undef __ORDER_LITTLE_ENDIAN__
-    #define __ORDER_LITTLE_ENDIAN__ 1234
-    #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 __BFLT16_MAX_10_EXP__
-    #define __BFLT16_MAX_10_EXP__ 38
-    #undef __BFLT16_MAX_EXP__
-    #define __BFLT16_MAX_EXP__ 128
-    #undef __LDBL_IS_IEC_60559__
-    #define __LDBL_IS_IEC_60559__ 1
-    #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 __BFLT16_DECIMAL_DIG__
-    #define __BFLT16_DECIMAL_DIG__ 4
-    #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 __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__ 1
-    #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 __SSP_STRONG__
-    #define __SSP_STRONG__ 3
-    #undef __ATOMIC_SEQ_CST
-    #define __ATOMIC_SEQ_CST 5
-    #undef __unix
-    #define __unix 1
-    #undef __INT_LEAST64_MAX__
-    #define __INT_LEAST64_MAX__ 0x7fffffffffffffffLL
-    #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 __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__ 1
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
-    #undef __DBL_IS_IEC_60559__
-    #define __DBL_IS_IEC_60559__ 1
-    #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 __unix__
-    #define __unix__ 1
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 32
-    #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__ 1
-    #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 __BFLT16_DIG__
-    #define __BFLT16_DIG__ 2
-    #undef __GNUC__
-    #define __GNUC__ 13
-    #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 __BFLT16_IS_IEC_60559__
-    #define __BFLT16_IS_IEC_60559__ 0
-    #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 __INT64_MAX__
-    #define __INT64_MAX__ 0x7fffffffffffffffLL
-    #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 __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 __BFLT16_EPSILON__
-    #define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16
-    #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__ 32
-    #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__ 4
-    #undef __BFLT16_HAS_INFINITY__
-    #define __BFLT16_HAS_INFINITY__ 1
-    #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 1018
-    #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 __BFLT16_MAX__
-    #define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_HAS_DENORM__
-    #define __BFLT16_HAS_DENORM__ 1
-    #undef __FLT64_DENORM_MIN__
-    #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
-    #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 __SIZE_TYPE__
-    #define __SIZE_TYPE__ unsigned int
-    #undef __DBL_HAS_QUIET_NAN__
-    #define __DBL_HAS_QUIET_NAN__ 1
-    #undef __FLT32X_EPSILON__
-    #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 16384
-    #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 __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 __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__ "13.1.1 20230429"
-    #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 __BFLT16_MIN__
-    #define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16
-    #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
-    #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 __DEC128_MAX__
-    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ int
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ short unsigned int
-    #undef __DEC128_MAX_EXP__
-    #define __DEC128_MAX_EXP__ 6145
-    #undef unix
-    #define unix 1
-    #undef __i386__
-    #define __i386__ 1
-    #undef __UINT64_MAX__
-    #define __UINT64_MAX__ 0xffffffffffffffffULL
-    #undef __FLT_IS_IEC_60559__
-    #define __FLT_IS_IEC_60559__ 1
-    #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 int
-    #undef __BFLT16_HAS_QUIET_NAN__
-    #define __BFLT16_HAS_QUIET_NAN__ 1
-    #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 __FLT16_DIG__
-    #define __FLT16_DIG__ 3
-    #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 __FLT64X_HAS_INFINITY__
-    #define __FLT64X_HAS_INFINITY__ 1
-    #undef __FLT32_HAS_INFINITY__
-    #define __FLT32_HAS_INFINITY__ 1
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 4
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 18
-    #undef __FLT64_IS_IEC_60559__
-    #define __FLT64_IS_IEC_60559__ 1
-    #undef __FLT16_IS_IEC_60559__
-    #define __FLT16_IS_IEC_60559__ 1
-    #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 __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 __FLT128_MIN__
-    #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
-    #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 __UINT16_C
-    #define __UINT16_C(c) c
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 32
-    #undef __LDBL_MANT_DIG__
-    #define __LDBL_MANT_DIG__ 64
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 32
-    #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__ int
-    #undef __UINT16_TYPE__
-    #define __UINT16_TYPE__ short unsigned int
-    #undef __WCHAR_TYPE__
-    #define __WCHAR_TYPE__ long int
-    #undef __pic__
-    #define __pic__ 2
-    #undef __UINTPTR_MAX__
-    #define __UINTPTR_MAX__ 0xffffffffU
-    #undef __INT_FAST64_WIDTH__
-    #define __INT_FAST64_WIDTH__ 64
-    #undef __LDBL_HAS_INFINITY__
-    #define __LDBL_HAS_INFINITY__ 1
-    #undef __INT_FAST64_MAX__
-    #define __INT_FAST64_MAX__ 0x7fffffffffffffffLL
-    #undef __FLT_NORM_MAX__
-    #define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __FLT64X_MAX_EXP__
-    #define __FLT64X_MAX_EXP__ 16384
-    #undef __UINT_FAST64_TYPE__
-    #define __UINT_FAST64_TYPE__ long long unsigned int
-    #undef __BFLT16_MIN_EXP__
-    #define __BFLT16_MIN_EXP__ (-125)
-    #undef __INT_MAX__
-    #define __INT_MAX__ 0x7fffffff
-    #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 __BFLT16_MANT_DIG__
-    #define __BFLT16_MANT_DIG__ 8
-    #undef __DEC64_MIN__
-    #define __DEC64_MIN__ 1E-383DD
-    #undef __WINT_TYPE__
-    #define __WINT_TYPE__ unsigned int
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ unsigned int
-    #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 __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__ 1
-    #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 __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ int
-    #undef __UINT8_C
-    #define __UINT8_C(c) c
-    #undef __FLT64_MAX_EXP__
-    #define __FLT64_MAX_EXP__ 1024
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 4
-    #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 __FLT32_DIG__
-    #define __FLT32_DIG__ 6
-    #undef __UINT32_C
-    #define __UINT32_C(c) c ## U
-    #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 __DBL_MIN__
-    #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
-    #undef __PIC__
-    #define __PIC__ 2
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 0x7fffffff
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ unsigned int
-    #undef __FLT32X_NORM_MAX__
-    #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned int
-    #undef __FLT_MAX__
-    #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __SSE2__
-    #define __SSE2__ 1
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ int
-    #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 __FLT32X_HAS_QUIET_NAN__
-    #define __FLT32X_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_CONSUME
-    #define __ATOMIC_CONSUME 1
-    #undef __GNUC_MINOR__
-    #define __GNUC_MINOR__ 1
-    #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 __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__ 0xffffffffU
-    #undef __LDBL_NORM_MAX__
-    #define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L
-    #undef __SIZE_MAX__
-    #define __SIZE_MAX__ 0xffffffffU
-    #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:
+    __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'
+    __BFLT16_DENORM_MIN__: 9.18354961579912115600575419704879436e-41BF16
+    __INTMAX_C(c): 'c ## LL'
+    __CHAR_BIT__: '8'
+    __UINT8_MAX__: '0xff'
+    __SCHAR_WIDTH__: '8'
+    __WINT_MAX__: 0xffffffffU
+    __FLT32_MIN_EXP__: (-125)
+    __BFLT16_NORM_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_MIN_10_EXP__: (-37)
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __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'
+    __BFLT16_MAX_10_EXP__: '38'
+    __BFLT16_MAX_EXP__: '128'
+    __LDBL_IS_IEC_60559__: '1'
+    __FLT64X_HAS_QUIET_NAN__: '1'
+    __UINT_LEAST8_MAX__: '0xff'
+    __LAHF_SAHF__: '1'
+    __FLT128_DENORM_MIN__: 6.47517511943802511092443895822764655e-4966F128
+    __UINTMAX_TYPE__: long long unsigned int
+    __BFLT16_DECIMAL_DIG__: '4'
+    __linux: '1'
+    __DEC32_EPSILON__: 1E-6DF
+    __FLT_EVAL_METHOD_TS_18661_3__: '2'
+    __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__: '1'
+    __INT_LEAST16_WIDTH__: '16'
+    __SCHAR_MAX__: '0x7f'
+    __FLT128_MANT_DIG__: '113'
+    __WCHAR_MIN__: (-__WCHAR_MAX__ - 1)
+    __INT64_C(c): 'c ## LL'
+    __SSP_STRONG__: '3'
+    __ATOMIC_SEQ_CST: '5'
+    __unix: '1'
+    __INT_LEAST64_MAX__: 0x7fffffffffffffffLL
+    __FLT32X_MANT_DIG__: '53'
+    __FLT64X_EPSILON__: 1.08420217248550443400745280086994171e-19F64x
+    __DEC64_MIN_EXP__: (-382)
+    __DBL_DIG__: '15'
+    __FLT_EPSILON__: 1.19209289550781250000000000000000000e-7F
+    __SHRT_WIDTH__: '16'
+    __FLT32_IS_IEC_60559__: '1'
+    __LDBL_MIN__: 3.36210314311209350626267781732175260e-4932L
+    __DBL_IS_IEC_60559__: '1'
+    __DEC32_MAX__: 9.999999E96DF
+    __FLT64X_DENORM_MIN__: 3.64519953188247460252840593361941982e-4951F64x
+    __FLT32X_HAS_INFINITY__: '1'
+    __unix__: '1'
+    __INT_WIDTH__: '32'
+    __DECIMAL_DIG__: '21'
+    __FLT64_EPSILON__: 2.22044604925031308084726333618164062e-16F64
+    __FLT128_IS_IEC_60559__: '1'
+    __FLT64X_MIN_10_EXP__: (-4931)
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __FLT16_MIN_EXP__: (-13)
+    __FLT64_MANT_DIG__: '53'
+    __FLT64X_MANT_DIG__: '64'
+    __BFLT16_DIG__: '2'
+    __pie__: '2'
+    __MMX__: '1'
+    __FLT_HAS_DENORM__: '1'
+    __SIZEOF_LONG_DOUBLE__: '12'
+    __BIGGEST_ALIGNMENT__: '16'
+    __FLT64_MAX_10_EXP__: '308'
+    __BFLT16_IS_IEC_60559__: '0'
+    __FLT16_MAX_10_EXP__: '4'
+    __DBL_MAX__: ((double)1.79769313486231570814527423731704357e+308L)
+    __INT_FAST32_MAX__: '0x7fffffff'
+    __DBL_HAS_INFINITY__: '1'
+    __INT64_MAX__: 0x7fffffffffffffffLL
+    __SIZEOF_FLOAT__: '4'
+    __HAVE_SPECULATION_SAFE_VALUE: '1'
+    __DEC32_MIN_EXP__: (-94)
+    __INTPTR_WIDTH__: '32'
+    __UINT_LEAST32_MAX__: 0xffffffffU
+    __FLT32X_HAS_DENORM__: '1'
+    __INT_FAST16_TYPE__: int
+    __LDBL_HAS_DENORM__: '1'
+    __SEG_GS: '1'
+    __BFLT16_EPSILON__: 7.81250000000000000000000000000000000e-3BF16
+    __FLT128_HAS_INFINITY__: '1'
+    __DEC32_MIN__: 1E-95DF
+    __DBL_MAX_EXP__: '1024'
+    __WCHAR_WIDTH__: '32'
+    __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__: '4'
+    __BFLT16_HAS_INFINITY__: '1'
+    __FLT64X_MIN_EXP__: (-16381)
+    __SIZEOF_WINT_T__: '4'
+    __LONG_LONG_WIDTH__: '64'
+    __FLT32_MAX_EXP__: '128'
+    __FLT_MIN_EXP__: (-125)
+    __INT16_MAX__: '0x7fff'
+    __INT_FAST64_TYPE__: long long int
+    __BFLT16_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_HAS_DENORM__: '1'
+    __FLT64_DENORM_MIN__: 4.94065645841246544176568792868221372e-324F64
+    __FLT16_DENORM_MIN__: 5.96046447753906250000000000000000000e-8F16
+    __FLT128_EPSILON__: 1.92592994438723585305597794258492732e-34F128
+    __FLT64X_NORM_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __SIZEOF_POINTER__: '4'
+    __SIZE_TYPE__: unsigned int
+    __DBL_HAS_QUIET_NAN__: '1'
+    __FLT32X_EPSILON__: 2.22044604925031308084726333618164062e-16F32x
+    __LDBL_MAX_EXP__: '16384'
+    __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'
+    __FLT32_MIN__: 1.17549435082228750796873653722224568e-38F32
+    __UINT8_TYPE__: unsigned char
+    __FLT_DIG__: '6'
+    __NO_INLINE__: '1'
+    __DEC_EVAL_METHOD__: '2'
+    __i386: '1'
+    __FLT_MANT_DIG__: '24'
+    __LDBL_DECIMAL_DIG__: '21'
+    __VERSION__: '"13.2.1 20230801"'
+    __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'
+    __BFLT16_MIN__: 1.17549435082228750796873653722224568e-38BF16
+    __FLT128_HAS_DENORM__: '1'
+    __FLT32_DECIMAL_DIG__: '9'
+    __FLT128_DIG__: '33'
+    __INT32_C(c): c
+    __DEC64_EPSILON__: 1E-15DD
+    __ORDER_PDP_ENDIAN__: '3412'
+    __DEC128_MIN_EXP__: (-6142)
+    __code_model_32__: '1'
+    __DEC128_MAX__: 9.999999999999999999999999999999999E6144DL
+    __INT_FAST32_TYPE__: int
+    __UINT_LEAST16_TYPE__: short unsigned int
+    __DEC128_MAX_EXP__: '6145'
+    unix: '1'
+    __i386__: '1'
+    __UINT64_MAX__: 0xffffffffffffffffULL
+    __FLT_IS_IEC_60559__: '1'
+    __FLT64X_DIG__: '18'
+    __INT8_TYPE__: signed char
+    __ELF__: '1'
+    __UINT32_TYPE__: unsigned int
+    __BFLT16_HAS_QUIET_NAN__: '1'
+    __FLT_RADIX__: '2'
+    __INT_LEAST16_TYPE__: short int
+    __LDBL_EPSILON__: 1.08420217248550443400745280086994171e-19L
+    __UINTMAX_C(c): 'c ## ULL'
+    __FLT16_DIG__: '3'
+    __k8: '1'
+    __FLT32X_MIN__: 2.22507385850720138309023271733240406e-308F32x
+    __SIG_ATOMIC_MAX__: '0x7fffffff'
+    __USER_LABEL_PREFIX__: ''
+    __SIZEOF_PTRDIFF_T__: '4'
+    __FLT64X_HAS_INFINITY__: '1'
+    __FLT32_HAS_INFINITY__: '1'
+    __SIZEOF_LONG__: '4'
+    __LDBL_DIG__: '18'
+    __FLT64_IS_IEC_60559__: '1'
+    __FLT16_IS_IEC_60559__: '1'
+    __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'
+    _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'
+    __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
+    __FLT128_MIN__: 3.36210314311209350626267781732175260e-4932F128
+    __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'
+    __UINT16_C(c): c
+    __PTRDIFF_WIDTH__: '32'
+    __LDBL_MANT_DIG__: '64'
+    __INT_FAST16_WIDTH__: '32'
+    __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__: int
+    __UINT16_TYPE__: short unsigned int
+    __WCHAR_TYPE__: long int
+    __pic__: '2'
+    __UINTPTR_MAX__: 0xffffffffU
+    __INT_FAST64_WIDTH__: '64'
+    __LDBL_HAS_INFINITY__: '1'
+    __INT_FAST64_MAX__: 0x7fffffffffffffffLL
+    __FLT_NORM_MAX__: 3.40282346638528859811704183484516925e+38F
+    __FLT64X_MAX_EXP__: '16384'
+    __UINT_FAST64_TYPE__: long long unsigned int
+    __BFLT16_MIN_EXP__: (-125)
+    __INT_MAX__: '0x7fffffff'
+    __linux__: '1'
+    __INT64_TYPE__: long long int
+    __FLT_MAX_EXP__: '128'
+    __DBL_MANT_DIG__: '53'
+    __SIZEOF_FLOAT128__: '16'
+    __BFLT16_MANT_DIG__: '8'
+    __DEC64_MIN__: 1E-383DD
+    __WINT_TYPE__: unsigned int
+    __UINT_LEAST32_TYPE__: unsigned int
+    __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'
+    __FLT32X_MAX_10_EXP__: '308'
+    __FLT16_MIN__: 6.10351562500000000000000000000000000e-5F16
+    __FLT64X_IS_IEC_60559__: '1'
+    __LDBL_MAX_10_EXP__: '4932'
+    __ATOMIC_RELAXED: '0'
+    __DBL_EPSILON__: ((double)2.22044604925031308084726333618164062e-16L)
+    __INT_LEAST32_TYPE__: int
+    __UINT8_C(c): c
+    __FLT64_MAX_EXP__: '1024'
+    __SIZEOF_WCHAR_T__: '4'
+    __UINT64_TYPE__: long long unsigned int
+    __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
+    __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'
+    __FLT32_DIG__: '6'
+    __UINT32_C(c): 'c ## U'
+    __FLT_DENORM_MIN__: 1.40129846432481707092372958328991613e-45F
+    __INT8_MAX__: '0x7f'
+    __LONG_WIDTH__: '32'
+    __DBL_MIN__: ((double)2.22507385850720138309023271733240406e-308L)
+    __PIC__: '2'
+    __INT32_MAX__: '0x7fffffff'
+    __UINT_FAST32_TYPE__: unsigned int
+    __FLT32X_NORM_MAX__: 1.79769313486231570814527423731704357e+308F32x
+    __CHAR32_TYPE__: unsigned int
+    __FLT_MAX__: 3.40282346638528859811704183484516925e+38F
+    __SSE2__: '1'
+    __INT32_TYPE__: int
+    __SIZEOF_DOUBLE__: '8'
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT64_MIN__: 2.22507385850720138309023271733240406e-308F64
+    __INT_LEAST32_WIDTH__: '32'
+    __INTMAX_TYPE__: long long int
+    __FLT32X_HAS_QUIET_NAN__: '1'
+    __ATOMIC_CONSUME: '1'
+    __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
+    __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__: 0xffffffffU
+    __LDBL_NORM_MAX__: 1.18973149535723176502126385303097021e+4932L
+    __SIZE_MAX__: 0xffffffffU
+    __UINT_FAST8_TYPE__: unsigned char
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_RELEASE: '3'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: '84'
+    erange: '34'
     e2big: '7'
     eacces: '13'
     eaddrinuse: '98'
@@ -772,7 +402,6 @@ errno:
     edeadlk: '35'
     edeadlock: '35'
     edestaddrreq: '89'
-    edom: '33'
     edquot: '122'
     eexist: '17'
     efault: '14'
@@ -780,7 +409,6 @@ errno:
     ehostdown: '112'
     ehostunreach: '113'
     eidrm: '43'
-    eilseq: '84'
     einprogress: '115'
     eintr: '4'
     einval: '22'
@@ -797,9 +425,9 @@ errno:
     el3rst: '47'
     elibacc: '79'
     elibbad: '80'
-    elibexec: '83'
     elibmax: '82'
     elibscn: '81'
+    elibexec: '83'
     eloop: '40'
     emediumtype: '124'
     emfile: '24'
@@ -848,15 +476,14 @@ errno:
     eproto: '71'
     eprotonosupport: '93'
     eprototype: '91'
-    erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
     erofs: '30'
     eshutdown: '108'
-    esocktnosupport: '94'
     espipe: '29'
+    esocktnosupport: '94'
     esrch: '3'
     estale: '116'
     estrpipe: '86'
@@ -873,10 +500,10 @@ filename_max: '4096'
 fopen_max: '16'
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: int
 int_fast32_t: int
 int_fast64_t: long long
-int_fast8_t: signed char
 intptr_t: int
 l_tmpnam: '20'
 little_endian: true
@@ -903,12 +530,12 @@ ssize_t: int
 time_t: long
 tmp_max: '238328'
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 uint_fast16_t: unsigned int
 uint_fast32_t: unsigned int
 uint_fast64_t: unsigned long long
-uint_fast8_t: unsigned char
 uintptr_t: unsigned int
-version: gcc (GCC) 13.1.1 20230429
+version: gcc (GCC) 13.2.1 20230801
 wchar_t: long
 weof: (0xffffffffu)
 wint_t: unsigned int
diff --git a/share/machdeps/machdep_x86_64.yaml b/share/machdeps/machdep_x86_64.yaml
index 4bea3f923dd78d231b2831b93e8d462d6ad246f3..aa4cbee68d442df232303f2bcddd81ab50dc569e 100644
--- a/share/machdeps/machdep_x86_64.yaml
+++ b/share/machdeps/machdep_x86_64.yaml
@@ -14,747 +14,373 @@ char_is_unsigned: false
 compiler: generic
 cpp_arch_flags:
 - -m64
-custom_defs: |
-    #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__ 16
-    #undef __BFLT16_DENORM_MIN__
-    #define __BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16
-    #undef __INTMAX_C
-    #define __INTMAX_C(c) c ## L
-    #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 __BFLT16_NORM_MAX__
-    #define __BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_MIN_10_EXP__
-    #define __BFLT16_MIN_10_EXP__ (-37)
-    #undef __ORDER_LITTLE_ENDIAN__
-    #define __ORDER_LITTLE_ENDIAN__ 1234
-    #undef __WCHAR_MAX__
-    #define __WCHAR_MAX__ 0x7fffffff
-    #undef __FLT32X_DECIMAL_DIG__
-    #define __FLT32X_DECIMAL_DIG__ 17
-    #undef __FLT_EVAL_METHOD__
-    #define __FLT_EVAL_METHOD__ 0
-    #undef __FLT64_DECIMAL_DIG__
-    #define __FLT64_DECIMAL_DIG__ 17
-    #undef __UINT_FAST64_MAX__
-    #define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
-    #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__ 0xffffffffffffffffUL
-    #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 __BFLT16_MAX_10_EXP__
-    #define __BFLT16_MAX_10_EXP__ 38
-    #undef __BFLT16_MAX_EXP__
-    #define __BFLT16_MAX_EXP__ 128
-    #undef __LDBL_IS_IEC_60559__
-    #define __LDBL_IS_IEC_60559__ 1
-    #undef __FLT64X_HAS_QUIET_NAN__
-    #define __FLT64X_HAS_QUIET_NAN__ 1
-    #undef __UINT_LEAST8_MAX__
-    #define __UINT_LEAST8_MAX__ 0xff
-    #undef __FLT128_DENORM_MIN__
-    #define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
-    #undef __UINTMAX_TYPE__
-    #define __UINTMAX_TYPE__ long unsigned int
-    #undef __BFLT16_DECIMAL_DIG__
-    #define __BFLT16_DECIMAL_DIG__ 4
-    #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__ 0
-    #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__ 1
-    #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 ## L
-    #undef __SSP_STRONG__
-    #define __SSP_STRONG__ 3
-    #undef __ATOMIC_SEQ_CST
-    #define __ATOMIC_SEQ_CST 5
-    #undef __unix
-    #define __unix 1
-    #undef __INT_LEAST64_MAX__
-    #define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
-    #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 __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__ 1
-    #undef __LDBL_MIN__
-    #define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
-    #undef __DBL_IS_IEC_60559__
-    #define __DBL_IS_IEC_60559__ 1
-    #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 __unix__
-    #define __unix__ 1
-    #undef __INT_WIDTH__
-    #define __INT_WIDTH__ 32
-    #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__ 1
-    #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 __BFLT16_DIG__
-    #define __BFLT16_DIG__ 2
-    #undef __GNUC__
-    #define __GNUC__ 13
-    #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__ 16
-    #undef __BIGGEST_ALIGNMENT__
-    #define __BIGGEST_ALIGNMENT__ 16
-    #undef __FLT64_MAX_10_EXP__
-    #define __FLT64_MAX_10_EXP__ 308
-    #undef __BFLT16_IS_IEC_60559__
-    #define __BFLT16_IS_IEC_60559__ 0
-    #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__ 0x7fffffffffffffffL
-    #undef __DBL_HAS_INFINITY__
-    #define __DBL_HAS_INFINITY__ 1
-    #undef __INT64_MAX__
-    #define __INT64_MAX__ 0x7fffffffffffffffL
-    #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__ 64
-    #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__ long int
-    #undef __MMX_WITH_SSE__
-    #define __MMX_WITH_SSE__ 1
-    #undef __LDBL_HAS_DENORM__
-    #define __LDBL_HAS_DENORM__ 1
-    #undef __SEG_GS
-    #define __SEG_GS 1
-    #undef __BFLT16_EPSILON__
-    #define __BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16
-    #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__ 32
-    #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 __SSE2_MATH__
-    #define __SSE2_MATH__ 1
-    #undef __ATOMIC_HLE_RELEASE
-    #define __ATOMIC_HLE_RELEASE 131072
-    #undef __PTRDIFF_MAX__
-    #define __PTRDIFF_MAX__ 0x7fffffffffffffffL
-    #undef __amd64
-    #define __amd64 1
-    #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__ 8
-    #undef __BFLT16_HAS_INFINITY__
-    #define __BFLT16_HAS_INFINITY__ 1
-    #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 1018
-    #undef __FLT_MIN_EXP__
-    #define __FLT_MIN_EXP__ (-125)
-    #undef __INT16_MAX__
-    #define __INT16_MAX__ 0x7fff
-    #undef __x86_64
-    #define __x86_64 1
-    #undef __INT_FAST64_TYPE__
-    #define __INT_FAST64_TYPE__ long int
-    #undef __BFLT16_MAX__
-    #define __BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16
-    #undef __BFLT16_HAS_DENORM__
-    #define __BFLT16_HAS_DENORM__ 1
-    #undef __FLT64_DENORM_MIN__
-    #define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
-    #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__ 8
-    #undef __SIZE_TYPE__
-    #define __SIZE_TYPE__ long unsigned int
-    #undef __LP64__
-    #define __LP64__ 1
-    #undef __DBL_HAS_QUIET_NAN__
-    #define __DBL_HAS_QUIET_NAN__ 1
-    #undef __FLT32X_EPSILON__
-    #define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
-    #undef __LDBL_MAX_EXP__
-    #define __LDBL_MAX_EXP__ 16384
-    #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 __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 __FLT_MANT_DIG__
-    #define __FLT_MANT_DIG__ 24
-    #undef __LDBL_DECIMAL_DIG__
-    #define __LDBL_DECIMAL_DIG__ 21
-    #undef __VERSION__
-    #define __VERSION__ "13.1.1 20230429"
-    #undef __UINT64_C
-    #define __UINT64_C(c) c ## UL
-    #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 __BFLT16_MIN__
-    #define __BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16
-    #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
-    #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 __DEC128_MAX__
-    #define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
-    #undef __INT_FAST32_TYPE__
-    #define __INT_FAST32_TYPE__ long int
-    #undef __UINT_LEAST16_TYPE__
-    #define __UINT_LEAST16_TYPE__ short unsigned int
-    #undef __DEC128_MAX_EXP__
-    #define __DEC128_MAX_EXP__ 6145
-    #undef unix
-    #define unix 1
-    #undef __UINT64_MAX__
-    #define __UINT64_MAX__ 0xffffffffffffffffUL
-    #undef __FLT_IS_IEC_60559__
-    #define __FLT_IS_IEC_60559__ 1
-    #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 int
-    #undef __BFLT16_HAS_QUIET_NAN__
-    #define __BFLT16_HAS_QUIET_NAN__ 1
-    #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 ## UL
-    #undef __FLT16_DIG__
-    #define __FLT16_DIG__ 3
-    #undef __SSE_MATH__
-    #define __SSE_MATH__ 1
-    #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__ 8
-    #undef __FLT64X_HAS_INFINITY__
-    #define __FLT64X_HAS_INFINITY__ 1
-    #undef __FLT32_HAS_INFINITY__
-    #define __FLT32_HAS_INFINITY__ 1
-    #undef __SIZEOF_LONG__
-    #define __SIZEOF_LONG__ 8
-    #undef __LDBL_DIG__
-    #define __LDBL_DIG__ 18
-    #undef __FLT64_IS_IEC_60559__
-    #define __FLT64_IS_IEC_60559__ 1
-    #undef __x86_64__
-    #define __x86_64__ 1
-    #undef __FLT16_IS_IEC_60559__
-    #define __FLT16_IS_IEC_60559__ 1
-    #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__ 0x7fffffffffffffffL
-    #undef __FLT64_DIG__
-    #define __FLT64_DIG__ 15
-    #undef __UINT_FAST32_MAX__
-    #define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
-    #undef __UINT_LEAST64_TYPE__
-    #define __UINT_LEAST64_TYPE__ long unsigned int
-    #undef __FLT16_EPSILON__
-    #define __FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16
-    #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__ 0x7fffffffffffffffL
-    #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 __UINT_FAST16_TYPE__
-    #define __UINT_FAST16_TYPE__ long unsigned int
-    #undef __DEC64_MAX__
-    #define __DEC64_MAX__ 9.999999999999999E384DD
-    #undef __INT_FAST32_WIDTH__
-    #define __INT_FAST32_WIDTH__ 64
-    #undef __CHAR16_TYPE__
-    #define __CHAR16_TYPE__ short unsigned int
-    #undef __PRAGMA_REDEFINE_EXTNAME
-    #define __PRAGMA_REDEFINE_EXTNAME 1
-    #undef __SIZE_WIDTH__
-    #define __SIZE_WIDTH__ 64
-    #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 __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 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 __FLT128_MIN__
-    #define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
-    #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__ 0x7fffffffffffffffL
-    #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 __UINT16_C
-    #define __UINT16_C(c) c
-    #undef __PTRDIFF_WIDTH__
-    #define __PTRDIFF_WIDTH__ 64
-    #undef __LDBL_MANT_DIG__
-    #define __LDBL_MANT_DIG__ 64
-    #undef __INT_FAST16_WIDTH__
-    #define __INT_FAST16_WIDTH__ 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 __code_model_small__
-    #define __code_model_small__ 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 int
-    #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__ 0xffffffffffffffffUL
-    #undef __INT_FAST64_WIDTH__
-    #define __INT_FAST64_WIDTH__ 64
-    #undef __LDBL_HAS_INFINITY__
-    #define __LDBL_HAS_INFINITY__ 1
-    #undef __INT_FAST64_MAX__
-    #define __INT_FAST64_MAX__ 0x7fffffffffffffffL
-    #undef __FLT_NORM_MAX__
-    #define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __FLT64X_MAX_EXP__
-    #define __FLT64X_MAX_EXP__ 16384
-    #undef __UINT_FAST64_TYPE__
-    #define __UINT_FAST64_TYPE__ long unsigned int
-    #undef __BFLT16_MIN_EXP__
-    #define __BFLT16_MIN_EXP__ (-125)
-    #undef __INT_MAX__
-    #define __INT_MAX__ 0x7fffffff
-    #undef __linux__
-    #define __linux__ 1
-    #undef __INT64_TYPE__
-    #define __INT64_TYPE__ long int
-    #undef __FLT_MAX_EXP__
-    #define __FLT_MAX_EXP__ 128
-    #undef __ORDER_BIG_ENDIAN__
-    #define __ORDER_BIG_ENDIAN__ 4321
-    #undef __DBL_MANT_DIG__
-    #define __DBL_MANT_DIG__ 53
-    #undef __SIZEOF_FLOAT128__
-    #define __SIZEOF_FLOAT128__ 16
-    #undef __BFLT16_MANT_DIG__
-    #define __BFLT16_MANT_DIG__ 8
-    #undef __DEC64_MIN__
-    #define __DEC64_MIN__ 1E-383DD
-    #undef __WINT_TYPE__
-    #define __WINT_TYPE__ unsigned int
-    #undef __UINT_LEAST32_TYPE__
-    #define __UINT_LEAST32_TYPE__ unsigned int
-    #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 __amd64__
-    #define __amd64__ 1
-    #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 __FLT32X_MAX_10_EXP__
-    #define __FLT32X_MAX_10_EXP__ 308
-    #undef __SIZEOF_INT128__
-    #define __SIZEOF_INT128__ 16
-    #undef __FLT16_MIN__
-    #define __FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16
-    #undef __FLT64X_IS_IEC_60559__
-    #define __FLT64X_IS_IEC_60559__ 1
-    #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 __INT_LEAST32_TYPE__
-    #define __INT_LEAST32_TYPE__ int
-    #undef _LP64
-    #define _LP64 1
-    #undef __UINT8_C
-    #define __UINT8_C(c) c
-    #undef __FLT64_MAX_EXP__
-    #define __FLT64_MAX_EXP__ 1024
-    #undef __SIZEOF_WCHAR_T__
-    #define __SIZEOF_WCHAR_T__ 4
-    #undef __UINT64_TYPE__
-    #define __UINT64_TYPE__ 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__ 0x7fffffffffffffffL
-    #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 __FLT32_DIG__
-    #define __FLT32_DIG__ 6
-    #undef __UINT32_C
-    #define __UINT32_C(c) c ## U
-    #undef __FLT_DENORM_MIN__
-    #define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
-    #undef __INT8_MAX__
-    #define __INT8_MAX__ 0x7f
-    #undef __LONG_WIDTH__
-    #define __LONG_WIDTH__ 64
-    #undef __DBL_MIN__
-    #define __DBL_MIN__ ((double)2.22507385850720138309023271733240406e-308L)
-    #undef __PIC__
-    #define __PIC__ 2
-    #undef __INT32_MAX__
-    #define __INT32_MAX__ 0x7fffffff
-    #undef __UINT_FAST32_TYPE__
-    #define __UINT_FAST32_TYPE__ long unsigned int
-    #undef __FLT32X_NORM_MAX__
-    #define __FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x
-    #undef __CHAR32_TYPE__
-    #define __CHAR32_TYPE__ unsigned int
-    #undef __FLT_MAX__
-    #define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
-    #undef __SSE2__
-    #define __SSE2__ 1
-    #undef __INT32_TYPE__
-    #define __INT32_TYPE__ int
-    #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 int
-    #undef __FLT32X_HAS_QUIET_NAN__
-    #define __FLT32X_HAS_QUIET_NAN__ 1
-    #undef __ATOMIC_CONSUME
-    #define __ATOMIC_CONSUME 1
-    #undef __GNUC_MINOR__
-    #define __GNUC_MINOR__ 1
-    #undef __UINTMAX_MAX__
-    #define __UINTMAX_MAX__ 0xffffffffffffffffUL
-    #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__ long int
-    #undef __FLT32X_MIN_10_EXP__
-    #define __FLT32X_MIN_10_EXP__ (-307)
-    #undef __UINTPTR_TYPE__
-    #define __UINTPTR_TYPE__ long 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__ 0xffffffffffffffffUL
-    #undef __LDBL_NORM_MAX__
-    #define __LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L
-    #undef __SIZE_MAX__
-    #define __SIZE_MAX__ 0xffffffffffffffffUL
-    #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:
+    __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__: '16'
+    __BFLT16_DENORM_MIN__: 9.18354961579912115600575419704879436e-41BF16
+    __INTMAX_C(c): 'c ## L'
+    __CHAR_BIT__: '8'
+    __UINT8_MAX__: '0xff'
+    __SCHAR_WIDTH__: '8'
+    __WINT_MAX__: 0xffffffffU
+    __FLT32_MIN_EXP__: (-125)
+    __BFLT16_NORM_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_MIN_10_EXP__: (-37)
+    __ORDER_LITTLE_ENDIAN__: '1234'
+    __WCHAR_MAX__: '0x7fffffff'
+    __FLT32X_DECIMAL_DIG__: '17'
+    __FLT_EVAL_METHOD__: '0'
+    __FLT64_DECIMAL_DIG__: '17'
+    __UINT_FAST64_MAX__: 0xffffffffffffffffUL
+    __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__: 0xffffffffffffffffUL
+    __SHRT_MAX__: '0x7fff'
+    __LDBL_MAX__: 1.18973149535723176502126385303097021e+4932L
+    __FLT64X_MAX_10_EXP__: '4932'
+    __BFLT16_MAX_10_EXP__: '38'
+    __BFLT16_MAX_EXP__: '128'
+    __LDBL_IS_IEC_60559__: '1'
+    __FLT64X_HAS_QUIET_NAN__: '1'
+    __UINT_LEAST8_MAX__: '0xff'
+    __FLT128_DENORM_MIN__: 6.47517511943802511092443895822764655e-4966F128
+    __UINTMAX_TYPE__: long unsigned int
+    __BFLT16_DECIMAL_DIG__: '4'
+    __linux: '1'
+    __DEC32_EPSILON__: 1E-6DF
+    __FLT_EVAL_METHOD_TS_18661_3__: '0'
+    __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__: '1'
+    __INT_LEAST16_WIDTH__: '16'
+    __SCHAR_MAX__: '0x7f'
+    __FLT128_MANT_DIG__: '113'
+    __WCHAR_MIN__: (-__WCHAR_MAX__ - 1)
+    __INT64_C(c): 'c ## L'
+    __SSP_STRONG__: '3'
+    __ATOMIC_SEQ_CST: '5'
+    __unix: '1'
+    __INT_LEAST64_MAX__: 0x7fffffffffffffffL
+    __FLT32X_MANT_DIG__: '53'
+    __FLT64X_EPSILON__: 1.08420217248550443400745280086994171e-19F64x
+    __DEC64_MIN_EXP__: (-382)
+    __DBL_DIG__: '15'
+    __FLT_EPSILON__: 1.19209289550781250000000000000000000e-7F
+    __SHRT_WIDTH__: '16'
+    __FLT32_IS_IEC_60559__: '1'
+    __LDBL_MIN__: 3.36210314311209350626267781732175260e-4932L
+    __DBL_IS_IEC_60559__: '1'
+    __DEC32_MAX__: 9.999999E96DF
+    __FLT64X_DENORM_MIN__: 3.64519953188247460252840593361941982e-4951F64x
+    __FLT32X_HAS_INFINITY__: '1'
+    __unix__: '1'
+    __INT_WIDTH__: '32'
+    __DECIMAL_DIG__: '21'
+    __FLT64_EPSILON__: 2.22044604925031308084726333618164062e-16F64
+    __FLT128_IS_IEC_60559__: '1'
+    __FLT64X_MIN_10_EXP__: (-4931)
+    __LDBL_HAS_QUIET_NAN__: '1'
+    __FLT16_MIN_EXP__: (-13)
+    __FLT64_MANT_DIG__: '53'
+    __FLT64X_MANT_DIG__: '64'
+    __BFLT16_DIG__: '2'
+    __pie__: '2'
+    __MMX__: '1'
+    __FLT_HAS_DENORM__: '1'
+    __SIZEOF_LONG_DOUBLE__: '16'
+    __BIGGEST_ALIGNMENT__: '16'
+    __FLT64_MAX_10_EXP__: '308'
+    __BFLT16_IS_IEC_60559__: '0'
+    __FLT16_MAX_10_EXP__: '4'
+    __DBL_MAX__: ((double)1.79769313486231570814527423731704357e+308L)
+    __INT_FAST32_MAX__: 0x7fffffffffffffffL
+    __DBL_HAS_INFINITY__: '1'
+    __INT64_MAX__: 0x7fffffffffffffffL
+    __SIZEOF_FLOAT__: '4'
+    __HAVE_SPECULATION_SAFE_VALUE: '1'
+    __DEC32_MIN_EXP__: (-94)
+    __INTPTR_WIDTH__: '64'
+    __UINT_LEAST32_MAX__: 0xffffffffU
+    __FLT32X_HAS_DENORM__: '1'
+    __INT_FAST16_TYPE__: long int
+    __MMX_WITH_SSE__: '1'
+    __LDBL_HAS_DENORM__: '1'
+    __SEG_GS: '1'
+    __BFLT16_EPSILON__: 7.81250000000000000000000000000000000e-3BF16
+    __FLT128_HAS_INFINITY__: '1'
+    __DEC32_MIN__: 1E-95DF
+    __DBL_MAX_EXP__: '1024'
+    __WCHAR_WIDTH__: '32'
+    __FLT32_MAX__: 3.40282346638528859811704183484516925e+38F32
+    __DEC128_EPSILON__: 1E-33DL
+    __FLT16_DECIMAL_DIG__: '5'
+    __SSE2_MATH__: '1'
+    __ATOMIC_HLE_RELEASE: '131072'
+    __PTRDIFF_MAX__: 0x7fffffffffffffffL
+    __amd64: '1'
+    __ATOMIC_HLE_ACQUIRE: '65536'
+    __LONG_LONG_MAX__: 0x7fffffffffffffffLL
+    __SIZEOF_SIZE_T__: '8'
+    __BFLT16_HAS_INFINITY__: '1'
+    __FLT64X_MIN_EXP__: (-16381)
+    __SIZEOF_WINT_T__: '4'
+    __LONG_LONG_WIDTH__: '64'
+    __FLT32_MAX_EXP__: '128'
+    __FLT_MIN_EXP__: (-125)
+    __INT16_MAX__: '0x7fff'
+    __x86_64: '1'
+    __INT_FAST64_TYPE__: long int
+    __BFLT16_MAX__: 3.38953138925153547590470800371487867e+38BF16
+    __BFLT16_HAS_DENORM__: '1'
+    __FLT64_DENORM_MIN__: 4.94065645841246544176568792868221372e-324F64
+    __FLT16_DENORM_MIN__: 5.96046447753906250000000000000000000e-8F16
+    __FLT128_EPSILON__: 1.92592994438723585305597794258492732e-34F128
+    __FLT64X_NORM_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __SIZEOF_POINTER__: '8'
+    __SIZE_TYPE__: long unsigned int
+    __LP64__: '1'
+    __DBL_HAS_QUIET_NAN__: '1'
+    __FLT32X_EPSILON__: 2.22044604925031308084726333618164062e-16F32x
+    __LDBL_MAX_EXP__: '16384'
+    __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'
+    __FLT32_MIN__: 1.17549435082228750796873653722224568e-38F32
+    __UINT8_TYPE__: unsigned char
+    __FLT_DIG__: '6'
+    __NO_INLINE__: '1'
+    __DEC_EVAL_METHOD__: '2'
+    __FLT_MANT_DIG__: '24'
+    __LDBL_DECIMAL_DIG__: '21'
+    __VERSION__: '"13.2.1 20230801"'
+    __UINT64_C(c): 'c ## UL'
+    _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)
+    __BFLT16_MIN__: 1.17549435082228750796873653722224568e-38BF16
+    __FLT128_HAS_DENORM__: '1'
+    __FLT32_DECIMAL_DIG__: '9'
+    __FLT128_DIG__: '33'
+    __INT32_C(c): c
+    __DEC64_EPSILON__: 1E-15DD
+    __ORDER_PDP_ENDIAN__: '3412'
+    __DEC128_MIN_EXP__: (-6142)
+    __DEC128_MAX__: 9.999999999999999999999999999999999E6144DL
+    __INT_FAST32_TYPE__: long int
+    __UINT_LEAST16_TYPE__: short unsigned int
+    __DEC128_MAX_EXP__: '6145'
+    unix: '1'
+    __UINT64_MAX__: 0xffffffffffffffffUL
+    __FLT_IS_IEC_60559__: '1'
+    __FLT64X_DIG__: '18'
+    __INT8_TYPE__: signed char
+    __ELF__: '1'
+    __UINT32_TYPE__: unsigned int
+    __BFLT16_HAS_QUIET_NAN__: '1'
+    __FLT_RADIX__: '2'
+    __INT_LEAST16_TYPE__: short int
+    __LDBL_EPSILON__: 1.08420217248550443400745280086994171e-19L
+    __UINTMAX_C(c): 'c ## UL'
+    __FLT16_DIG__: '3'
+    __SSE_MATH__: '1'
+    __k8: '1'
+    __FLT32X_MIN__: 2.22507385850720138309023271733240406e-308F32x
+    __SIG_ATOMIC_MAX__: '0x7fffffff'
+    __USER_LABEL_PREFIX__: ''
+    __SIZEOF_PTRDIFF_T__: '8'
+    __FLT64X_HAS_INFINITY__: '1'
+    __FLT32_HAS_INFINITY__: '1'
+    __SIZEOF_LONG__: '8'
+    __LDBL_DIG__: '18'
+    __FLT64_IS_IEC_60559__: '1'
+    __x86_64__: '1'
+    __FLT16_IS_IEC_60559__: '1'
+    __FLT16_MAX_EXP__: '16'
+    __DEC32_SUBNORMAL_MIN__: 0.000001E-95DF
+    __INT_FAST16_MAX__: 0x7fffffffffffffffL
+    __FLT64_DIG__: '15'
+    __UINT_FAST32_MAX__: 0xffffffffffffffffUL
+    __UINT_LEAST64_TYPE__: long unsigned int
+    __FLT16_EPSILON__: 9.76562500000000000000000000000000000e-4F16
+    __FLT_HAS_QUIET_NAN__: '1'
+    __FLT_MAX_10_EXP__: '38'
+    __LONG_MAX__: 0x7fffffffffffffffL
+    __FLT64X_HAS_DENORM__: '1'
+    __DEC128_SUBNORMAL_MIN__: 0.000000000000000000000000000000001E-6143DL
+    __FLT_HAS_INFINITY__: '1'
+    __UINT_FAST16_TYPE__: long unsigned int
+    __DEC64_MAX__: 9.999999999999999E384DD
+    __INT_FAST32_WIDTH__: '64'
+    __CHAR16_TYPE__: short unsigned int
+    __PRAGMA_REDEFINE_EXTNAME: '1'
+    __SIZE_WIDTH__: '64'
+    __SEG_FS: '1'
+    __INT_LEAST16_MAX__: '0x7fff'
+    __FLT16_NORM_MAX__: 6.55040000000000000000000000000000000e+4F16
+    __DEC64_MANT_DIG__: '16'
+    __FLT32_DENORM_MIN__: 1.40129846432481707092372958328991613e-45F32
+    __SIG_ATOMIC_WIDTH__: '32'
+    __INT_LEAST64_TYPE__: long int
+    __INT16_TYPE__: short int
+    __INT_LEAST8_TYPE__: signed char
+    __FLT16_MAX__: 6.55040000000000000000000000000000000e+4F16
+    __FLT128_MIN__: 3.36210314311209350626267781732175260e-4932F128
+    __SIZEOF_INT__: '4'
+    __DEC32_MAX_EXP__: '97'
+    __INT_FAST8_MAX__: '0x7f'
+    __FLT128_MAX__: 1.18973149535723176508575932662800702e+4932F128
+    __INTPTR_MAX__: 0x7fffffffffffffffL
+    linux: '1'
+    __FLT64_HAS_QUIET_NAN__: '1'
+    __FLT32_MIN_10_EXP__: (-37)
+    __FLT32X_DIG__: '15'
+    __UINT16_C(c): c
+    __PTRDIFF_WIDTH__: '64'
+    __LDBL_MANT_DIG__: '64'
+    __INT_FAST16_WIDTH__: '64'
+    __FLT64_HAS_INFINITY__: '1'
+    __FLT64X_MAX__: 1.18973149535723176502126385303097021e+4932F64x
+    __FLT16_HAS_INFINITY__: '1'
+    __SIG_ATOMIC_MIN__: (-__SIG_ATOMIC_MAX__ - 1)
+    __code_model_small__: '1'
+    __DEC32_MANT_DIG__: '7'
+    __FLT16_MANT_DIG__: '11'
+    __k8__: '1'
+    __INTPTR_TYPE__: long int
+    __UINT16_TYPE__: short unsigned int
+    __WCHAR_TYPE__: int
+    __pic__: '2'
+    __UINTPTR_MAX__: 0xffffffffffffffffUL
+    __INT_FAST64_WIDTH__: '64'
+    __LDBL_HAS_INFINITY__: '1'
+    __INT_FAST64_MAX__: 0x7fffffffffffffffL
+    __FLT_NORM_MAX__: 3.40282346638528859811704183484516925e+38F
+    __FLT64X_MAX_EXP__: '16384'
+    __UINT_FAST64_TYPE__: long unsigned int
+    __BFLT16_MIN_EXP__: (-125)
+    __INT_MAX__: '0x7fffffff'
+    __linux__: '1'
+    __INT64_TYPE__: long int
+    __FLT_MAX_EXP__: '128'
+    __ORDER_BIG_ENDIAN__: '4321'
+    __DBL_MANT_DIG__: '53'
+    __SIZEOF_FLOAT128__: '16'
+    __BFLT16_MANT_DIG__: '8'
+    __DEC64_MIN__: 1E-383DD
+    __WINT_TYPE__: unsigned int
+    __UINT_LEAST32_TYPE__: unsigned int
+    __SIZEOF_SHORT__: '2'
+    __FLT32_NORM_MAX__: 3.40282346638528859811704183484516925e+38F32
+    __SSE__: '1'
+    __LDBL_MIN_EXP__: (-16381)
+    __FLT64_MAX__: 1.79769313486231570814527423731704357e+308F64
+    __amd64__: '1'
+    __WINT_WIDTH__: '32'
+    __INT_LEAST8_MAX__: '0x7f'
+    __INT_LEAST64_WIDTH__: '64'
+    __FLT32X_MAX_10_EXP__: '308'
+    __SIZEOF_INT128__: '16'
+    __FLT16_MIN__: 6.10351562500000000000000000000000000e-5F16
+    __FLT64X_IS_IEC_60559__: '1'
+    __LDBL_MAX_10_EXP__: '4932'
+    __ATOMIC_RELAXED: '0'
+    __DBL_EPSILON__: ((double)2.22044604925031308084726333618164062e-16L)
+    __INT_LEAST32_TYPE__: int
+    _LP64: '1'
+    __UINT8_C(c): c
+    __FLT64_MAX_EXP__: '1024'
+    __SIZEOF_WCHAR_T__: '4'
+    __UINT64_TYPE__: long unsigned int
+    __FLT128_NORM_MAX__: 1.18973149535723176508575932662800702e+4932F128
+    __FLT64_NORM_MAX__: 1.79769313486231570814527423731704357e+308F64
+    __FLT128_HAS_QUIET_NAN__: '1'
+    __INTMAX_MAX__: 0x7fffffffffffffffL
+    __INT_FAST8_TYPE__: signed char
+    __FLT64X_MIN__: 3.36210314311209350626267781732175260e-4932F64x
+    __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'
+    __FLT32_DIG__: '6'
+    __UINT32_C(c): 'c ## U'
+    __FLT_DENORM_MIN__: 1.40129846432481707092372958328991613e-45F
+    __INT8_MAX__: '0x7f'
+    __LONG_WIDTH__: '64'
+    __DBL_MIN__: ((double)2.22507385850720138309023271733240406e-308L)
+    __PIC__: '2'
+    __INT32_MAX__: '0x7fffffff'
+    __UINT_FAST32_TYPE__: long unsigned int
+    __FLT32X_NORM_MAX__: 1.79769313486231570814527423731704357e+308F32x
+    __CHAR32_TYPE__: unsigned int
+    __FLT_MAX__: 3.40282346638528859811704183484516925e+38F
+    __SSE2__: '1'
+    __INT32_TYPE__: int
+    __SIZEOF_DOUBLE__: '8'
+    __FLT_MIN_10_EXP__: (-37)
+    __FLT64_MIN__: 2.22507385850720138309023271733240406e-308F64
+    __INT_LEAST32_WIDTH__: '32'
+    __INTMAX_TYPE__: long int
+    __FLT32X_HAS_QUIET_NAN__: '1'
+    __ATOMIC_CONSUME: '1'
+    __UINTMAX_MAX__: 0xffffffffffffffffUL
+    __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__: long int
+    __FLT32X_MIN_10_EXP__: (-307)
+    __UINTPTR_TYPE__: long 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__: 0xffffffffffffffffUL
+    __LDBL_NORM_MAX__: 1.18973149535723176502126385303097021e+4932L
+    __SIZE_MAX__: 0xffffffffffffffffUL
+    __UINT_FAST8_TYPE__: unsigned char
+    __ATOMIC_ACQ_REL: '4'
+    __ATOMIC_RELEASE: '3'
 eof: (-1)
 errno:
+    edom: '33'
+    eilseq: '84'
+    erange: '34'
     e2big: '7'
     eacces: '13'
     eaddrinuse: '98'
@@ -780,7 +406,6 @@ errno:
     edeadlk: '35'
     edeadlock: '35'
     edestaddrreq: '89'
-    edom: '33'
     edquot: '122'
     eexist: '17'
     efault: '14'
@@ -788,7 +413,6 @@ errno:
     ehostdown: '112'
     ehostunreach: '113'
     eidrm: '43'
-    eilseq: '84'
     einprogress: '115'
     eintr: '4'
     einval: '22'
@@ -805,9 +429,9 @@ errno:
     el3rst: '47'
     elibacc: '79'
     elibbad: '80'
-    elibexec: '83'
     elibmax: '82'
     elibscn: '81'
+    elibexec: '83'
     eloop: '40'
     emediumtype: '124'
     emfile: '24'
@@ -856,15 +480,14 @@ errno:
     eproto: '71'
     eprotonosupport: '93'
     eprototype: '91'
-    erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
     erofs: '30'
     eshutdown: '108'
-    esocktnosupport: '94'
     espipe: '29'
+    esocktnosupport: '94'
     esrch: '3'
     estale: '116'
     estrpipe: '86'
@@ -881,10 +504,10 @@ filename_max: '4096'
 fopen_max: '16'
 has__builtin_va_list: true
 host_name_max: '64'
+int_fast8_t: signed char
 int_fast16_t: long
 int_fast32_t: long
 int_fast64_t: long
-int_fast8_t: signed char
 intptr_t: long
 l_tmpnam: '20'
 little_endian: true
@@ -911,12 +534,12 @@ ssize_t: long
 time_t: long
 tmp_max: '238328'
 tty_name_max: '32'
+uint_fast8_t: unsigned char
 uint_fast16_t: unsigned long
 uint_fast32_t: unsigned long
 uint_fast64_t: unsigned long
-uint_fast8_t: unsigned char
 uintptr_t: unsigned long
-version: gcc (GCC) 13.1.1 20230429
+version: gcc (GCC) 13.2.1 20230801
 wchar_t: int
 weof: (0xffffffffu)
 wint_t: unsigned int
diff --git a/share/machdeps/make_machdep/make_machdep.py b/share/machdeps/make_machdep/make_machdep.py
index c6045ab856a81cc991fbda527d32ca5648914719..999e2d15fbbadb8846d1c8c393b87502e80dd461 100755
--- a/share/machdeps/make_machdep/make_machdep.py
+++ b/share/machdeps/make_machdep/make_machdep.py
@@ -45,7 +45,6 @@ import subprocess
 import sys
 import logging
 import yaml
-from yaml.representer import Representer
 
 my_path = Path(sys.argv[0]).parent
 
@@ -159,7 +158,7 @@ def print_machdep(machdep):
         args.dest_file = open(args.from_file, "w")
     elif args.dest_file is None:
         args.dest_file = sys.stdout
-    yaml.dump(machdep, args.dest_file, indent=4, sort_keys=True)
+    yaml.dump(machdep, args.dest_file, indent=4, sort_keys=False)
 
 
 def default_value(typ):
@@ -377,50 +376,32 @@ machdep["compiler"] = args.compiler
 machdep["cpp_arch_flags"] = args.cpp_arch_flags
 machdep["version"] = version
 
-machdep["custom_defs"] = ""
+machdep["custom_defs"] = list()
 
 # Extract predefined macros; we're assuming a gcc-like compiler here.
 # Leave custom_defs empty if this fails.
 
-# in case we have all the predefined macros, custom_defs will be very long.
-# we thus want to output it as a literal block, not a simple string.
-# For that, use a custom object and tell PyYaml to output it in a particular way
-# Based on SO's answer:
-
-
-class custom_defs(str):
-    pass
-
-
-def change_style(style, representer):
-    def new_representer(dumper, data):
-        scalar = representer(dumper, data)
-        scalar.style = style
-        return scalar
-
-    return new_representer
-
-
-custom_defs_representer = change_style("|", Representer.represent_str)
-
-yaml.add_representer(custom_defs, custom_defs_representer)
-
 cmd = compilation_command + ["-dM", "-E", "-"]
 if args.verbose:
     print(f"[INFO] running command: {' '.join(cmd)}")
 proc = subprocess.run(cmd, stdin=subprocess.DEVNULL, capture_output=True, text=True)
 if proc.returncode == 0:
-    lines = ""
+    custom = dict()
     for line in proc.stdout.splitlines():
         # Preprocessor emits a warning if we're trying to #undef
         # standard macros. Leave them alone.
         if re.match(r"#define *__STDC", line):
             continue
-        macro = re.match(r"#define *(\w+)", line)
-        if macro:
-            lines += f"#undef {macro.group(1)}\n"
-        lines += f"{line.strip()}\n"
-    machdep["custom_defs"] = custom_defs(lines)
+        macro = re.match(r"# *define *([^ ]*) *(.*)", line)
+        if not macro:
+            # This skips over ifndef/endif blocs for msvc, maybe this
+            # will be a problem later.
+            continue
+        macro_var = macro.group(1)
+        macro_val = macro.group(2)
+        # Python >= 3.7: dict is guaranteed to preserve insertion order
+        custom[macro_var] = macro_val
+    machdep["custom_defs"] = custom
 else:
     logging.warning(f"could not determine predefined macros. compiler output is:\n{proc.stderr}")
 
diff --git a/src/kernel_internals/runtime/machdep.ml b/src/kernel_internals/runtime/machdep.ml
index dd5fc51f6694e87ccaf1afa1dd4ff72539942b6f..eb162d73b21764c827c7e5d33bf8b9447b1d0b24 100644
--- a/src/kernel_internals/runtime/machdep.ml
+++ b/src/kernel_internals/runtime/machdep.ml
@@ -28,7 +28,13 @@ let gen_define fmt macro pp def =
 let gen_include fmt file =
   Format.fprintf fmt "#include <%s>@\n" file
 
-let gen_undef fmt macro = Format.fprintf fmt "#undef %s@\n" macro
+let gen_undef fmt macro =
+  let macro =
+    match String.index_from_opt macro 0 '(' with
+    | None -> macro
+    | Some n -> String.sub macro 0 n
+  in
+  Format.fprintf fmt "#undef %s@\n" macro
 
 let gen_define_string fmt macro def =
   gen_define fmt macro Format.pp_print_string def
@@ -40,6 +46,16 @@ let gen_define_macro fmt macro def =
   if def = "" then gen_undef fmt macro
   else gen_define_string fmt macro def
 
+let gen_define_custom_macros fmt censored key_values =
+  List.iter
+    (fun (k,v) ->
+       if not (Datatype.String.Set.mem (Extlib.strip_underscore k) censored)
+       then begin
+         gen_undef fmt k;
+         gen_define_macro fmt k v
+       end)
+    key_values
+
 let gen_define_int fmt macro def = gen_define fmt macro Format.pp_print_int def
 
 let gen_byte_order fmt mach =
@@ -267,7 +283,7 @@ let machdep_macro_name s =
   in
   String.map tr s
 
-let gen_all_defines fmt mach =
+let gen_all_defines fmt ?(censored_macros=Datatype.String.Set.empty) mach =
   Format.fprintf fmt "/* Machdep-specific info for Frama-C's libc */@\n";
   Format.fprintf fmt "#ifndef __FC_MACHDEP@\n#define __FC_MACHDEP@\n";
   gen_define_int fmt ("__FC_" ^ (machdep_macro_name mach.machdep_name)) 1;
@@ -338,17 +354,17 @@ let gen_all_defines fmt mach =
   if mach.compiler = "gcc" then
     gen_include fmt "__fc_gcc_builtins.h";
 
-  Format.fprintf fmt "%s@\n" mach.custom_defs;
+  gen_define_custom_macros fmt censored_macros mach.custom_defs;
 
   Format.fprintf fmt "#endif // __FC_MACHDEP@\n"
 
-let generate_machdep_header mach =
+let generate_machdep_header ?censored_macros mach =
   let debug = Kernel.(is_debug_key_enabled dkey_pp) in
   let temp = Extlib.temp_dir_cleanup_at_exit ~debug "__fc_machdep" in
   let file = Filepath.Normalized.concat temp "__fc_machdep.h" in
   let chan = open_out (file:>string) in
   let fmt = Format.formatter_of_out_channel chan in
-  gen_all_defines fmt mach;
+  gen_all_defines fmt ?censored_macros mach;
   flush chan;
   close_out chan;
   temp
diff --git a/src/kernel_internals/runtime/machdep.mli b/src/kernel_internals/runtime/machdep.mli
index 8b4118076abaed9de7cb95cf8b3b47e7f67d6ec8..90d8718b6984007a1b61a754a9447c6ae4c235b2 100644
--- a/src/kernel_internals/runtime/machdep.mli
+++ b/src/kernel_internals/runtime/machdep.mli
@@ -25,9 +25,22 @@
 
 (** Prints on the given formatter all [#define] directives
     required by [share/libc/features.h] and other system-dependent headers.
+    @param censored_macros prevents the generation of directives for the
+    builtin macros in [mach.custom_defs] whose names match. empty by default.
+    @before Frama-C+dev censored_macros did not exist
 *)
-val gen_all_defines: Format.formatter -> Cil_types.mach -> unit
+val gen_all_defines:
+  Format.formatter ->
+  ?censored_macros:Datatype.String.Set.t ->
+  Cil_types.mach ->
+  unit
 
 (** generates a [__fc_machdep.h] file in a temp directory and returns the
-    directory name, to be added to the search path for preprocessing stdlib *)
-val generate_machdep_header: Cil_types.mach -> Filepath.Normalized.t
+    directory name, to be added to the search path for preprocessing stdlib.
+    @param see {!gen_all_defines}
+    @before Frama-C+dev censored_macros did not exist.
+*)
+val generate_machdep_header:
+  ?censored_macros:Datatype.String.Set.t ->
+  Cil_types.mach ->
+  Filepath.Normalized.t
diff --git a/src/kernel_services/ast_data/cil_types.ml b/src/kernel_services/ast_data/cil_types.ml
index 0ae3f376d5ac98e2a2fb00a3cd2649de377df45c..8cb7318ad076de9ae78f56378cb1b21302047795 100644
--- a/src/kernel_services/ast_data/cil_types.ml
+++ b/src/kernel_services/ast_data/cil_types.ml
@@ -1884,6 +1884,20 @@ type syntactic_scope =
       @since 27.0-Cobalt
   *)
 
+let yaml_dict_to_list = function
+  | `O l ->
+    let make_one acc (k,v) =
+      Result.(
+        bind acc
+          (fun l ->
+             match Yaml.Util.to_string v with
+             | Ok s -> Ok((k,s) :: l)
+             | Error (`Msg s) ->
+               Error (`Msg ("Unexpected value for key " ^ k ^ ": " ^ s))))
+    in
+    List.fold_left make_one (Ok []) l
+  | _ -> Error (`Msg "Unexpected YAML value instead of dictionary of strings")
+
 (** Definition of a machine model (architecture + compiler).
     @see <https://frama-c.com/download/frama-c-plugin-development-guide.pdf> *)
 type mach = {
@@ -1948,13 +1962,9 @@ type mach = {
   rand_max: string; (* expansion of RAND_MAX macro *)
   mb_cur_max: string; (* expansion of MB_CUR_MAX macro *)
   nsig: string; (* expansion of non-standard NSIG macro, empty if undefined *)
-  errno: (string * string) list; (* list of macros defining errors in errno.h*)
+  (* list of macros defining errors in errno.h*)
+  errno: (string * string) list  [@of_yaml yaml_dict_to_list];
   machdep_name: string; (* name of the machdep *)
-  custom_defs: string; (* arbitrary text to be written in the header *)
-}
-
-(*
-Local Variables:
-compile-command: "make -C ../../.."
-End:
-*)
+  (* sequence of key/value for C macros *)
+  custom_defs: (string * string) list [@of_yaml yaml_dict_to_list];
+} [@@deriving yaml]
diff --git a/src/kernel_services/ast_queries/cil_datatype.ml b/src/kernel_services/ast_queries/cil_datatype.ml
index ef018a9add1a0848aaf6eea98dc9df7ce04e4563..db09087044fe133b44ff32614c6fd002c806af7b 100644
--- a/src/kernel_services/ast_queries/cil_datatype.ml
+++ b/src/kernel_services/ast_queries/cil_datatype.ml
@@ -2753,7 +2753,7 @@ let dummy_machdep =
       "erange", "34";
     ];
     machdep_name = "dummy";
-    custom_defs = "";
+    custom_defs = [];
   }
 
 module Machdep = Datatype.Make_with_collections(struct
diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml
index 687b5071deb93436234137cf05af5f9706f1b30b..767326d15211bf2413fc5b63c332321b781ac14d 100644
--- a/src/kernel_services/ast_queries/file.ml
+++ b/src/kernel_services/ast_queries/file.ml
@@ -314,86 +314,6 @@ let set_machdep () =
 
 let () = Cmdline.run_after_configuring_stage set_machdep
 
-let yaml_dict_to_list = function
-  | `O l ->
-    let make_one acc (k,v) =
-      Result.(
-        bind acc
-          (fun l ->
-             match Yaml.Util.to_string v with
-             | Ok s -> Ok((k,s) :: l)
-             | Error (`Msg s) ->
-               Error (`Msg ("Unexpected value for key " ^ k ^ ": " ^ s))))
-    in
-    List.fold_left make_one (Ok []) l
-  | _ -> Error (`Msg "Unexpected YAML value instead of dictionary of strings")
-
-type mach = Cil_types.mach = {
-  sizeof_short: int;
-  sizeof_int: int;
-  sizeof_long: int ;
-  sizeof_longlong: int;
-  sizeof_ptr: int;
-  sizeof_float: int;
-  sizeof_double: int;
-  sizeof_longdouble: int;
-  sizeof_void: int;
-  sizeof_fun: int;
-  size_t: string;
-  ssize_t: string;
-  wchar_t: string;
-  ptrdiff_t: string;
-  intptr_t: string;
-  uintptr_t: string;
-  int_fast8_t: string;
-  int_fast16_t: string;
-  int_fast32_t: string;
-  int_fast64_t: string;
-  uint_fast8_t: string;
-  uint_fast16_t: string;
-  uint_fast32_t: string;
-  uint_fast64_t: string;
-  wint_t: string;
-  sig_atomic_t: string;
-  time_t: string;
-  alignof_short: int;
-  alignof_int: int;
-  alignof_long: int;
-  alignof_longlong: int;
-  alignof_ptr: int;
-  alignof_float: int;
-  alignof_double: int;
-  alignof_longdouble: int;
-  alignof_str: int;
-  alignof_fun: int;
-  char_is_unsigned: bool;
-  little_endian: bool;
-  alignof_aligned: int;
-  has__builtin_va_list: bool;
-  compiler: string;
-  cpp_arch_flags: string list;
-  version: string;
-  weof: string;
-  wordsize: string;
-  posix_version: string;
-  bufsiz: string;
-  eof: string;
-  fopen_max: string;
-  filename_max: string;
-  host_name_max: string;
-  tty_name_max: string;
-  l_tmpnam: string;
-  path_max: string;
-  tmp_max: string;
-  rand_max: string;
-  mb_cur_max: string;
-  nsig: string;
-  errno: (string * string) list [@of_yaml yaml_dict_to_list];
-  machdep_name: string;
-  custom_defs: string;
-}
-[@@deriving yaml]
-
 (* Local to this module. Use Cil.theMachine.theMachine outside *)
 let get_machdep () =
   let m = Kernel.Machdep.get () in
@@ -404,16 +324,39 @@ let get_machdep () =
   let res =
     Result.bind
       (Yaml_unix.of_file (Fpath.v (file:>string)))
-      mach_of_yaml
+      Cil_types.mach_of_yaml
   in
   match res with
   | Ok machdep -> machdep
   | Error (`Msg s) ->
     Kernel.abort "Error during machdep parsing: %s" s
 
+
+let unsupported_float_type_macros acc name =
+  List.fold_left
+    (fun acc s -> Datatype.String.Set.add (name ^ "_" ^ s) acc)
+    acc
+    [ "DECIMAL_DIG"; "DENORM_MIN"; "DIG"; "HAS_DENORM"; "HAS_INFINITY";
+      "HAS_QUIET_NAN"; "IS_IEC_60559"; "MANT_DIG";
+      "MAX"; "MAX_10_EXP"; "MAX_EXP";
+      "MIN"; "MIN_10_EXP"; "MIN_EXP";
+      "NORM_MAX"; "EPSILON";
+    ]
+
+let unsupported_float_types =
+  List.fold_left unsupported_float_type_macros
+    Datatype.String.Set.empty
+    [ "BFLT16"; "FLT16"; "FLT128"; "LDBL"; ]
+
+let known_bad_macros =
+  Datatype.String.Set.add_seq (List.to_seq ["SIZEOF_INT128"; "SSE" ])
+    unsupported_float_types
+
 let print_machdep_header () =
   if Kernel.PrintMachdepHeader.get () then begin
-    Machdep.gen_all_defines Format.std_formatter (get_machdep());
+    let censored_macros = known_bad_macros in
+    Machdep.gen_all_defines
+      Format.std_formatter ~censored_macros (get_machdep());
     raise Cmdline.Exit
   end else Cmdline.nop
 
@@ -502,9 +445,22 @@ let silence_cpp_machdep_warnings cmdl =
   else
     []
 
+let censored_macros cpp_args =
+  List.fold_left
+    (fun acc arg ->
+       let open Option.Operators in
+       let none = acc in
+       let some = Fun.flip Datatype.String.Set.add acc in
+       (let+ name = Extlib.string_del_prefix "-U" arg in
+        Extlib.strip_underscore name)
+       |> Option.fold ~none ~some)
+    known_bad_macros
+    (List.(flatten (map (String.split_on_char ' ') cpp_args)))
+
 let build_cpp_cmd = function
   | NoCPP _ | External _ -> None
   | NeedCPP (f, cmdl, extra_for_this_file, is_gnu_like) ->
+    let extra_args = extra_for_this_file @ Kernel.CppExtraArgs.get () in
     if not (Filepath.exists f) then
       Kernel.abort "source file %a does not exist"
         Filepath.Normalized.pretty f;
@@ -530,7 +486,10 @@ let build_cpp_cmd = function
     let fc_include_args =
       if Kernel.FramaCStdLib.get () then
         begin
-          let machdep_dir = Machdep.generate_machdep_header (get_machdep()) in
+          let censored_macros = censored_macros extra_args in
+          let machdep_dir =
+            Machdep.generate_machdep_header ~censored_macros (get_machdep())
+          in
           [(machdep_dir:>string); (Fc_config.framac_libc:>string)]
         end
       else []
@@ -558,8 +517,7 @@ let build_cpp_cmd = function
     in
     let supp_args =
       string_of_supp_args
-        (gnu_implicit_args @ clang_no_warn @
-         extra_for_this_file @ (Kernel.CppExtraArgs.get ()))
+        (gnu_implicit_args @ clang_no_warn @ extra_args)
         fc_include_args fc_define_args
     in
     let cpp_command =
diff --git a/tests/fc_script/make-machdep.t/run.t b/tests/fc_script/make-machdep.t/run.t
index 917e6c88d2ef9ccb4e6ea22f3b2fc30f66c575c7..8250b8f744f36ef72cdb21189ba18ceaa4e4829f 100644
--- a/tests/fc_script/make-machdep.t/run.t
+++ b/tests/fc_script/make-machdep.t/run.t
@@ -17,6 +17,9 @@
     - --target=x86_64
   eof: (-1)
   errno:
+    edom: '33'
+    eilseq: '84'
+    erange: '34'
     e2big: '7'
     eacces: '13'
     eaddrinuse: '98'
@@ -42,7 +45,6 @@
     edeadlk: '35'
     edeadlock: '35'
     edestaddrreq: '89'
-    edom: '33'
     edquot: '122'
     eexist: '17'
     efault: '14'
@@ -50,7 +52,6 @@
     ehostdown: '112'
     ehostunreach: '113'
     eidrm: '43'
-    eilseq: '84'
     einprogress: '115'
     eintr: '4'
     einval: '22'
@@ -67,9 +68,9 @@
     el3rst: '47'
     elibacc: '79'
     elibbad: '80'
-    elibexec: '83'
     elibmax: '82'
     elibscn: '81'
+    elibexec: '83'
     eloop: '40'
     emediumtype: '124'
     emfile: '24'
@@ -118,15 +119,14 @@
     eproto: '71'
     eprotonosupport: '93'
     eprototype: '91'
-    erange: '34'
     eremchg: '78'
     eremote: '66'
     eremoteio: '121'
     erestart: '85'
     erofs: '30'
     eshutdown: '108'
-    esocktnosupport: '94'
     espipe: '29'
+    esocktnosupport: '94'
     esrch: '3'
     estale: '116'
     estrpipe: '86'
@@ -143,10 +143,10 @@
   fopen_max: '16'
   has__builtin_va_list: true
   host_name_max: '64'
+  int_fast8_t: signed char
   int_fast16_t: long
   int_fast32_t: long
   int_fast64_t: long
-  int_fast8_t: signed char
   intptr_t: long
   l_tmpnam: '20'
   little_endian: true
@@ -173,10 +173,10 @@
   time_t: long
   tmp_max: '238328'
   tty_name_max: '32'
+  uint_fast8_t: unsigned char
   uint_fast16_t: unsigned long
   uint_fast32_t: unsigned long
   uint_fast64_t: unsigned long
-  uint_fast8_t: unsigned char
   uintptr_t: unsigned long
   wchar_t: int
   weof: (0xffffffffu)
diff --git a/tests/misc/custom_machdep.c b/tests/misc/custom_machdep.c
index 1152d590191677fbcd9ca7a88afa65f5d71aa6b3..632c92e190ede177c72f63e300974ec19afd94ec 100644
--- a/tests/misc/custom_machdep.c
+++ b/tests/misc/custom_machdep.c
@@ -1,5 +1,9 @@
 /* run.config*
- OPT: -machdep %{dep:@PTEST_DIR@/@PTEST_NAME@.yaml} -print
+ MACRO: machdep %{dep:@PTEST_DIR@/@PTEST_NAME@.yaml}
+ OPT: -machdep @machdep@ -print
+ COMMENT: we can't only use -D, as the __fc_machdep.h define takes precedence
+ COMMENT: with -U, our cmdline definition is used in the code
+ OPT: -machdep @machdep@ -cpp-extra-args="-UCUSTOM_MACHDEP -DCUSTOM_MACHDEP=42" -print
 */
 // most of the following includes are not directly used, but they test if
 // the custom machdep has defined the necessary constants
diff --git a/tests/misc/custom_machdep.yaml b/tests/misc/custom_machdep.yaml
index b7c9a0b07c9959a69a91f1bfb8a09b8decea31c6..eab2fe4d8c98ca55dce21b0d33f8400a38f90925 100644
--- a/tests/misc/custom_machdep.yaml
+++ b/tests/misc/custom_machdep.yaml
@@ -81,5 +81,5 @@ errno:
   enomem: "47"
   enotsup: "48"
 machdep_name: custom_machdep
-custom_defs: |
-  #define CUSTOM_MACHDEP 1
+custom_defs:
+  CUSTOM_MACHDEP: '1'
diff --git a/tests/misc/oracle/custom_machdep.res.oracle b/tests/misc/oracle/custom_machdep.0.res.oracle
similarity index 100%
rename from tests/misc/oracle/custom_machdep.res.oracle
rename to tests/misc/oracle/custom_machdep.0.res.oracle
diff --git a/tests/misc/oracle/custom_machdep.1.res.oracle b/tests/misc/oracle/custom_machdep.1.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..ed9c8ba51804051aed964269c7962aded88aa499
--- /dev/null
+++ b/tests/misc/oracle/custom_machdep.1.res.oracle
@@ -0,0 +1,25 @@
+[kernel] Parsing custom_machdep.c (with preprocessing)
+/* Generated by Frama-C */
+#include "ctype.h"
+#include "errno.h"
+#include "inttypes.h"
+#include "locale.h"
+#include "math.h"
+#include "signal.h"
+#include "stdarg.h"
+#include "stddef.h"
+#include "stdint.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "string.h"
+#include "strings.h"
+#include "time.h"
+#include "wchar.h"
+int main(void)
+{
+  int __retres;
+  __retres = 8388607 - 42;
+  return __retres;
+}
+
+
diff --git a/tests/misc/oracle/print_machdep.res.oracle b/tests/misc/oracle/print_machdep.res.oracle
index b1566c66852eb15e98254fa0cfbaaf4a89ee1885..9bfb7d917cdacb08ddab3f387a25379215be9d63 100644
--- a/tests/misc/oracle/print_machdep.res.oracle
+++ b/tests/misc/oracle/print_machdep.res.oracle
@@ -1,4 +1,4 @@
-Machine: gcc (GCC) 13.1.1 20230429
+Machine: gcc (GCC) 13.2.1 20230801
    sizeof       short =  2 (16 bits, aligned on 16 bits)
    sizeof         int =  4 (32 bits, aligned on 32 bits)
    sizeof        long =  8 (64 bits, aligned on 64 bits)
diff --git a/tests/syntax/machdep_char_unsigned.yaml b/tests/syntax/machdep_char_unsigned.yaml
index cb4fbd6b6c6a360e076860b4e71b5794c463e17b..99522b793cd6420f70157a277bbe0857ecba5f09 100644
--- a/tests/syntax/machdep_char_unsigned.yaml
+++ b/tests/syntax/machdep_char_unsigned.yaml
@@ -180,4 +180,4 @@ errno:
     exdev: '18'
     exfull: '54'
 machdep_name: 'machdep_char_unsigned'
-custom_defs: ''
+custom_defs: { }