diff --git a/src/kernel_internals/runtime/special_hooks.ml b/src/kernel_internals/runtime/special_hooks.ml
index 79eca6bb935bf88d83c619c7d2f5bc36d4c9c949..d888e026716f7371c4ad6c5ec839af847ee34e26 100644
--- a/src/kernel_internals/runtime/special_hooks.ml
+++ b/src/kernel_internals/runtime/special_hooks.ml
@@ -34,9 +34,9 @@ let print_config () =
            FRAMAC_PLUGIN = %S@\n  \
            FRAMAC_LIB    = %S%t@."
           System_config.Version.id_and_codename
-          (String.concat ":" (Filepath.Normalized.to_string_list System_config.Share.dirs))
-          (String.concat ":" (Filepath.Normalized.to_string_list System_config.Plugins.dirs))
-          (String.concat ":" (Filepath.Normalized.to_string_list System_config.Lib.dirs))
+          (System_config.Share.path)
+          (System_config.Plugins.path)
+          (System_config.Lib.path)
           (fun fmt ->
              if System_config.Preprocessor.command = "" then
                Format.fprintf fmt "@\nWarning: no default preprocessor"
diff --git a/src/kernel_internals/runtime/system_config.ml.in b/src/kernel_internals/runtime/system_config.ml.in
index 82f9d83e4976ce772a96492ff526410dba57dd84..fbf4944d65994bb6ad2ae0632c5f838e6065e456 100644
--- a/src/kernel_internals/runtime/system_config.ml.in
+++ b/src/kernel_internals/runtime/system_config.ml.in
@@ -34,6 +34,7 @@ let is_gui = Frama_c_very_first.Gui_init.is_gui
 
 module Share = struct
   let dirs = List.map Filepath.Normalized.of_string Config_data.Sites.share
+  let path = String.concat ":" (Filepath.Normalized.to_string_list dirs)
   let main = List.hd (List.rev dirs)
   let libc = Filepath.Normalized.concat main "libc"
 
@@ -42,6 +43,7 @@ end
 
 module Lib = struct
   let dirs = List.map Filepath.Normalized.of_string Config_data.Sites.lib
+  let path = String.concat ":" (Filepath.Normalized.to_string_list dirs)
   let main = List.hd (List.rev dirs)
 end
 
diff --git a/src/kernel_internals/runtime/system_config.mli b/src/kernel_internals/runtime/system_config.mli
index c04d17ec9021adcedbd282dc20db75b304aaf39c..ccceae3922695ec7df56cf3a875981beec763237 100644
--- a/src/kernel_internals/runtime/system_config.mli
+++ b/src/kernel_internals/runtime/system_config.mli
@@ -48,6 +48,9 @@ module Share : sig
   val main: Filepath.Normalized.t
   (** Last directory of dirs (the directory of frama-c installation) *)
 
+  val path: string
+  (** The colon-separated concatenation of {!dirs}. *)
+
   val libc: Filepath.Normalized.t
   (** Directory where Frama-C libc headers are. *)
 end
@@ -57,6 +60,9 @@ module Lib : sig
   (** Directories where library and executable files are, in order of
       priority. *)
 
+  val path: string
+  (** The colon-separated concatenation of {!dirs}. *)
+
   val main: Filepath.Normalized.t
   (** Last directory of libdirs (the directory of frama-c installation) *)
 end
@@ -66,7 +72,7 @@ module Plugins : sig
   (** Directories where the Frama-C dynamic plug-ins are. *)
 
   val path: string
-  (** The colon-separated concatenation of [plugin_dir]. *)
+  (** The colon-separated concatenation of {!dirs}. *)
 
   val load: string -> unit
   (** Load given plug-in name *)