aboutsummaryrefslogtreecommitdiff
path: root/vernac
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2021-02-28 12:58:44 +0100
committerPierre-Marie Pédrot2021-02-28 12:58:44 +0100
commitef22a5aaf1728d840341d31befd67dd90c5b2e0e (patch)
tree1090422c9d0d9b8ae16c9ff2083dcf56f2668250 /vernac
parent7b326354b32868750b3e3ce99b8dc9a3377909ba (diff)
parent94319a520e7df0713942c2caada43214b49ed19b (diff)
Merge PR #13853: Delay the dynamic linking of native-code libraries until native_compute is called.
Ack-by: ejgallego Reviewed-by: ppedrot
Diffstat (limited to 'vernac')
-rw-r--r--vernac/library.ml14
1 files changed, 5 insertions, 9 deletions
diff --git a/vernac/library.ml b/vernac/library.ml
index 8a9b1fd68d..cc9e3c3c44 100644
--- a/vernac/library.ml
+++ b/vernac/library.ml
@@ -155,17 +155,13 @@ let library_is_loaded dir =
let register_loaded_library m =
let libname = m.libsum_name in
- let link () =
- let dirname = Filename.dirname (library_full_filename libname) in
- let prefix = Nativecode.mod_uid_of_dirpath libname ^ "." in
- let f = prefix ^ "cmo" in
- let f = Dynlink.adapt_filename f in
- Nativelib.link_library ~prefix ~dirname ~basename:f
- in
let rec aux = function
| [] ->
- let () = if Flags.get_native_compiler () then link () in
- [libname]
+ if Flags.get_native_compiler () then begin
+ let dirname = Filename.dirname (library_full_filename libname) in
+ Nativelib.enable_library dirname libname
+ end;
+ [libname]
| m'::_ as l when DirPath.equal m' libname -> l
| m'::l' -> m' :: aux l' in
libraries_loaded_list := aux !libraries_loaded_list;