From 319b722db732454bfc1a03c1367e94cb24f66e37 Mon Sep 17 00:00:00 2001
From: Virgile Prevosto <virgile.prevosto@m4x.org>
Date: Thu, 9 Mar 2023 17:43:39 +0100
Subject: [PATCH] [machdep] generate errnos in __fc_machdep.h

---
 src/kernel_internals/runtime/machdep.ml | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/kernel_internals/runtime/machdep.ml b/src/kernel_internals/runtime/machdep.ml
index 8cde2d22f13..073cc1d8dee 100644
--- a/src/kernel_internals/runtime/machdep.ml
+++ b/src/kernel_internals/runtime/machdep.ml
@@ -197,6 +197,9 @@ let gen_intlike_max fmt name repr mach =
 let gen_char_bit fmt _mach =
   gen_define_int fmt "__CHAR_BIT" 8
 
+let gen_define_errno_macro fmt (name, v) =
+  gen_define_string fmt ("__FC_" ^ (String.uppercase_ascii name)) v
+
 let gen_all_defines fmt mach =
   Format.fprintf fmt "/* Machdep-specific info for Frama-C's libc */@\n";
   Format.fprintf fmt "#ifndef __FC_MACHDEP@\n#define __FC_MACHDEP@\n";
@@ -248,7 +251,7 @@ let gen_all_defines fmt mach =
   gen_define_macro fmt "__FC_TMP_MAX" mach.tmp_max;
   gen_define_macro fmt "__FC_RAND_MAX" mach.rand_max;
   gen_define_macro fmt "__FC_MB_CUR_MAX" mach.mb_cur_max;
-  (* TODO: __FC_E*, errno enumeration *)
+  List.iter (gen_define_errno_macro fmt) mach.errno;
   gen_define_macro fmt "__FC_TIME_T" mach.time_t;
   gen_define_macro fmt "__FC_NSIG" mach.nsig;
   (* NB: should we use Cil.gccMode() here? *)
-- 
GitLab