diff --git a/doc/eva/examples/parametrizing/pragma-widen-hints.c b/doc/eva/examples/parametrizing/pragma-widen-hints.c
deleted file mode 100644
index 1e829bf9757fb58a22d79318d5dbec16e7e3c4f3..0000000000000000000000000000000000000000
--- a/doc/eva/examples/parametrizing/pragma-widen-hints.c
+++ /dev/null
@@ -1,9 +0,0 @@
-int i,j;
-
-void main(void)
-{
-  int n = 13;
-  /*@ loop pragma WIDEN_HINTS i, 12, 13; */
-  for (i=0; i<n; i++)
-    j = 4 * i + 7;
-}
diff --git a/doc/eva/main.tex b/doc/eva/main.tex
index 507d379936c598fde52ff744f40907bfd039ac1a..76628e4e00deb03c73726dddb65a3185d6edb710 100644
--- a/doc/eva/main.tex
+++ b/doc/eva/main.tex
@@ -3844,28 +3844,6 @@ thresholds.
 Dynamic hints are automatically global; the \lstinline|global| prefix must not
 be applied to them.
 
-\subsubsection*{Deprecated: \texttt{WIDEN\_HINTS} loop pragma}
-
-\begin{important}
-  This syntax has been deprecated in favor of the previous one
-  and it is kept here only for reference.
-\end{important}
-
-The \lstinline|loop widen_hints| annotation above has an obsoleted syntax: \\
-\lstinline|//@ loop pragma WIDEN_HINTS $v_1,\ldots,v_n$, $e_1,\ldots,e_m$ ;|\\
-which serves the same purpose but has a few differences:
-
-\begin{itemize}
-\item it is restricted to loop annotations;
-\item more than one variable ($v_1,\ldots,v_n$) can be specified in a single hint;
-\item if no variables are specified, it works as the special value \lstinline|"all"|,
-  that is, all variables in the loop are affected;
-\item it does not accept the \lstinline|global| label.
-\end{itemize}
-
-Example:
-\csource{examples/parametrizing/pragma-widen-hints.c}
-
 \subsubsection{Loop invariants}
 
 A last technique consists in using the loop invariant construct of ACSL.
@@ -3915,7 +3893,7 @@ within bounds\footnote{And more precisely between \lstinline+t[1]+ and
 \lstinline+t[9]+, since \lstinline+p+
 is incremented before the affectation to \lstinline+*p+.}.
 Thus, this technique is complementary to the use of
-\lstinline+WIDEN_HINTS+, which only accepts integers --- hence not
+\lstinline+widen_hints+, which only accepts integers --- hence not
 \lstinline+&t[N-1]+. Compared to the use
 of \lstinline+-eva-slevel+ or \lstinline+-ulevel+,
 the technique above does not unroll the loop; thus the overall results
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/ivette/src/dome/renderer/controls/gallery.json b/ivette/src/dome/renderer/controls/gallery.json
index e17d343da243f06d10fe310166e5fa4a23fd1702..10ad82c4a2d9daf1670ac692ffb9280496d2086c 100644
--- a/ivette/src/dome/renderer/controls/gallery.json
+++ b/ivette/src/dome/renderer/controls/gallery.json
@@ -94,6 +94,18 @@
     "viewBox": "0 0 16 16",
     "path": "M14 0h-14v16h16v-14l-2-2zM8 2h2v4h-2v-4zM14 14h-12v-12h1v5h9v-5h1.172l0.828 0.828v11.172z"
   },
+  "UPLOAD": {
+    "section": "Tools",
+    "viewBox": "0 0 16 16",
+    "title": "Upload",
+    "path": "M7.5 11h-7.5v4h15v-4h-7.5zM14 13h-2v-1h2v1zM3.5 5l4-4 4 4h-2.5v5h-3v-5z"
+  },
+  "DOWNLOAD": {
+    "section": "Tools",
+    "title": "Download",
+    "viewBox": "0 0 16 16",
+    "path": "M11.5 7l-4 4-4-4h2.5v-6h3v6zM7.5 11h-7.5v4h15v-4h-7.5zM14 13h-2v-1h2v1z"
+  },
   "DUPLICATE": {
     "section": "Tools",
     "title": "Duplicate",
@@ -102,14 +114,14 @@
   },
   "LOCK": {
     "section": "Tools",
-    "title":"Lock",
-    "viewBox":"0 0 16 16",
+    "title": "Lock",
+    "viewBox": "0 0 16 16",
     "path": "M12.249 6.5h-0.25v-3c0-1.654-1.346-3-3-3h-2c-1.654 0-3 1.346-3 3v3h-0.25c-0.413 0-0.75 0.338-0.75 0.75v7.5c0 0.412 0.337 0.75 0.75 0.75h8.5c0.412 0 0.75-0.338 0.75-0.75v-7.5c0-0.412-0.338-0.75-0.75-0.75zM5.999 3.5c0-0.551 0.449-1 1-1h2c0.551 0 1 0.449 1 1v3h-4v-3z"
   },
   "EDIT": {
     "section": "Tools",
-    "title":"Edit",
-    "viewBox":"0 0 16 16",
+    "title": "Edit",
+    "viewBox": "0 0 16 16",
     "path": "M13.5 0c1.381 0 2.5 1.119 2.5 2.5 0 0.563-0.186 1.082-0.5 1.5l-1 1-3.5-3.5 1-1c0.418-0.314 0.937-0.5 1.5-0.5zM1 11.5l-1 4.5 4.5-1 9.25-9.25-3.5-3.5-9.25 9.25zM11.181 5.681l-7 7-0.862-0.862 7-7 0.862 0.862z"
   },
   "CHECK": {
@@ -193,10 +205,16 @@
   },
   "DISPLAY": {
     "section": "Desktop",
-    "viewBox": "0 0 24 24",
     "title": "Display",
+    "viewBox": "0 0 24 24",
     "path": "M21 15.984v-12h-18v12h18zM21 2.016q0.797 0 1.406 0.586t0.609 1.383v12q0 0.797-0.609 1.406t-1.406 0.609h-6.984v2.016h1.969v1.969h-7.969v-1.969h1.969v-2.016h-6.984q-0.797 0-1.406-0.609t-0.609-1.406v-12q0-0.797 0.609-1.383t1.406-0.586h18z"
   },
+  "TABLE": {
+    "section": "Desktop",
+    "title": "Table",
+    "viewBox": "0 0 16 16",
+    "path": "M0 1v14h16v-14h-16zM6 10v-3h4v3h-4zM10 11v3h-4v-3h4zM10 3v3h-4v-3h4zM5 3v3h-4v-3h4zM1 7h4v3h-4v-3zM11 7h4v3h-4v-3zM11 6v-3h4v3h-4zM1 11h4v3h-4v-3zM11 14v-3h4v3h-4z"
+  },
   "ITEMS.GRID": {
     "section": "Desktop",
     "viewBox": "0 0 16 16",
@@ -227,6 +245,30 @@
     "viewBox": "0 0 24 24",
     "path": "M19.661 5.089q0.375 0.375 0.643 1.018t0.268 1.179v15.429q0 0.536-0.375 0.911t-0.911 0.375h-18q-0.536 0-0.911-0.375t-0.375-0.911v-21.429q0-0.536 0.375-0.911t0.911-0.375h12q0.536 0 1.179 0.268t1.018 0.643zM13.714 1.821v5.036h5.036q-0.134-0.388-0.295-0.549l-4.192-4.192q-0.161-0.161-0.549-0.295zM18.857 22.286v-13.714h-5.571q-0.536 0-0.911-0.375t-0.375-0.911v-5.571h-10.286v20.571h17.143z"
   },
+  "LIGHT": {
+    "section": "Desktop",
+    "title": "Light",
+    "viewBox": "0 0 16 16",
+    "path": "M8 13c0.552 0 1 0.448 1 1v1c0 0.552-0.448 1-1 1s-1-0.448-1-1v-1c0-0.552 0.448-1 1-1zM8 3c-0.552 0-1-0.448-1-1v-1c0-0.552 0.448-1 1-1s1 0.448 1 1v1c0 0.552-0.448 1-1 1zM15 7c0.552 0 1 0.448 1 1s-0.448 1-1 1h-1c-0.552 0-1-0.448-1-1s0.448-1 1-1h1zM3 8c0 0.552-0.448 1-1 1h-1c-0.552 0-1-0.448-1-1s0.448-1 1-1h1c0.552 0 1 0.448 1 1zM12.95 11.536l0.707 0.707c0.39 0.39 0.39 1.024 0 1.414s-1.024 0.39-1.414 0l-0.707-0.707c-0.39-0.39-0.39-1.024 0-1.414s1.024-0.39 1.414 0zM3.050 4.464l-0.707-0.707c-0.391-0.391-0.391-1.024 0-1.414s1.024-0.391 1.414 0l0.707 0.707c0.391 0.391 0.391 1.024 0 1.414s-1.024 0.391-1.414 0zM12.95 4.464c-0.39 0.391-1.024 0.391-1.414 0s-0.39-1.024 0-1.414l0.707-0.707c0.39-0.391 1.024-0.391 1.414 0s0.39 1.024 0 1.414l-0.707 0.707zM3.050 11.536c0.39-0.39 1.024-0.39 1.414 0s0.391 1.024 0 1.414l-0.707 0.707c-0.391 0.39-1.024 0.39-1.414 0s-0.391-1.024 0-1.414l0.707-0.707z M8 4c-2.209 0-4 1.791-4 4s1.791 4 4 4c2.209 0 4-1.791 4-4s-1.791-4-4-4zM8 10.5c-1.381 0-2.5-1.119-2.5-2.5s1.119-2.5 2.5-2.5 2.5 1.119 2.5 2.5-1.119 2.5-2.5 2.5z"
+  },
+  "THEME": {
+    "section": "Desktop",
+    "title": "Theme",
+    "viewBox": "0 0 16 16",
+    "path": "M8 4c-2.209 0-4 1.791-4 4s1.791 4 4 4 4-1.791 4-4-1.791-4-4-4zM8 10.5v-5c1.379 0 2.5 1.122 2.5 2.5s-1.121 2.5-2.5 2.5zM8 13c0.552 0 1 0.448 1 1v1c0 0.552-0.448 1-1 1s-1-0.448-1-1v-1c0-0.552 0.448-1 1-1zM8 3c-0.552 0-1-0.448-1-1v-1c0-0.552 0.448-1 1-1s1 0.448 1 1v1c0 0.552-0.448 1-1 1zM15 7c0.552 0 1 0.448 1 1s-0.448 1-1 1h-1c-0.552 0-1-0.448-1-1s0.448-1 1-1h1zM3 8c0 0.552-0.448 1-1 1h-1c-0.552 0-1-0.448-1-1s0.448-1 1-1h1c0.552 0 1 0.448 1 1zM12.95 11.536l0.707 0.707c0.39 0.39 0.39 1.024 0 1.414s-1.024 0.39-1.414 0l-0.707-0.707c-0.39-0.39-0.39-1.024 0-1.414s1.024-0.39 1.414 0zM3.050 4.464l-0.707-0.707c-0.391-0.391-0.391-1.024 0-1.414s1.024-0.391 1.414 0l0.707 0.707c0.391 0.391 0.391 1.024 0 1.414s-1.024 0.391-1.414 0zM12.95 4.464c-0.39 0.391-1.024 0.391-1.414 0s-0.39-1.024 0-1.414l0.707-0.707c0.39-0.391 1.024-0.391 1.414 0s0.39 1.024 0 1.414l-0.707 0.707zM3.050 11.536c0.39-0.39 1.024-0.39 1.414 0s0.391 1.024 0 1.414l-0.707 0.707c-0.391 0.39-1.024 0.39-1.414 0s-0.391-1.024 0-1.414l0.707-0.707z"
+  },
+  "CHECKBOX.ON": {
+    "section": "Buttons",
+    "title": "Checked box",
+    "viewBox": "0 0 16 16",
+    "path": "M14 0h-12c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h12c1.1 0 2-0.9 2-2v-12c0-1.1-0.9-2-2-2zM7 12.414l-3.707-3.707 1.414-1.414 2.293 2.293 4.793-4.793 1.414 1.414-6.207 6.207z"
+  },
+  "CHECKBOX.OFF": {
+    "section": "Buttons",
+    "title": "Unchecked box",
+    "viewBox": "0 0 16 16",
+    "path": "M14 0h-12c-1.1 0-2 0.9-2 2v12c0 1.1 0.9 2 2 2h12c1.1 0 2-0.9 2-2v-12c0-1.1-0.9-2-2-2zM14 14h-12v-12h12v12z"
+  },
   "CIRC.PLUS": {
     "section": "Buttons",
     "title": "Add",
diff --git a/ivette/src/dome/renderer/dark.css b/ivette/src/dome/renderer/dark.css
index 48b30c7062056c07916cccb823805f7eec88da50..66d7f12bb145f3b95b5b09331b0f73a36e6b962d 100644
--- a/ivette/src/dome/renderer/dark.css
+++ b/ivette/src/dome/renderer/dark.css
@@ -42,7 +42,7 @@
     --default-button-color: #3c495b;
     --default-led-img: radial-gradient(circle at center, #5f92b9, #4189bf);
     --default-button-img: linear-gradient(to bottom, #3c495b 0%, #455164 100%);
-    --default-button-hover: #364355;
+    --default-button-hover: #154240;
     --default-button-active: #303d4f;
 
     --primary-button-color: #146bbf;
@@ -72,8 +72,8 @@
     --cancel-button-hover: #0e2638;
     --cancel-button-active: #041c2e;
 
-    --selected-button-img: #355174;
-    --selected-button-hover: #456184;
+    --selected-button-img: #336cb3;
+    --selected-button-hover: #116cdc;
 
     --activated-button-color: #348bdf;
     --activated-button-hover: #b53d9e;
diff --git a/ivette/src/dome/renderer/frame/style.css b/ivette/src/dome/renderer/frame/style.css
index a3f2d07830113a3a8259a33980a1a2964be89e9c..8ac7d4f4001164f3b08f8c6d03d12447a849643f 100644
--- a/ivette/src/dome/renderer/frame/style.css
+++ b/ivette/src/dome/renderer/frame/style.css
@@ -290,7 +290,7 @@
     flex: 0 0 auto ;
     height: 21px ;
     margin: 6px 5px 6px 5px ;
-    padding: 0px 4px 2px 4px ;
+    padding: 2px 5px 2px 5px ;
     box-shadow: 0 1px 1px rgba(0, 0, 0, .06);
     border: 1px solid transparent;
     border-radius: 4px;
diff --git a/ivette/src/dome/renderer/frame/toolbars.tsx b/ivette/src/dome/renderer/frame/toolbars.tsx
index 9204057d63cd0a6d748223fd8acf6ca7d3631a10..a2243d7832274d03f65d71ef003c30ff3d961d2b 100644
--- a/ivette/src/dome/renderer/frame/toolbars.tsx
+++ b/ivette/src/dome/renderer/frame/toolbars.tsx
@@ -192,7 +192,7 @@ export function Button<A = undefined>(
       onContextMenu={onContextMenu && ((evt) => onContextMenu(value, evt))}
       title={props.title}
     >
-      {props.icon && <SVG id={props.icon} />}
+      {props.icon && <SVG offset={-1} id={props.icon} />}
       {props.label && <label>{props.label}</label>}
       {props.children}
     </button>
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/parsing/logic_parser.mly b/src/kernel_internals/parsing/logic_parser.mly
index cafa0e96b6bf360f0c103ca51cdb542520381f07..5793c2feb49aabde87b7f8ef4e4ade646c1f5b87 100644
--- a/src/kernel_internals/parsing/logic_parser.mly
+++ b/src/kernel_internals/parsing/logic_parser.mly
@@ -1464,10 +1464,6 @@ loop_pragma:
       (if $3 <> "UNROLL" then
 	 Format.eprintf "Warning: use of deprecated keyword '%s'.\nShould use 'UNROLL' instead.@." $3;
        Unroll_specs $4)
-    else if $3 = "WIDEN_VARIABLES" then
-      Widen_variables $4
-    else if $3 = "WIDEN_HINTS" then
-      Widen_hints $4
     else raise (Not_well_formed (loc $sloc,"Unknown loop pragma")) }
 ;
 
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_internals/typing/unroll_loops.ml b/src/kernel_internals/typing/unroll_loops.ml
index 4bc1d09e3912cfc2307e68172b2237329b35579d..9a3077594832805d91a225cca66de4852d2434fd 100644
--- a/src/kernel_internals/typing/unroll_loops.ml
+++ b/src/kernel_internals/typing/unroll_loops.ml
@@ -82,7 +82,6 @@ let extract_from_pragmas global_find_init s =
     match a.annot_content with
     | APragma (Loop_pragma (Unroll_specs specs)) ->
       List.fold_left (update_info global_find_init e) info specs
-    | APragma (Loop_pragma _) -> info
     | _ -> assert false (* should have been filtered above. *)
   in
   List.fold_left get_infos empty_info pragmas
diff --git a/src/kernel_services/analysis/logic_deps.ml b/src/kernel_services/analysis/logic_deps.ml
index 874fb84942604f9d0ea8c9a8d6806d6b4926a8e4..65883a64ce26715463f3aa69166f17dff78a4b14 100644
--- a/src/kernel_services/analysis/logic_deps.ml
+++ b/src/kernel_services/analysis/logic_deps.ml
@@ -478,9 +478,7 @@ let get_zone_from_annot a (ki,kf) loop_body_opt results =
   | AVariant (term,_) ->
     (* to preserve the interpretation of the variant *)
     get_zone_from_term (Option.get loop_body_opt) term results
-  | APragma (Loop_pragma (Unroll_specs terms))
-  | APragma (Loop_pragma (Widen_hints terms))
-  | APragma (Loop_pragma (Widen_variables terms)) ->
+  | APragma (Loop_pragma (Unroll_specs terms)) ->
     (* to select the declaration of the variables *)
     List.fold_left
       (fun results term -> {
diff --git a/src/kernel_services/ast_data/cil_types.ml b/src/kernel_services/ast_data/cil_types.ml
index 0b27f448cc4937d02c715c9f40ba63603e12ac99..8cb7318ad076de9ae78f56378cb1b21302047795 100644
--- a/src/kernel_services/ast_data/cil_types.ml
+++ b/src/kernel_services/ast_data/cil_types.ml
@@ -1738,8 +1738,6 @@ and behavior = {
 (** Pragmas for the value analysis plugin of Frama-C. *)
 and loop_pragma =
   | Unroll_specs of term list
-  | Widen_hints of term list
-  | Widen_variables of term list
 
 (** Pragmas for the slicing plugin of Frama-C. *)
 and slice_pragma =
@@ -1886,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 = {
@@ -1950,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_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml
index a9d7c98103737e6c3f99048062c7ff2a5af3647a..31b287429f816c944a15ba5bd08533f4dcafd02c 100644
--- a/src/kernel_services/ast_printing/cil_printer.ml
+++ b/src/kernel_services/ast_printing/cil_printer.ml
@@ -3164,12 +3164,6 @@ class cil_printer () = object (self)
       (pp_list false self#disjoint_behaviors) disjoint
 
   method private loop_pragma fmt = function
-    | Widen_hints terms ->
-      fprintf fmt "WIDEN_HINTS @[%a@]"
-        (Pretty_utils.pp_list ~sep:",@ " self#term) terms
-    | Widen_variables terms ->
-      fprintf fmt "WIDEN_VARIABLES @[%a@]"
-        (Pretty_utils.pp_list ~sep:",@ " self#term) terms
     | Unroll_specs terms ->
       fprintf fmt "UNROLL @[%a@]"
         (Pretty_utils.pp_list ~sep:",@ " self#term) terms
diff --git a/src/kernel_services/ast_printing/cil_types_debug.ml b/src/kernel_services/ast_printing/cil_types_debug.ml
index bdd64597f8619aa9e107a96a7c81671aebfdff2c..ed13828430d9dd900638e11bcc8df886892228ac 100644
--- a/src/kernel_services/ast_printing/cil_types_debug.ml
+++ b/src/kernel_services/ast_printing/cil_types_debug.ml
@@ -932,10 +932,6 @@ and pp_termination_kind fmt = function
 and pp_loop_pragma fmt = function
   | Unroll_specs(term_list) ->
     Format.fprintf fmt "Unroll_specs(%a)" (pp_list pp_term) term_list
-  | Widen_hints(term_list) ->
-    Format.fprintf fmt "Widen_hints(%a)" (pp_list pp_term) term_list
-  | Widen_variables(term_list) ->
-    Format.fprintf fmt "Widen_variables(%a)" (pp_list pp_term) term_list
 
 and pp_slice_pragma fmt = function
   | SPexpr(term) -> Format.fprintf fmt "SPexpr(%a)" pp_term term
diff --git a/src/kernel_services/ast_printing/logic_print.ml b/src/kernel_services/ast_printing/logic_print.ml
index 9509cb045c44331814e5fa1af17e9fa7769da74f..f0aeef687bad114badea91a4fd70bc0170de689e 100644
--- a/src/kernel_services/ast_printing/logic_print.ml
+++ b/src/kernel_services/ast_printing/logic_print.ml
@@ -453,10 +453,6 @@ let print_spec fmt spec =
 let print_loop_pragma fmt p =
   match p with
     Unroll_specs l -> fprintf fmt "UNROLL@ %a" (pp_list ~sep:",@ " print_lexpr) l
-  | Widen_hints l ->
-    fprintf fmt "WIDEN_HINTS@ %a" (pp_list ~sep:",@ " print_lexpr) l
-  | Widen_variables l ->
-    fprintf fmt "WIDEN_VARIABLES@ %a" (pp_list ~sep:",@ " print_lexpr) l
 
 let print_slice_pragma fmt p =
   match p with
diff --git a/src/kernel_services/ast_queries/ast_diff.ml b/src/kernel_services/ast_queries/ast_diff.ml
index 58fe0aa05cd35e230ab82958356a766b3c2961f3..35206eb8bd56bf238238d2225f58100c2b6d0f43 100644
--- a/src/kernel_services/ast_queries/ast_diff.ml
+++ b/src/kernel_services/ast_queries/ast_diff.ml
@@ -702,11 +702,7 @@ and is_same_variant (v,m) (v',m') env =
 
 and is_same_loop_pragma p p' env =
   match p, p' with
-  | Unroll_specs l, Unroll_specs l'
-  | Widen_hints l, Widen_hints l'
-  | Widen_variables l, Widen_variables l' ->
-    is_same_list is_same_term l l' env
-  | (Unroll_specs _ | Widen_hints _ | Widen_variables _), _ -> false
+  | Unroll_specs l, Unroll_specs l' -> is_same_list is_same_term l l' env
 
 and is_same_slice_pragma p p' env =
   match p, p' with
diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml
index 891b2fb3a4be7fafa4dad423808b06e8dae0d002..e287cf0048d750ab14e40fc7920d047f348ebbcf 100644
--- a/src/kernel_services/ast_queries/cil.ml
+++ b/src/kernel_services/ast_queries/cil.ml
@@ -2049,10 +2049,6 @@ and childrenLoopPragma vis p =
   match p with
   | Unroll_specs lt -> let lt' = mapNoCopy (visitCilTerm vis) lt in
     if lt' != lt then Unroll_specs lt' else p
-  | Widen_hints lt -> let lt' = mapNoCopy (visitCilTerm vis) lt in
-    if lt' != lt then Widen_hints lt' else p
-  | Widen_variables lt -> let lt' = mapNoCopy (visitCilTerm vis) lt in
-    if lt' != lt then Widen_variables lt' else p
 
 and childrenModelInfo vis m =
   let field_type = visitCilLogicType vis m.mi_field_type in
@@ -5294,8 +5290,10 @@ let constFoldVisitor (machdep: bool) = new constFoldVisitorClass machdep
 
 let rec constFoldTermNodeAtTop = function
   | TSizeOf typ as t ->
-    (try integer_lconstant (bytesSizeOf typ)
-     with SizeOfError _ -> t)
+    begin
+      try integer_lconstant (bytesSizeOf typ)
+      with SizeOfError _ -> t
+    end
   | TSizeOfStr str -> integer_lconstant (String.length str + 1)
   | TAlignOf typ as t ->
     begin
@@ -5308,14 +5306,68 @@ let rec constFoldTermNodeAtTop = function
   | TSizeOfE _ | TAlignOfE _ ->
     assert false (* sizeof/alignof of logic types are rejected
                     by typing anyway. *)
+  | TUnOp (op, ({ term_node = n1 } as t1)) ->
+    begin
+      let constFoldTermUnOp int_unop =
+        match constFoldTermNodeAtTop n1 with
+        | TConst (Integer (i, _)) -> TConst (Integer (int_unop i, None))
+        | n1 -> TUnOp (op, {t1 with term_node = n1})
+      in
+      match op with
+      | Neg -> constFoldTermUnOp Integer.neg
+      | BNot -> constFoldTermUnOp Integer.lognot
+      | LNot -> constFoldTermUnOp
+                  (fun i -> if Integer.is_zero i
+                    then Integer.one else Integer.zero)
+    end
+  | TBinOp (op, ({term_node = n1} as t1), ({term_node = n2} as t2)) ->
+    begin
+      let n1 = constFoldTermNodeAtTop n1 in
+      let n2 = constFoldTermNodeAtTop n2 in
+      let constFoldTermBinOp int_bop =
+        match n1, n2 with
+        | TConst (Integer (i1, _)), TConst (Integer (i2, _)) ->
+          TConst (Integer (int_bop i1 i2, None))
+        | n1, n2 ->
+          TBinOp (op, {t1 with term_node = n1}, {t2 with term_node = n2})
+
+      in
+      match op with
+      | PlusA -> constFoldTermBinOp Integer.add
+      | MinusA -> constFoldTermBinOp Integer.sub
+      | Mult -> constFoldTermBinOp Integer.mul
+      | Shiftlt -> constFoldTermBinOp Integer.shift_left
+      | Shiftrt -> (* right-shifting Lintegers is always arithmetic *)
+        constFoldTermBinOp Integer.shift_right
+      | BAnd -> constFoldTermBinOp Integer.logand
+      | BXor -> constFoldTermBinOp Integer.logxor
+      | BOr -> constFoldTermBinOp Integer.logor
+      | Lt | Gt | Le | Ge | Eq | Ne | LAnd | LOr ->
+        let bool_op = match op with
+          | Lt -> Integer.lt
+          | Gt -> Integer.gt
+          | Le -> Integer.le
+          | Ge -> Integer.ge
+          | Eq -> Integer.equal
+          | Ne -> (fun i1 i2 -> not (Integer.equal i1 i2))
+          | LAnd ->
+            (fun i1 i2 -> not (Integer.is_zero i1) && not (Integer.is_zero i2))
+          | LOr ->
+            (fun i1 i2 -> not (Integer.is_zero i1) || not (Integer.is_zero i2))
+          | _ -> assert false
+        in
+        constFoldTermBinOp
+          (fun i1 i2 -> if bool_op i1 i2 then Integer.one else Integer.zero)
+      | _ ->
+        TBinOp (op, {t1 with term_node = n1}, {t2 with term_node = n2})
+    end
   | t -> t
 
-let constFoldTerm machdep t =
+let constFoldTerm t =
   let visitor = object
     inherit nopCilVisitor
     method! vterm_node t =
-      if machdep then ChangeToPost (t,constFoldTermNodeAtTop)
-      else DoChildren
+      ChangeToPost (t, constFoldTermNodeAtTop)
   end
   in
   visitCilTerm visitor t
diff --git a/src/kernel_services/ast_queries/cil.mli b/src/kernel_services/ast_queries/cil.mli
index aed2f84c7513a397e2e64affce3de2af76c96ac6..ca938f4a42d4e4e7db53f65ac8393fe5f3facc5e 100644
--- a/src/kernel_services/ast_queries/cil.mli
+++ b/src/kernel_services/ast_queries/cil.mli
@@ -1079,10 +1079,9 @@ val constFoldToInt: ?machdep:bool -> exp -> Integer.t option
 val constFoldTermNodeAtTop:  term_node -> term_node
 
 (** Do constant folding on an term.
-    If the first argument is true then
-    will also compute compiler-dependent expressions such as [sizeof]
-    and [alignof]. *)
-val constFoldTerm: bool -> term -> term
+    @before Frama-C+Dev takes a boolean [machdep] to decide if we actually do
+            the fold or not. *)
+val constFoldTerm: term -> term
 
 (** Do constant folding on a {!Cil_types.offset}. If the second argument is true
     then will also compute compiler-dependent expressions such as [sizeof]. *)
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/src/kernel_services/ast_queries/logic_typing.ml b/src/kernel_services/ast_queries/logic_typing.ml
index 3377cdbb68d9e20a77b0aecff2ded641130ea2be..9c5eddcfe4c9e0491a19a30ddcb18c113e06fb6b 100644
--- a/src/kernel_services/ast_queries/logic_typing.ml
+++ b/src/kernel_services/ast_queries/logic_typing.ml
@@ -3632,29 +3632,9 @@ struct
 
   let plain_logic_type loc env t = logic_type (base_ctxt env) loc env t
 
-  (* For Widen_hints and Widen_variables, we check that the arguments of the
-     pragma can be understood later. Keep this code synchronized with
-     src/plugins/eva/utils/widen.ml. *)
   let loop_pragma env p =
-    let accept_int = function
-        { term_node = TConst (Integer _)} -> true | _ -> false
-    in
-    let accept_var = function
-        { term_node = TLval (TVar {lv_origin = Some _}, _)} -> true | _ -> false
-    in
-    (* fail when the translation of [p] does not verify the predicate [accept]*)
-    let term_accept accept p =
-      let t = term env p in
-      if not (accept t) then
-        C.error t.term_loc "invalid pragma '%a'" Cil_printer.pp_term t;
-      t
-    in
     match p with
     | Unroll_specs l -> Cil_types.Unroll_specs (List.map (term env) l)
-    | Widen_variables l -> Cil_types.Widen_variables (List.map (term_accept accept_var) l)
-    | Widen_hints l ->
-      let accept t = accept_int t || accept_var t in
-      Cil_types.Widen_hints (List.map (term_accept accept) l)
 
   let model_annot loc ti =
     let env = Lenv.empty() in
diff --git a/src/kernel_services/ast_queries/logic_utils.ml b/src/kernel_services/ast_queries/logic_utils.ml
index cd74caa5993ca4a66e9c79f9fa9ec10fd9d103d1..6846b6e71144681376f1988aae766b0a4376282a 100644
--- a/src/kernel_services/ast_queries/logic_utils.ml
+++ b/src/kernel_services/ast_queries/logic_utils.ml
@@ -1179,9 +1179,6 @@ let is_same_logic_type_info t1 t2 =
 let is_same_loop_pragma p1 p2 =
   match p1,p2 with
     Unroll_specs l1, Unroll_specs l2 -> is_same_list is_same_term l1 l2
-  | Widen_hints l1, Widen_hints l2 -> is_same_list is_same_term l1 l2
-  | Widen_variables l1, Widen_variables l2 -> is_same_list is_same_term l1 l2
-  | (Unroll_specs _ | Widen_hints _ | Widen_variables _), _ -> false
 
 let is_same_slice_pragma p1 p2 =
   match p1,p2 with
@@ -2302,7 +2299,7 @@ let is_trivial_annotation a =
     -> false
 
 let is_property_pragma = function
-  | Loop_pragma (Unroll_specs _ | Widen_hints _ | Widen_variables _)
+  | Loop_pragma (Unroll_specs _)
   | Slice_pragma (SPexpr _ | SPctrl | SPstmt)
   | Impact_pragma (IPexpr _ | IPstmt) -> false
 (* If at some time a pragma becomes something which should be proven,
diff --git a/src/kernel_services/parsetree/logic_ptree.ml b/src/kernel_services/parsetree/logic_ptree.ml
index 0dfa48308069b1bc63f3554dbec3bb165539da0e..d123c416326462beb7a280287382364b46fe7872 100644
--- a/src/kernel_services/parsetree/logic_ptree.ml
+++ b/src/kernel_services/parsetree/logic_ptree.ml
@@ -323,8 +323,6 @@ type spec = {
 
 type loop_pragma =
   | Unroll_specs of lexpr list
-  | Widen_hints of lexpr list
-  | Widen_variables of lexpr list
 
 (** Pragmas for the slicing plugin of Frama-C. *)
 and slice_pragma =
diff --git a/src/plugins/aorai/aorai_utils.ml b/src/plugins/aorai/aorai_utils.ml
index 73ffd560c652f480073875c191ca29376bd6748a..d6c1c106a215b6873d4e92e6f5d29e4a63a84b43 100644
--- a/src/plugins/aorai/aorai_utils.ml
+++ b/src/plugins/aorai/aorai_utils.ml
@@ -263,8 +263,8 @@ let isCrossableAtInit tr func =
     end
   in
   let eval_rel_at_init rel t1 t2 =
-    let t1 = eval_term_at_init (Cil.constFoldTerm true t1) in
-    let t2 = eval_term_at_init (Cil.constFoldTerm true t2) in
+    let t1 = eval_term_at_init (Cil.constFoldTerm t1) in
+    let t2 = eval_term_at_init (Cil.constFoldTerm t2) in
     let comp =
       match rel with
       | Req -> ((=) 0)
diff --git a/src/plugins/eva/domains/cvalue/builtins.ml b/src/plugins/eva/domains/cvalue/builtins.ml
index 493a62a052b953e553871f1d6d1dbdf50ca7bd05..e5eb37d3758b1884caa66f455f2a10b1d0f2f643 100644
--- a/src/plugins/eva/domains/cvalue/builtins.ml
+++ b/src/plugins/eva/domains/cvalue/builtins.ml
@@ -204,14 +204,15 @@ let prepare_builtins () =
   (* Overrides builtins attribution according to the -eva-builtin option. *)
   Parameters.BuiltinsOverrides.iter
     (fun (kf, name) ->
-       prepare_builtin kf (Hashtbl.find table (Option.get name)))
+       prepare_builtin kf (Hashtbl.find table (Option.get name)));
+  BuiltinsOverride.mark_as_computed ()
 
 let find_builtin_override = Hashtbl.find_opt builtins_table
 
-let is_builtin_overridden name =
+let is_builtin_overridden kf =
   if not (BuiltinsOverride.is_computed ())
   then prepare_builtins ();
-  BuiltinsOverride.mem name
+  BuiltinsOverride.mem kf
 
 (* -------------------------------------------------------------------------- *)
 (* --- Applying a builtin                                                 --- *)
diff --git a/src/plugins/eva/legacy/eval_terms.ml b/src/plugins/eva/legacy/eval_terms.ml
index 47b4dd0ae16239aa763f316bceb53747d7b6f635..b661c99d40603029704486f60a2649440de460ee 100644
--- a/src/plugins/eva/legacy/eval_terms.ml
+++ b/src/plugins/eva/legacy/eval_terms.ml
@@ -1198,7 +1198,7 @@ let rec eval_term ~alarm_mode env t =
       tcond ttrue tfalse
 
   | TSizeOf _ | TSizeOfE _ | TSizeOfStr _ | TAlignOf _ | TAlignOfE _ ->
-    let e = Cil.constFoldTerm true t in
+    let e = Cil.constFoldTerm t in
     let v = match e.term_node with
       | TConst (Integer (v, _)) -> Cvalue.V.inject_int v
       | _ -> V.top_int
diff --git a/src/plugins/eva/utils/widen.ml b/src/plugins/eva/utils/widen.ml
index 0394740c78769e2c9e72380ad634fc33ce81575a..f4caa9f5a6efd427cf6b2f9c33305a78ab0900e7 100644
--- a/src/plugins/eva/utils/widen.ml
+++ b/src/plugins/eva/utils/widen.ml
@@ -57,7 +57,7 @@ let update_global_hints new_hints =
   let hints = Widen_type.join (Global_Static_Hints.get ()) new_hints in
   Global_Static_Hints.set hints;
 
-class pragma_widen_visitor init_widen_hints init_enclosing_loops = object(self)
+class widen_visitor init_widen_hints init_enclosing_loops = object(self)
   inherit Visitor.frama_c_inplace
 
   val widen_hints = init_widen_hints
@@ -69,70 +69,17 @@ class pragma_widen_visitor init_widen_hints init_enclosing_loops = object(self)
     then update_global_hints new_hints
     else widen_hints := Widen_type.join new_hints !widen_hints
 
-  method private add_float_thresholds ?base float_thresholds =
-    let new_hints = Widen_type.float_hints None base float_thresholds in
-    if Option.fold ~none:false ~some:Base.is_global base
-    then update_global_hints new_hints
-    else widen_hints := Widen_type.join new_hints !widen_hints
-
   method private add_var_hints ~stmt hints =
     widen_hints := Widen_type.join (Widen_type.var_hints stmt hints) !widen_hints
 
-  method private process_loop_pragma stmt p =
-    match p with
-    | Widen_variables l -> begin
-        let f (lv, lt) t = match t with
-          | { term_node= TLval (TVar {lv_origin = Some vi}, _)} ->
-            (Base.Set.add (Base.of_varinfo vi) lv, lt)
-          | _ -> (lv, t::lt)
-        in
-        match List.fold_left f (Base.Set.empty, []) l with
-        | (var_hints, []) ->
-          (* the annotation is empty or contains only variables *)
-          self#add_var_hints ~stmt var_hints
-        | (_lv, _lt) ->
-          Self.warning ~once:true
-            "could not interpret loop pragma relative to widening variables"
-      end
-    | Widen_hints l -> begin
-        let f (lv, lint, lfloat, lt) t = match t with
-          | { term_node= TLval (TVar { lv_origin = Some vi}, _)} ->
-            (Base.of_varinfo vi :: lv, lint, lfloat, lt)
-          | { term_node= TConst (Integer(v,_))} ->
-            (lv, IntSet.add v lint, lfloat, lt)
-          | _ ->
-            match constFoldTermToReal t.term_node with
-            | Some f -> (lv, lint, FloatSet.add f lfloat, lt)
-            | None -> (lv, lint, lfloat, t::lt)
-        in
-        match List.fold_left f ([], IntSet.empty, FloatSet.empty, []) l with
-        | (vars, int_thresholds, float_thresholds, []) ->
-          (* the annotation is empty or contains only variables *)
-          if vars = [] then begin
-            self#add_int_thresholds int_thresholds;
-            self#add_float_thresholds float_thresholds
-          end else
-            List.iter (fun base ->
-                self#add_int_thresholds ~base int_thresholds;
-                self#add_float_thresholds ~base float_thresholds;
-              ) vars
-        | _ ->
-          Self.warning ~once:true
-            "could not interpret loop pragma relative to widening hint"
-      end
-    | _ -> ()
-
   method! vstmt (s:stmt) =
     match s.skind with
     | Loop (_, bl, _, _, _) -> begin
         (* ZZZ: this code does not handle loops that are created using gotos. We
            could improve this by finding the relevant statements using a
            traversal of the CFG. *)
-        let annot = Annotations.code_annot s in
-        let pragmas = Logic_utils.extract_loop_pragma annot in
-        List.iter (self#process_loop_pragma s) pragmas;
         let new_loop_info = s :: enclosing_loops in
-        let visitor = new pragma_widen_visitor widen_hints new_loop_info in
+        let visitor = new widen_visitor widen_hints new_loop_info in
         ignore (Visitor.visitFramacBlock visitor bl);
         Cil.SkipChildren (* Otherwise the inner statements are visited multiple
                             times needlessly *)
@@ -408,7 +355,7 @@ let compute_global_static_hints () =
 
 let per_function_static_hints fdec =
   let widen_hints = ref Widen_type.empty in
-  let visitor_pragma = new pragma_widen_visitor widen_hints [] in
+  let visitor_pragma = new widen_visitor widen_hints [] in
   ignore (Visitor.visitFramacFunction visitor_pragma fdec);
   let visitor_local = new hints_visitor widen_hints false in
   ignore (Visitor.visitFramacFunction visitor_local fdec);
diff --git a/src/plugins/wp/Cvalues.ml b/src/plugins/wp/Cvalues.ml
index 828bb2ab9a59650de96a6c913ed358ec51e5f60c..eb5550382a16e41c745b25763a32a690c7147d6b 100644
--- a/src/plugins/wp/Cvalues.ml
+++ b/src/plugins/wp/Cvalues.ml
@@ -65,7 +65,7 @@ and constant_exp e =
   | _ -> Warning.error "constant(%a)" Printer.pp_exp e
 
 and constant_term t =
-  let e = Cil.constFoldTerm true t in
+  let e = Cil.constFoldTerm t in
   match e.term_node with
   | TConst c -> logic_constant c
   | _ -> Warning.error "constant(%a)" Printer.pp_term t
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/slicing/loops.i b/tests/slicing/loops.i
index 6b6ffcb301940eff3177b26a0915af06a0d4c488..bd7f5dc7b9a1dfab04bd50d4462e762751469cf9 100644
--- a/tests/slicing/loops.i
+++ b/tests/slicing/loops.i
@@ -173,7 +173,7 @@ int X, Y, Z ;
 void loop (int cond) {
   if (cond) {
     int c = 0 ;
-    /*@ loop pragma WIDEN_HINTS X, 10, 100 ; */ while (1) {
+    while (1) {
       //@ slice pragma ctrl ;
       if (c) {
         X++;
diff --git a/tests/slicing/oracle/adpcm.res.oracle b/tests/slicing/oracle/adpcm.res.oracle
index a8be5b40a15dafe92bf571d5b5369d8f63effbe8..d064224755afa3c264138d1ff4795db2f1dc9feb 100644
--- a/tests/slicing/oracle/adpcm.res.oracle
+++ b/tests/slicing/oracle/adpcm.res.oracle
@@ -1531,6 +1531,7 @@ Slicing project worklist [default] =
 [pdg] computing for function logscl
 [pdg] done for function logscl
 [slicing] applying actions: 3/3...
+[slicing] tests/test/adpcm.c:607: Warning: Dropping unsupported ACSL annotation
 [sparecode] remove unused global declarations from project 'Sliced code tmp'
 [sparecode] removed unused global declarations in new project 'Sliced code'
 /* Generated by Frama-C */
@@ -2070,8 +2071,7 @@ void main(void)
 {
   int i;
   i = 0;
-  /*@ loop pragma UNROLL 11;
-      loop pragma WIDEN_HINTS 32767; */
+  /*@ loop pragma UNROLL 11; */
   while (i < 10) {
     encode_slice_1(test_data[i],test_data[i + 1]);
     i += 2;
diff --git a/tests/slicing/oracle/loops.10.res.oracle b/tests/slicing/oracle/loops.10.res.oracle
index 7ba1874acead31fd20c084a227d3c52fa55f6fac..45eccd8972e154ec7617ee9096d5175e2fc93cac 100644
--- a/tests/slicing/oracle/loops.10.res.oracle
+++ b/tests/slicing/oracle/loops.10.res.oracle
@@ -62,12 +62,10 @@
 [sparecode] remove unused global declarations from project 'Slicing export tmp'
 [sparecode] removed unused global declarations in new project 'Slicing export'
 /* Generated by Frama-C */
-int X;
 void loop_slice_1(void)
 {
   {
     int c;
-    /*@ loop pragma WIDEN_HINTS X, 10, 100; */
     while (1) {
       /*@ slice pragma ctrl; */ ;
       c = 1;
diff --git a/tests/slicing/oracle/loops.12.res.oracle b/tests/slicing/oracle/loops.12.res.oracle
index 2c137bfaa618dedb48af0d5cfed9c4b4ba115d4e..c37d8ec3ed854e405b20549e5ffa1785801170e4 100644
--- a/tests/slicing/oracle/loops.12.res.oracle
+++ b/tests/slicing/oracle/loops.12.res.oracle
@@ -37,14 +37,12 @@
 [sparecode] remove unused global declarations from project 'Slicing export tmp'
 [sparecode] removed unused global declarations in new project 'Slicing export'
 /* Generated by Frama-C */
-int X;
 int Y;
 int Z;
 void loop(int cond)
 {
   if (cond) {
     int c = 0;
-    /*@ loop pragma WIDEN_HINTS X, 10, 100; */
     while (1) {
       /*@ slice pragma ctrl; */ ;
       if (c) Y = Z;
diff --git a/tests/slicing/oracle/loops.13.res.oracle b/tests/slicing/oracle/loops.13.res.oracle
index c9ea2a26e605dedf95cec73b63722fcb776d90a5..19f0f0820f6248d904aa53a0a04e82b6bada7235 100644
--- a/tests/slicing/oracle/loops.13.res.oracle
+++ b/tests/slicing/oracle/loops.13.res.oracle
@@ -37,14 +37,12 @@
 [sparecode] remove unused global declarations from project 'Slicing export tmp'
 [sparecode] removed unused global declarations in new project 'Slicing export'
 /* Generated by Frama-C */
-int X;
 int Y;
 int Z;
 void loop(int cond)
 {
   if (cond) {
     int c = 0;
-    /*@ loop pragma WIDEN_HINTS X, 10, 100; */
     while (1) {
       /*@ slice pragma ctrl; */ ;
       if (c) Y = Z;
diff --git a/tests/slicing/oracle/loops.21.res.oracle b/tests/slicing/oracle/loops.21.res.oracle
index 8636ad07b17046ce79ca5ca1ab0eb519c01bf81c..060ea45f1d6604803fb3050b1fa840d9ee578064 100644
--- a/tests/slicing/oracle/loops.21.res.oracle
+++ b/tests/slicing/oracle/loops.21.res.oracle
@@ -72,7 +72,6 @@ void loop_slice_1(void)
 {
   {
     int c = 0;
-    /*@ loop pragma WIDEN_HINTS X, 10, 100; */
     while (1) {
       /*@ slice pragma ctrl; */ ;
       if (c) Y = Z;
diff --git a/tests/slicing/oracle/loops.22.res.oracle b/tests/slicing/oracle/loops.22.res.oracle
index 3313fbc32d943908d3b6701ed97fdd379ff18096..9b53131b45d7694bd90cdce58f315e9bba6405cb 100644
--- a/tests/slicing/oracle/loops.22.res.oracle
+++ b/tests/slicing/oracle/loops.22.res.oracle
@@ -72,7 +72,6 @@ void loop_slice_1(void)
 {
   {
     int c = 0;
-    /*@ loop pragma WIDEN_HINTS X, 10, 100; */
     while (1) {
       /*@ slice pragma ctrl; */ ;
       if (c) Y = Z;
diff --git a/tests/slicing/oracle/loops.9.res.oracle b/tests/slicing/oracle/loops.9.res.oracle
index a2caa35921cfccd62af77a1b13f943464086f2cd..b5fcf07545c01ddca66358df26b66993a5833357 100644
--- a/tests/slicing/oracle/loops.9.res.oracle
+++ b/tests/slicing/oracle/loops.9.res.oracle
@@ -62,10 +62,8 @@
 [sparecode] remove unused global declarations from project 'Slicing export tmp'
 [sparecode] removed unused global declarations in new project 'Slicing export'
 /* Generated by Frama-C */
-int X;
 void loop_slice_1(void)
 {
-  /*@ loop pragma WIDEN_HINTS X, 10, 100; */
   while (1) 
     /*@ slice pragma ctrl; */ ;
   return;
diff --git a/tests/spec/const_fold_term.i b/tests/spec/const_fold_term.i
new file mode 100644
index 0000000000000000000000000000000000000000..dcabf3bd580cb2b7f73e8026240336341dd6388b
--- /dev/null
+++ b/tests/spec/const_fold_term.i
@@ -0,0 +1,22 @@
+/* run.config
+  MODULE: @PTEST_NAME@
+  STDOPT: -print
+*/
+
+void unop(int a) {
+  //@ assert -(21 + 21);
+  //@ assert ~21;
+  //@ assert -a;
+}
+
+void binop(int a) {
+  //@ assert 21 + 21 + a == 42;
+  //@ assert 84 - 42 == 42;
+  //@ assert 6 * 7 == 42;
+  //@ assert 21 << 1 == 42;
+  //@ assert 672 >> sizeof(int) == 42;
+  //@ assert (58 & 47) == 42;
+  //@ assert (34 | sizeof("frama-c")) == 42;
+  //@ assert (63 ^ 21) == 42;
+  //@ assert 168 / sizeof(a) == 42;
+}
diff --git a/tests/spec/const_fold_term.ml b/tests/spec/const_fold_term.ml
new file mode 100644
index 0000000000000000000000000000000000000000..fe52ad8ac04840bd99a60ada938da688e40078e5
--- /dev/null
+++ b/tests/spec/const_fold_term.ml
@@ -0,0 +1,51 @@
+open Cil_types
+
+let fold t =
+  match t.term_node with
+  | TSizeOf _ | TSizeOfStr _ | TSizeOfE _ |  TAlignOf _ | TAlignOfE _
+  | TUnOp _ | TBinOp _ ->
+    let t' = Cil.constFoldTerm t in
+    Format.printf "  %a folds to %a@." Cil_printer.pp_term t Cil_printer.pp_term t'
+  | _ -> ()
+
+class visitTerm prj = object(_)
+  inherit Visitor.frama_c_copy prj
+
+  method! vterm t =
+    fold t;
+    Cil.JustCopy
+
+end
+
+let test_terms () =
+  let open Cil_builder.Exp in
+  let loc = Cil_datatype.Location.unknown in
+  let e1 = lognot ((of_int 21) + (of_int 21)) in
+  let e2 = lognot ((of_int 21) - (of_int 21)) in
+  let e3 = lt zero (logand (of_int 42) (of_int 21)) in
+  let e4 = gt one (logor zero (of_int 21)) in
+  let e5 = ne zero (le zero (logand (of_int 42) (of_int 21))) in
+  let e6 = eq one (ge one (logor one zero)) in
+  let t1 = cil_term ~loc e1 in
+  let t2 = cil_term ~loc e2 in
+  let t3 = cil_term ~loc e3 in
+  let t4 = cil_term ~loc e4 in
+  let t5 = cil_term ~loc e5 in
+  let t6 = cil_term ~loc e6 in
+  Format.printf "Custom terms :@.";
+  fold t1;
+  fold t2;
+  fold t3;
+  fold t4;
+  fold t5;
+  fold t6
+
+let startup () =
+  test_terms ();
+  Format.printf "File terms :@.";
+  let prj = File.create_project_from_visitor "test_const_fold"
+      (fun prj -> new visitTerm prj)
+  in
+  Project.set_current prj
+
+let () = Boot.Main.extend startup
diff --git a/tests/spec/oracle/const_fold_term.res.oracle b/tests/spec/oracle/const_fold_term.res.oracle
new file mode 100644
index 0000000000000000000000000000000000000000..61d1b054b90db6295840d234120d6fe05db78d81
--- /dev/null
+++ b/tests/spec/oracle/const_fold_term.res.oracle
@@ -0,0 +1,21 @@
+[kernel] Parsing const_fold_term.i (no preprocessing)
+Custom terms :
+  !(21 + 21) folds to 0
+  !(21 - 21) folds to 1
+  0 < (42 ∧ 21) folds to 1
+  1 > (0 ∨ 21) folds to 0
+  0 ≢ (0 ≤ (42 ∧ 21)) folds to 1
+  1 ≡ (1 ≥ (1 ∨ 0)) folds to 1
+File terms :
+  -(21 + 21) folds to -42
+  ~21 folds to -22
+  -a folds to -a
+  (21 + 21) + a folds to 42 + a
+  84 - 42 folds to 42
+  6 * 7 folds to 42
+  21 << 1 folds to 42
+  672 >> sizeof(int) folds to 42
+  58 & 47 folds to 42
+  34 | sizeof("frama-c") folds to 42
+  63 ^ 21 folds to 42
+  168 / sizeof(a) folds to 168 / 4
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: { }
diff --git a/tests/test/adpcm.c b/tests/test/adpcm.c
index 8fa00fc7aef5f28aa567dede0c341b635f7b14d6..0c8d7e005050cd9ac08c833ebc83666d3bebd5fb 100644
--- a/tests/test/adpcm.c
+++ b/tests/test/adpcm.c
@@ -603,7 +603,7 @@ int compressed[10]={0};
 void main () //(int test_data[10], int compressed[10])
 {
   int i;
-  /*@ loop pragma UNROLL 11; loop pragma WIDEN_HINTS 32767; */   /* Better bounds:    loop invariant detl <= 32064; loop invariant nbh <= 22528; loop invariant nbl <= 18432; */
+  /*@ loop pragma UNROLL 11; loop widen_hints "all", 32767; */   /* Better bounds:    loop invariant detl <= 32064; loop invariant nbh <= 22528; loop invariant nbl <= 18432; */
   for(i = 0 ; i < 10 ; i += 2)
     compressed[i/2] = encode(test_data[i],test_data[i+1]);
 
diff --git a/tests/value/loop_wvar.i b/tests/value/loop_wvar.i
index 892c3948c3b14d244e7ff27e122adeb37a1ed8ad..2e15f918229a722cfc1e1e4b950f24e001241964 100644
--- a/tests/value/loop_wvar.i
+++ b/tests/value/loop_wvar.i
@@ -9,9 +9,6 @@
 void main(void)
 { int n = 13;
   int i,j;
-// ceci était une annotation, mais on ne fait pas moins bien sans
-// maintenant:
-// loop pragma WIDEN_VARIABLES i;
   /*@ loop widen_hints i, 12, 13; */
   for (i=0; i<n; i++)
     {
@@ -35,7 +32,6 @@ void main_err1(void)
 void main_err2(void)
 { int n = 13;
   int i,j;
-  /*@ loop pragma WIDEN_VARIABLES 12; */
   for (i=0; i<n; i++)
     {
       j = 4 * i + 7;
@@ -48,7 +44,7 @@ void main_unhelpful () {
   int next = 0;
   int i;
 
-/*@ loop widen_hints next, 24; */ // This pragma is unhelpful, but used to interfere with the bound for i.
+/*@ loop widen_hints next, 24; */ // This hint is unhelpful, but used to interfere with the bound for i.
   for (i=0;i<30;i++) {
     int vsize = max;
     int vnext = next;
diff --git a/tests/value/oracle/loop_wvar.0.res.oracle b/tests/value/oracle/loop_wvar.0.res.oracle
index 26226e60686687c151d18c486b3720d62240eb42..e68a02c1d640c38b4a50754cf740d29700306e64 100644
--- a/tests/value/oracle/loop_wvar.0.res.oracle
+++ b/tests/value/oracle/loop_wvar.0.res.oracle
@@ -4,7 +4,7 @@
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] loop_wvar.i:16: starting to merge loop iterations
+[eva] loop_wvar.i:13: starting to merge loop iterations
 [eva] Recording results for main
 [eva] Done for function main
 [eva] ====== VALUES COMPUTED ======
@@ -13,14 +13,12 @@
   i ∈ [13..2147483647]
   j ∈ [7..55],3%4 or UNINITIALIZED
 [kernel] Parsing loop_wvar.i (no preprocessing)
-[kernel:annot-error] loop_wvar.i:38: Warning: 
-  invalid pragma '12'. Ignoring loop annotation
 [eva] Analyzing a complete application starting at main
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] loop_wvar.i:16: starting to merge loop iterations
+[eva] loop_wvar.i:13: starting to merge loop iterations
 [eva] Recording results for main
 [eva] Done for function main
 [eva] ====== VALUES COMPUTED ======
diff --git a/tests/value/oracle/loop_wvar.1.res.oracle b/tests/value/oracle/loop_wvar.1.res.oracle
index 2746763959e4c6a93f4fa969b654d2f6782347fb..edafe26a894ece635030e2ddc5c581b4b1e5f0b7 100644
--- a/tests/value/oracle/loop_wvar.1.res.oracle
+++ b/tests/value/oracle/loop_wvar.1.res.oracle
@@ -1,29 +1,27 @@
 [kernel] Parsing loop_wvar.i (no preprocessing)
-[kernel:annot-error] loop_wvar.i:38: Warning: 
-  invalid pragma '12'. Ignoring loop annotation
 [eva] Analyzing a complete application starting at main3
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
 [eva] computing for function main_unhelpful <- main3.
-  Called from loop_wvar.i:84.
-[eva] loop_wvar.i:52: starting to merge loop iterations
-[eva:alarm] loop_wvar.i:57: Warning: 
+  Called from loop_wvar.i:80.
+[eva] loop_wvar.i:48: starting to merge loop iterations
+[eva:alarm] loop_wvar.i:53: Warning: 
   signed overflow. assert next + 1 ≤ 2147483647;
 [eva] Recording results for main_unhelpful
 [eva] Done for function main_unhelpful
 [eva] computing for function main_multiple_hints <- main3.
-  Called from loop_wvar.i:85.
-[eva] loop_wvar.i:71: Frama_C_show_each: {0}, {0}, {0}
-[eva] loop_wvar.i:69: starting to merge loop iterations
-[eva] loop_wvar.i:71: Frama_C_show_each: {0; 1}, {0; 1}, {0; 1}
-[eva] loop_wvar.i:71: Frama_C_show_each: {0; 1; 2}, {0; 1; 2}, {0; 1; 2}
-[eva] loop_wvar.i:71: Frama_C_show_each: [0..9], {0; 1; 2; 3}, {0; 1; 2; 3}
-[eva] loop_wvar.i:71: 
+  Called from loop_wvar.i:81.
+[eva] loop_wvar.i:67: Frama_C_show_each: {0}, {0}, {0}
+[eva] loop_wvar.i:65: starting to merge loop iterations
+[eva] loop_wvar.i:67: Frama_C_show_each: {0; 1}, {0; 1}, {0; 1}
+[eva] loop_wvar.i:67: Frama_C_show_each: {0; 1; 2}, {0; 1; 2}, {0; 1; 2}
+[eva] loop_wvar.i:67: Frama_C_show_each: [0..9], {0; 1; 2; 3}, {0; 1; 2; 3}
+[eva] loop_wvar.i:67: 
   Frama_C_show_each: [0..9], {0; 1; 2; 3; 4}, {0; 1; 2; 3; 4}
-[eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
-[eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
+[eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..17], [0..11]
+[eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..18], [0..12]
 [eva] Recording results for main_multiple_hints
 [eva] Done for function main_multiple_hints
 [eva] Recording results for main3
diff --git a/tests/value/oracle/loop_wvar.2.res.oracle b/tests/value/oracle/loop_wvar.2.res.oracle
index 709713eeae91d6c6eb02365c88d84b047a8a76d1..082af63bc9572d3b7e369c66975f441426ae5a62 100644
--- a/tests/value/oracle/loop_wvar.2.res.oracle
+++ b/tests/value/oracle/loop_wvar.2.res.oracle
@@ -1,12 +1,10 @@
 [kernel] Parsing loop_wvar.i (no preprocessing)
-[kernel:annot-error] loop_wvar.i:38: Warning: 
-  invalid pragma '12'. Ignoring loop annotation
 [eva] Analyzing a complete application starting at main_err1
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] loop_wvar.i:27: starting to merge loop iterations
+[eva] loop_wvar.i:24: starting to merge loop iterations
 [eva] Recording results for main_err1
 [eva] Done for function main_err1
 [eva] ====== VALUES COMPUTED ======
diff --git a/tests/value/oracle/loop_wvar.3.res.oracle b/tests/value/oracle/loop_wvar.3.res.oracle
index 6f76e0e4fa90d798cf3cdd5fc9aefadc926abda5..720baa6ea243d944f3b86c78fcb31a2d5cad0152 100644
--- a/tests/value/oracle/loop_wvar.3.res.oracle
+++ b/tests/value/oracle/loop_wvar.3.res.oracle
@@ -1,12 +1,10 @@
 [kernel] Parsing loop_wvar.i (no preprocessing)
-[kernel:annot-error] loop_wvar.i:38: Warning: 
-  invalid pragma '12'. Ignoring loop annotation
 [eva] Analyzing a complete application starting at main_err2
 [eva] Computing initial state
 [eva] Initial state computed
 [eva:initial-state] Values of globals at initialization
   
-[eva] loop_wvar.i:39: starting to merge loop iterations
+[eva] loop_wvar.i:35: starting to merge loop iterations
 [eva] Recording results for main_err2
 [eva] Done for function main_err2
 [eva] ====== VALUES COMPUTED ======
diff --git a/tests/value/oracle_apron/loop_wvar.1.res.oracle b/tests/value/oracle_apron/loop_wvar.1.res.oracle
index cdc969cce79a93ee24afdb37631ea544a1dee65d..33e7e93d67390e20559632cbd7f5eef7ca1a562c 100644
--- a/tests/value/oracle_apron/loop_wvar.1.res.oracle
+++ b/tests/value/oracle_apron/loop_wvar.1.res.oracle
@@ -1,18 +1,18 @@
-12,13d11
-< [eva:alarm] loop_wvar.i:57: Warning: 
+10,11d9
+< [eva:alarm] loop_wvar.i:53: Warning: 
 <   signed overflow. assert next + 1 ≤ 2147483647;
-25,26c23
-< [eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
-< [eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
+23,24c21
+< [eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..17], [0..11]
+< [eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..18], [0..12]
 ---
-> [eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..9], [0..9]
-35,36c32,33
+> [eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..9], [0..9]
+33,34c30,31
 <   j ∈ [0..18]
 <   k ∈ [0..12]
 ---
 >   j ∈ [0..17]
 >   k ∈ [0..11]
-39c36
+37c34
 <   next ∈ [0..2147483647]
 ---
 >   next ∈ [0..25]
diff --git a/tests/value/oracle_gauges/loop_wvar.1.res.oracle b/tests/value/oracle_gauges/loop_wvar.1.res.oracle
index 7920ef36bc252e10cd5bd47384f8680831e836bf..6eddd73a4dafcd87f275613ae16dd4413139168e 100644
--- a/tests/value/oracle_gauges/loop_wvar.1.res.oracle
+++ b/tests/value/oracle_gauges/loop_wvar.1.res.oracle
@@ -1,9 +1,9 @@
-25,26c25
-< [eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..17], [0..11]
-< [eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..18], [0..12]
+23,24c23
+< [eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..17], [0..11]
+< [eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..18], [0..12]
 ---
-> [eva] loop_wvar.i:71: Frama_C_show_each: [0..9], [0..9], [0..9]
-35,36c34,35
+> [eva] loop_wvar.i:67: Frama_C_show_each: [0..9], [0..9], [0..9]
+33,34c32,33
 <   j ∈ [0..18]
 <   k ∈ [0..12]
 ---
diff --git a/tests/value/oracle_octagon/loop_wvar.1.res.oracle b/tests/value/oracle_octagon/loop_wvar.1.res.oracle
index e88a9b98afba1b6cc723bae582a2c626fd005f55..402004713bdf960e211f87cbb2b622b800ecd27f 100644
--- a/tests/value/oracle_octagon/loop_wvar.1.res.oracle
+++ b/tests/value/oracle_octagon/loop_wvar.1.res.oracle
@@ -1,7 +1,7 @@
-12,13d11
-< [eva:alarm] loop_wvar.i:57: Warning: 
+10,11d9
+< [eva:alarm] loop_wvar.i:53: Warning: 
 <   signed overflow. assert next + 1 ≤ 2147483647;
-39c37
+37c35
 <   next ∈ [0..2147483647]
 ---
 >   next ∈ [0..25]